作者在上篇文章《推薦系統的工程實現》中提到推薦系統要很好地落地到業務中,需要搭建支撐模塊,其中效果評估模塊就是其中非常重要的一個。本篇文章作者來詳細說明怎么評估(Evaluating)推薦系統的效果,有哪些評估手段,在推薦業務中的哪些階段進行評估,具體的評估方法是什么。借此希望更好地幫助大家在實際業務中實施推薦系統評估模塊。
本篇作者主要從“什么是一個好的推薦系統”、“在推薦系統業務的各個階段怎么評估推薦系統”,“推薦系統怎么更好地滿足用戶的訴求”的角度來講解。至于推薦算法怎么幫助企業更好地服務于用戶,并利用算法產生更多的商業價值,作者會單獨寫一篇文章《推薦系統的商業價值》來詳細介紹,敬請期待。現在,我們從評估的目的、評估的常用指標、評估方法、評估需要關注的問題四個維度來詳細說明。
一、推薦評估的目的
推薦系統評估是跟推薦系統的產品定位息息相關的,推薦系統是解決信息高效分發的手段,希望通過推薦更快更好地滿足用戶的不確定性需求。那么推薦系統的精準度、驚喜度、多樣性等都是需要達到的目標,同時,推薦系統的穩定性,是否支撐大規模用戶訪問等方面也對推薦系統發揮價值起關鍵作用。當然,不是所有目標都能達到,評估后怎么做到各個目標的平衡,權衡得失,是推薦系統設計需要注意的問題。
推薦系統評估的目的就是從上面說的這么多的維度來評估出推薦系統的實際效果及表現,從中發現可能的優化點,通過優化推薦系統,期望更好地滿足用戶的訴求,為用戶提供更優質的推薦服務,同時通過推薦獲取更多的商業利益。
二、評估推薦的常用指標
怎么評估推薦系統呢?從哪些維度來評估推薦系統呢?這要從推薦系統解決的商業問題來思考,作者在《推薦系統介紹》這篇文章對推薦系統做了比較系統詳細的介紹,推薦系統可以很好地解決“標的物”提供方、平臺方(提供產品服務的公司)、用戶三方的需求(見下面圖1),推薦系統作為嵌入產品的服務模塊,它的評估可以從以下四個維度來衡量。
圖1:推薦系統通過整合到產品中,為用戶提供“標的物”推薦
1、用戶的維度
用戶最重要的訴求永遠是更方便快捷地發現自己想要(喜歡)的“標的物”。推薦系統多好地滿足了用戶的這個訴求,用戶就會多依賴推薦系統。一般來說,從用戶維度有如下幾類指標可以衡量推薦系統對用戶的價值。
01)準確度
準確度評估的是推薦的“標的物“是不是用戶喜歡的。拿視頻推薦來說,如果推薦的電影用戶點擊觀看了,說明用戶喜歡,看的時間長短可以衡量用戶的喜好程度。但是要注意,用戶沒看不代表用戶不喜歡,也可能是這個電影用戶剛在院線看過。這里所說的準確度更多的是用戶使用的主觀體驗感覺。
02)驚喜度(serendipity)
所謂驚喜度,就是讓用戶有耳目一新的感覺,無意中給用戶帶來驚喜。舉個例子,比如作者的朋友春節給我推薦了一部新上映的很不錯的電影,但是作者忘記電影名字了,怎么也想不起來,但是突然有一天電視貓給我推薦了這部電影,這時作者會非常驚喜。這種推薦超出了用戶的預期,推薦的不一定跟用戶的歷史興趣相似,可能是用戶不熟悉的,但是用戶感覺很滿意。
03)新穎性(novelty)
新穎性就是推薦用戶之前沒有了解過的“標的物”。人都是“喜新厭舊”的,推薦用戶沒接觸過的東西,可以提升用戶的好奇心和探索欲。
04)信任度(Confidence& Trust)
在現實生活中,如果你信任一個人,他給你推薦的東西往往你會關注或者購買。對推薦系統來說也是類似的,如果推薦系統能夠滿足用戶的需求,用戶就會信任推薦系統,會持續使用推薦系統來獲取自己喜歡的“標的物”。
05)多樣性
用戶的興趣往往是多樣的,在做推薦時需要給用戶提供多“品類”的“標的物”,以挖掘用戶新的興趣點,拓展用戶的興趣范圍,提升用戶體驗。
06)體驗流暢度
推薦系統是一個軟件產品,用戶的體驗是否好,是否卡頓,響應是否及時,對用戶的行為決策非常關鍵。
流暢的用戶體驗,是推薦服務的基本要求。但只要服務不穩定,響應慢,會極大影響用戶體驗,甚至導致用戶卸載產品。
上面這些指標,有些是可以量化的(比如精準度、流暢度),有些是較難量化的(比如驚喜度、新穎性),所有這些指標匯聚成用戶對推薦模塊的滿意度。
2、平臺方的維度
平臺方提供一個平臺(產品),對接“標的物”提供方和用戶,通過服務好這兩方來賺取商業利潤。不同產品掙取利潤的方式不同,有的主要從用戶身上掙錢(比如視頻網站,通過會員盈利),有的從“標的物”提供方掙錢(比如淘寶,通過商家的提成及提供給商家的服務掙錢),有的兩者兼而有之,但大部分互聯網產品都會通過廣告掙錢(廣告主買單,即所謂的”羊毛出在豬身上”)。不管哪種情況,平臺方都要服務好用戶和“標的物“提供方(有些產品平臺方和”標的物”提供方是一樣的,比如視頻網站,是直接花錢購買視頻版權的)。
對于平臺方來說,商業目標是最重要的指標之一,平臺方的盈利目的又需要借助用戶來實現(不管是用戶購買,還是廣告,都需要有大量用戶),所以平臺方除了關注絕對的收益外,還需要關注用戶活躍、留存、轉化、使用時長等用戶使用維度的指標。
推薦系統怎么更好的促進收益增長,促進用戶活躍、留存、轉化等就是平臺方最關注的商業指標。
同時,為第三方提供平臺服務的平臺方(如淘寶商城),還需要考慮到商家生態的穩定發展。為好的商家提供獲取更多收益的機會也是平臺方的責任和義務。
所以,站在平臺方角度看,最重要的指標主要有如下3類:
用戶行為相關指標;
商業變現相關指標;
商家(即“標的物”提供方)相關指標;
我會在下一篇文章《推薦系統的商業價值》中詳細探討推薦系統的商業價值,本文不會過多講解推薦系統的商業指標。
3、推薦系統自身維度
推薦系統是一套算法體系的閉環,通過該閉環為用戶提供服務,從推薦系統自身來說,主要衡量指標包括如下:
01)準確度
作為推薦系統核心的推薦算法,本身是一種機器學習方法,不管是預測、分類、回歸等機器學習問題都有自己的評估指標體系。推薦系統準確度的評估也可以自然而然的采用推薦算法所屬的不同機器學習范式來度量,我們在第三部分會根據該方式來度量準確度指標。
關于準確度,第二部分會詳細說明具體的評估方法,準確度也是學術界和業界最常用最容易量化的評估指標。
02)實時性
用戶的興趣是隨著時間變化的,推薦系統怎么能夠更好的反應用戶興趣變化,做到近實時推薦用戶需要的“標的物”是特別重要的問題。特別像新聞資訊、短視頻等滿足用戶碎片化時間需求的產品,做到近實時推薦更加重要。
03)魯棒性
推薦系統一般依賴用戶行為日志來構建算法模型,而用戶行為日志中會包含很多開發過程中、系統、人為(比如黑客攻擊)等產生的垃圾數據,推薦算法要具備魯棒性,盡量少受“臟”的訓練數據的影響,才能夠為用戶提供穩定一致的服務。
04)響應及時穩定性
用戶通過觸達推薦模塊,觸發推薦系統為用戶提供推薦服務,推薦服務的響應時長,推薦服務是否穩定(服務正常可訪問,不掛掉)也是非常關鍵的。
05)抗高并發能力
推薦系統是否能夠承受高并發訪問,在高并發用戶訪問下(比如雙十一的淘寶推薦),是否可以正常穩定的提供服務,也是推薦系統的重要能力。
除了上面說的這些指標外,推薦模型的可維護性、可拓展性、模型是否可并行訓練、需要的計算存儲資源、業務落地開發效率等也是推薦業務設計中需要考慮的重要指標。
4、標的物提供方的維度
“標的物”的提供方通過為用戶提供“標的物”獲取收益(如淘寶上的商家通過售賣物品獲取收益),怎么將自己更多的“標的物”更快的“賣出去”是“標的物”提供方的訴求。評估推薦系統為“標的物”提供方創造價值的指標除了下面的覆蓋率和挖掘長尾能力,還有更多的商業化指標,這里不做過多說明,作者會在下篇文章《推薦系統的商業價值》中詳細講解。
01)覆蓋率
從“標的物”提供方的角度來看,希望自己提供的“標的物”都能夠被用戶“相中”,不然這個“標的物”就沒有任何價值。所以推薦系統需要將更多的“標的物”推薦(曝光)出去,只有曝光出去,才有被用戶“消費”的可能。
02)挖掘長尾的能力
推薦系統的一個重要價值就是發現長尾(長尾理論是ChrisAnderson提出的,不熟悉該理論的讀者可以自行百度或者看ChrisAnderson出的《長尾理論》一書),將小眾的“標的物”分發給喜歡該類“標的物”的用戶。度量出推薦系統挖掘長尾的能力,對促進長尾“標的物”的“變現”及更好地滿足用戶的小眾需求從而提升用戶的驚喜度非常有價值。
三、推薦系統的評估方法
上一節列舉了很多評估推薦系統的指標,并對指標的含義做了簡要說明。本節我們具體講解怎么度量(量化)這些指標。
推薦算法本質上就是一個機器學習問題。我們需要構建推薦算法模型,選擇認為合適的(效果好的)的算法模型,將算法模型部署到線上推薦業務中,利用算法模型來預測用戶對“標的物”的偏好,通過用戶的真實反饋(是否點擊、是否購買、是否收藏等)來評估算法效果。同時,在必要(不一定必須)的時候,需要跟你的用戶溝通,收集用戶對推薦系統的真實評價,整個過程可以用如下的圖2來說明。我們可以根據推薦業務流的時間線按照先后順序將推薦系統評估分為三個階段:離線評估、在線評估、主觀評估。在下面我們會按照這三個階段來講解上一節的評估指標是怎么嵌入到這3個階段當中的,并說明具體的評估方法。
圖2:根據推薦業務流,將推薦評估分為3個階段
1、離線評估
離線評估是在推薦算法模型開發與選型的過程中對推薦算法做評估,通過評估具體指標來選擇合適的推薦算法,將算法部署上線為用戶提供推薦服務。具體可以評估的指標有:
01)準確度指標
準確度評估的主要目的是事先評估出推薦算法模型的好壞(是否精準),為選擇合適的模型上線服務提供決策依據。我們期望精準的模型上線后產生好的效果。這個過程評估的是推薦算法是否可以準確預測用戶的興趣偏好。
準確度評估是學術界和業界最重要和最常用的評估指標,可以在模型訓練過程中做評估,因此實現簡單,可操作性強,方便學術交流與各類競賽作為評比指標,同時通過評估可以對比不同模型的效果。
推薦算法是機器學習的分支,所以準確度評估一般會采用機器學習效果評估一樣的策略。一般是將訓練數據分為訓練集和測試集,用訓練集訓練模型,用測試集評估模型的預測誤差,這個過程可以參見下面的圖3。
圖3:推薦算法的模型訓練與離線評估
具體怎么計算推薦算法模型誤差(準確度),可以根據推薦算法模型的范式來決定采用不同的評估方法,這里我們主要根據三種不同范式來評估準確度。
第一種是將推薦算法看成預測(回歸)問題。預測用戶對“標的物”的評分(比如0~10分)。
第二種是將推薦算法看成是分類問題。可以是二分類,將“標的物“分為喜歡和不喜歡兩類;也可以是多分類,每個“標的物”就是一個類,根據用戶過去行為預測下一個行為的類別(如YouTube在2016發表的深度學習推薦論文DeepNeural Networks for YouTube Recommendations就是采用多分類的思路來做的)。
第三種是將推薦系統算法看成一個排序學習問題,利用排序學習(Learningto rank)的思路來做推薦。
推薦系統的目的是為用戶推薦一系列“標的物”,擊中用戶的興奮點,讓用戶“消費”“標的物”。所以,在實際推薦產品中,我們一般都是為用戶提供N個候選集,稱為TopN推薦,盡可能的召回用戶感興趣的“標的物”。上面這三類推薦算法范式都可以轉化為TopN推薦。第一種思路預測出用戶對所有沒有行為的“標的物”的評分,按照評分從高到低排序,前面N個就可以當做TopN推薦(得分可以看成是用戶對“標的物”的偏好程度,所以這樣降序排列取前N個的做法是合理的)。第二種思路一般會學習出在某個類的概率,根據概率值也可以類似第一種思路來排序形成TopN推薦。第三種思路本身就是學習一個有序列表。
下面來詳細講解怎么按照推薦算法的上述3種范式來評估算法的準確度。
推薦算法作為評分預測模型
針對評分預測模型,可以評估的準確度指標主要有:RMSE(均方根誤差)、MAE(平均絕對誤差)。他們的計算公式分別是:
其中,u代表用戶,i代表“標的物”,T是所有有過評分的用戶。是用戶u對“標的物”i的真實評分,是推薦算法模型預測的評分。其中RMSE就是Netflix在2006年舉辦的“NetflixPrize”大賽的評估指標。
常用的矩陣分解推薦算法(及矩陣分解算法的推廣FM、FFM等)就是一種評分預測模型。
推薦算法作為分類模型
針對分類模型,評估推薦準確度的主要指標有:準確率(Precision)、召回率(Recall)。
假設給用戶u推薦的候選集為(通過算法模型為用戶推薦的候選集),用戶真正喜歡的“標的物”集是(在測試集上用戶真正喜歡的“標的物”),總共可通過模型推薦的用戶數為集合U。其中N是推薦的數量。準確率是指為用戶推薦的候選集中有多少比例是用戶真正感興趣的(“消費”過“標的物”),召回率是指用戶真正感興趣的“標的物”中有多少比例是推薦系統推薦的。針對用戶u,準確率()、召回率()的計算公式分別如下:
一般來說N越大(即推薦的“標的物“越多),召回率越高,精確度越低,當N為所有“標的物”時,召回率為1,而精確度接近0(一般推薦系統“標的物”總量很大,而用戶喜歡過的量有限,所以根據上面公式,精確度接近0)。
對推薦系統來說,當然這兩個值都越大越好,最好是兩個值都為1,但是實際情況是這兩個值就類似量子力學中的測不準原理(你在同一時間無法知道粒子的位置和速度),你無法保證兩者的值同時都很大,實際構建模型時需要權衡,一般我們可以用兩者的調和平均數()來衡量推薦效果,做到兩者的均衡。
上面只計算出了推薦算法對一個用戶u的準確率、召回率、F1值。整個推薦算法的效果可以采用所有用戶的加權平均得到,具體計算公式如下:
關于分類問題的評估方法,可以參考周志華的《機器學習》第二章“模型評估與選擇”,里面有很多關于分類問題評估指標的介紹。作者這里就不詳細介紹了。
推薦算法作為排序學習模型
上面兩類評估指標都沒有考慮推薦系統在實際做推薦時將“標的物”展示給用戶的順序,不同的排序用戶的實際操作路徑長度不一樣,比如智能電視端一般通過遙控器操作,排在第二排推薦的電影,用戶點擊就要多操作遙控器按鍵幾次。我們當然是希望將用戶最可能會“消費”的“標的物”放在用戶操作路徑最短的地方(一般是最前面)。所以,推薦的“標的物“展示給用戶的順序對用戶的決策和行為是有很大影響的,那怎么衡量這種不同排序產生的影響呢?這就需要借助排序指標,這類指標我們這里主要介紹MAP(MeanAverage Precision),其他指標如NDCG(NormalizedDiscounted Cumulative Gain),MRR(MeanReciprocal Rank)等讀者可以自行了解學習,這里不再介紹。
MAP的計算公式如下:
其中,,所以,
其中,代表的是為用戶u推薦的平均準確率,U是所有提供推薦服務的用戶的集合;是推薦給用戶u,而用戶u喜歡的“標的物”的數量(比如推薦20個視頻給用戶u,用戶看了3個,那么=3);是用戶u喜歡的第i個“標的物”在推薦列表中的排序(比如給用戶推薦20個視頻,用戶喜歡的第2個在這20個視頻的推薦列表中排第8位,那么=8)。
為了方便讀者理解,這里舉個搜索排序的例子(MAP大量用于搜索,推薦排序的效果評估中)。假設有兩個搜索關鍵詞,關鍵詞1有3個相關網頁,關鍵詞2有6個相關網頁。某搜索系統對于關鍵詞1檢索出3個相關網頁(將所有相關的都檢索出來了),其在搜索結果中的排序分別為2,3,6;對于關鍵詞2檢索出2個相關網頁(6個相關中只檢索出了2個),其在搜索列表中的排序分別為4,8。對于關鍵詞1,平均準確率為(1/2+2/3+3/6)/3=0.56。對于關鍵詞2,平均準確率為(1/4+2/8)/6=0.08。則MAP=(0.56+0.08)/2=0.32。
至此,關于離線評估的準確度指標已經介紹完了。下面介紹一下其他可以在離線階段評估的指標。
02)覆蓋率指標
對于任何推薦范式,覆蓋率指標都可以直接計算出來。覆蓋率(Coverage)的具體計算公式如下:
其中U是所有提供推薦服務的用戶的集合,I是所有“標的物”的集合,是給用戶u的推薦“標的物”構成的集合。
03)多樣性指標
用戶的興趣往往是多樣的,并且有些產品面對的用戶也不止一個(比如智能電視前可能是一家人看電視),同時人在不同的時間段可能興趣也不一樣(早上看新聞,晚上看電視劇),個人興趣也會受心情、天氣、節日等多種因素影響。所以我們在給用戶做推薦時需要盡量推薦多樣的“標的物”,讓用戶從中找到自己感興趣的,種類更多樣的話,總有一款能夠擊中用戶的興趣點。
在具體推薦系統工程實現中,可以通過對“標的物”聚類(可以用機器學習聚類或者根據標簽等規則來分類),在推薦列表中插入不同類別的“標的物”的方式來增加推薦系統推薦結果的多樣性。
04)實時性指標
用戶的興趣是隨著時間變化的,推薦怎么能盡快反應用戶興趣變化,捕捉用戶新的興趣點在日益競爭激烈的互聯網時代對產品非常關鍵,特別是新聞、短視頻這類APP,需要快速響應用戶的興趣變化。
一般來說,推薦系統的實時性分為如下四個級別T+1(每天更新用戶推薦結果)、小時級、分鐘級、秒級。越是響應時間短的對整個推薦系統的設計、開發、工程實現、維護、監控等要求越高。下面我們給大家提供一些選型的建議。
對于“侵占”用戶碎片化時間的產品,如今日頭條、快手等。這些產品用戶“消耗”“標的物”的時間很短,因而建議推薦算法做到分鐘級響應用戶興趣變化;
對于電影推薦、書推薦等用戶需要消耗較長時間“消費”標的物的產品,可以采用小時級或者T+1策略;
一般推薦系統不需要做到秒級,但是在廣告算法中做到秒級是需要的。
上述這些建議不是絕對的,不同的產品形態,不同的場景可能對實時性級別的需求不相同。大家可以根據自己的產品特色、業務場景、公司所在的階段、公司基礎架構能力、人力資源等綜合評估后做選擇。但是最終的趨勢肯定是趨向于越來越實時響應用戶需求。
05)魯棒性指標
推薦系統是否受臟數據影響,是否能夠穩定的提供優質推薦服務非常關鍵。為了提升推薦系統的魯棒性,這里提四個建議。
盡量采用魯棒性好的算法模型;
做好特征工程,事先通過算法或者規則等策略剔除掉可能的臟數據;
在日志收集階段,對日志進行加密,校驗,避免人為攻擊等垃圾數據引入;
在日志格式定義及日志打點階段,要有完整的測試case,做好冒煙回歸測試,避免開發失誤或者bug引入垃圾數據。
06)其他指標
另外,像模型訓練效率,是否可以分布式計算(可拓展性),需要的計算存儲資源等都可以根據所選擇的模型及算法提前預知,這里不再細說。
2、在線評估
根據上面圖2,推薦系統的在線評估可以分為兩個階段,其實這兩個階段是連接在一起的,這里這樣劃分主要是方便對相關的評估指標做細分講解。下面分別來講解每個階段可以評估哪些指標及具體的評估方法。
在線評估第一階段
第一階段是推薦算法上線服務到用戶使用推薦產品這個階段,在這個階段用戶通過使用推薦產品觸發推薦服務(平臺通過推薦接口為用戶提供服務)。這個階段可以評估的指標有:
01)響應及時穩定性指標
該指標是指推薦接口可以在用戶請求推薦服務時及時提供數據反饋,當然是響應時間越短越好,一般響應時間要控制在200ms之內,超過這個時間人肉眼就可以感受到慢了。
服務器響應會受到很多因素影響,比如網絡、CDN、Web服務器、操作系統、數據庫、硬件等,一般無法保證用戶的每次請求都控制在一定時間內。我們一般采用百分之多少的請求控制在什么時間內這樣的指標來評估接口的響應時間(比如99%的請求控制在50ms之內)。
那怎么量化服務器的響應情況呢?我們可以在web服務器(如Nginx)端對用戶訪問行為打點,記錄用戶每次請求的時長(需要在web服務器記錄/配置接口請求響應時長),將web服務器的日志上傳到大數據平臺,通過數據分析可以統計出每個接口的響應時長情況。一般公司會采用CDN服務來緩存、加速接口,上述從web服務器統計的時長,只能統計接口回源部分的流量,被CDN扛住的部分流量的響應時長是需要CDN廠商配合來統計的。另外,上面統計的web服務器響應時長只是web服務消耗的時長,用戶從觸發推薦到返回結果,除了web服務器的響應時長,還要加上web服務器到用戶APP這中間的網絡傳輸時長和APP處理請求渲染展示出來的時長,這部分時間消耗需要采用其他技術手段來計算統計,這里不再細說。
02)抗高并發能力指標
當用戶規模很大時,或者在特定時間點有大量用戶訪問(比如雙十一的淘寶)時,在同一時間點有大量用戶調用推薦服務,推薦接口的壓力會很大,推薦系統能否抗住高并發的壓力是一個很大的挑戰。
我們可以在接口上線前對接口做打壓測試,事先了解接口的抗并發能力。另外可以采用一些技術手段來避免對接口的高并發訪問,比如增加緩存,web服務器具備橫向拓展的能力,利用CDN資源,在特殊情況下對推薦服務進行分流、限流、降級等。
上述兩個指標,作者只做了相對簡單的介紹,作者會在后續文章《推薦系統的高可用高并發架構設計》中對這些點做詳細講解,敬請期待。
在線評估第二階段
第二階段是用戶通過使用推薦算法產生行為(購買、點擊、播放等),我們通過收集分析用戶行為日志來評估相關的指標。這一階段我們主要站在平臺方角度來思考指標,主要有用戶行為相關指標、商業化指標、商家相關指標,這里我們只介紹用戶行為相關指標。另外說下,像離線評估中所介紹的一些準確度指標(如準確率、召回率等)其實可以通過適當的日志打點來真實的統計出來,計算方式類似,這里也不再細說。
推薦模型上線提供推薦服務后,最重要的用戶行為指標有轉化率、購買率、點擊率、人均停留時長、人均閱讀次數等,一般用戶的行為是一個漏斗(例如,推薦曝光給用戶->用點擊瀏覽->用戶掃碼->用戶下單,參考下面的圖4),我們需要知道從漏斗一層到下一層的轉化率。漏斗模型可以非常直觀形象的描述用戶從前一個階段到下一個階段的轉化,非常適合商業上定位問題,通過優化產品流程,提升用戶在各個階段的轉化。
圖4:用戶行為的漏斗模型
線上評估一般會結合AB測試技術,當采用新算法或者有新的UI交互優化時,將用戶分為AB兩組,先放一部分流量給測試組(有算法或UI優化的組),對比組是優化之前的組。如果測試組與對比組在相同指標上有更好的表現,顯著(具備統計顯著性)提升了點擊或者轉化,并且提升是穩定的,后續逐步將優化拓展到所有用戶。這種借助AB測試小心求證的方法,可以避免直接一次性將新模型替換舊模型,但是上線后效果不好的情況發生(會嚴重影響用戶體驗和收益指標,造成無法挽回的損失)。
另外,針對用戶行為指標,我們需要將推薦算法產生的指標與大盤指標(用戶在整個產品的相關指標)對比,可以更好地體現推薦算法的優勢(比如通過推薦系統產生的人均播放次數和人均播放時長比大盤高,就可以體現推薦的價值),讓推薦系統和推薦工程師的價值得到真正的體現,也可以讓管理層從數據上了解推薦的價值。
最后,通過日志分析,我們可以知道哪些“標的物”是流行的,哪些是長尾。拿視頻推薦來舉例,我們可以根據二八定律,將電影播放量降序排列,播放量占總播放量80%的前面的電影,算作熱門電影,后面的當做長尾(參考下面圖5)。
在度量推薦系統長尾能力時,我們可以從如下三個維度來度量:
所有長尾“標的物”中每天有多少比例被分發出去了;
有多少比例的用戶,推薦過了長尾“標的物”;
長尾內容的轉化情況和產生的商業價值。
圖5:對于電影推薦,長尾的定義
3、主觀評估
第二節提到了很多用戶維度的指標,如準確度、驚喜度、新穎性、信任度、體驗流暢度等。這些指標有很多是用戶的使用主觀感受(如驚喜度),有些指標也因人而異(如新穎性),有些很難利用已知的數據來量化(如信任度)。
針對上面這些指標,我們可以通過主觀評估的方式來獲得用戶對推薦系統的真實評價。具體的方式可以是用戶問卷調查、電話訪談、跟用戶直接見面溝通等。這些方式可以很直接直觀的知道用戶對推薦產品的反饋和想法,是很重要的一種評估推薦系統的補充方式。主觀評估要想真實的發現推薦系統存在的問題,需要注意很多問題,下面針對主觀評估做如下5點說明,作為主觀評估有效執行的指導建議。
主觀評估是很消耗時間的,特別是電話溝通和見面訪談,即使是問卷調查,也需要很好地設計問卷的問題;
讓用戶參與主觀評估,往往需要給用戶一定的好處,需要一定的資金支持;
需要確保選擇的樣本有代表性,能夠真實的代表產品的用戶,所以選擇的樣本量不能太少,抽樣方法也需要科學選擇;
設計問卷時,最好不要直接問“你覺得我們的推薦系統有驚喜度嗎?”這樣的問題,而要“我們的推薦系統給你推薦了哪些你特別想看,但是一直通過其他渠道沒有發現的電影?”這樣問,具體怎么設計問卷可以參考相關的專業書籍;
用戶訪談或者電話溝通時,用戶的回答不一定是真實的想法,用戶真實的想法可能不好意思表現出來,或者會選擇討好你的回答方式(畢竟參與調研的用戶多少獲取了一定的物質報酬),調研者需要特別注意,采用一定的溝通技巧,盡量真實挖掘出用戶的想法。
4、推薦系統評估需要關注的問題
推薦系統評估要想落地取得較好的效果,真實的反饋推薦系統的問題,為推薦系統提供優化的建議,必須要關注以下問題。
01)離線評估準確度高的模型,在線評估不一定高
離線評估會受到可用的數據及評估方法的影響,同時,模型上線會受到各種相關變量的干擾,導致線上評估跟離線評估結果不一致。所以有必要引入AB測試減少新算法上線對用戶體驗的影響;
02)推薦系統尋求的是一個全局最優化的方案(解)
在實際情況中,經常會有老板或者產品經理來找你,說某個推薦怎么怎么不準,雖然作為推薦算法工程師,需要排查是否真有問題,但是也要注意,推薦模型求解是滿足整體最優的一個過程(推薦算法如矩陣分解就是將所有用戶行為整合進來作為目標函數,再求解誤差最小時用戶對未知“標的物”的評分),不能保證每個用戶都是預測最準的。所以,遇到上述情況要做適當判斷,不要總是懷疑算法。舉個不太恰當的例子,推薦系統對部分用戶可能推薦不準就像和諧社會的發展,雖然人民的整體生活是越來越好的,但是還是有人生活在水深火熱中。
03)推薦系統是一個多目標優化問題
推薦系統需要平衡很多因素(商業、用戶體驗、技術實現、資金、人力等),怎么做好平衡是一種哲學。在公司不同階段,傾向性也不一樣,創業前期可能以用戶體驗為主,需要大力發展用戶,當用戶量足夠多后,可能會側重商業變現(推薦更多的付費視頻,在搜索列表中插入較多廣告等),盡快讓公司開始盈利。
04)AB測試平臺對推薦評估的巨大價值
推薦系統在線評估強烈依賴于AB測試來得出信服的結論,所以一套完善的推薦系統解決方案一定要保證搭建一套高效易用的AB測試框架,讓推薦系統的優化有據可循,通過數據驅動來讓推薦系統真正做到閉環。
05)重視線上用戶行為及商業變現方面的評估
線上評估更能真實反映產品的情況,所以在實際推薦系統評估中,要更加重視線上效果評估,它能夠很好的將用戶的行為跟商業指標結合起來,它的價值一定大于線下評估,需要推薦開發人員及相關產品經理花費更多的時間和精力。
寫在最后
至此,關于推薦系統評估的所有方面都講完了,希望本文可以作為大家在實踐推薦系統評估模塊的參考指南。由于搜索、推薦及計算廣告算法與本業務的相似性,本文也可以作為搜索、計算廣告落地評估的參考。由于作者精力能力有限,不當之處,請批評指正!
-
算法
+關注
關注
23文章
4607瀏覽量
92833 -
機器學習
+關注
關注
66文章
8406瀏覽量
132562 -
推薦系統
+關注
關注
1文章
43瀏覽量
10075
原文標題:深度 | 推薦系統評估
文章出處:【微信號:rgznai100,微信公眾號:rgznai100】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論