達觀資料:怎樣評價推薦系統的結果質量?

達觀資料發表於2020-04-02

推薦系統是網際網路發展至今最常見也重要的技術之一。如今各類APP、網站、小程式等所有提供內容的地方,背後都有推薦系統在發揮作用。

開發好一套真正優秀的推薦系統非常有價值,但也非常艱鉅。達觀資料是國內推薦系統主要第三方供應商,一直在摸索中前進。在想辦法開發出強大的推薦系統服務好客戶時,也一直在思考推薦系統的評估方法。

眾所周知業界有一句俗話:“沒有評價就沒有進步”,其意思是如果沒有一套科學的評價推薦系統效果的方法,那就找不到最佳化改進的方向,打造優秀的推薦系統就無從談起。

筆者在幾年前寫過《怎樣量化評價搜尋引擎的結果質量》一文並首發於InfoQ(也可見知乎 https://zhuanlan.zhihu.com/p/30910760)。和搜尋引擎相比,移動網際網路時代的推薦系統應用面更廣闊,評價指標也更復雜。

評價指標像一把尺子,指引著我們產品最佳化的方向。到底怎樣才能科學合理的評價推薦系統的結果質量?從各類文獻資料和網上文章裡能看到數十種評估公式,讓人眼花繚亂。這些指標各自有什麼優缺點,應該怎樣取捨?本文從我們的實踐經驗出發,對此進行一些深入的分析,期望對大家有所裨益(達觀資料 陳運文)。

針對不同的推薦場景,一定要因地制宜的選擇合適的評估方法 

推薦場景是制定評價指標時最為關鍵的,脫離了推薦場景來談評測指標就像無水之魚。所謂“推薦場景”,與所推薦的內容型別、展現方式、推薦所滿足的使用者需求,都有莫大的關係,而且這種關係體現的有時還很微妙。

例如同樣都是推薦影片,但在推薦電影(典型的長影片)、和推薦短影片(一般只有幾秒鐘長度),其背後所面對的使用者需求完全不同。前者展示的是電影海報、名稱、評分、主演和故事梗概,使用者檢視這些內容的目的是儘快挑選出一部適合觀賞的電影,因此推薦系統強調的是如何更快更準的給出優質結果。而後者的短影片推薦(例如常見的抖音快手等)使用者在瀏覽過程中目的性不強,而且因為時長短,決策成本低,使用者瀏覽目的是為消磨時間,推薦系統的目的是讓使用者在這個app上停留的時間足夠長,粘性足夠大。

對前面這個場景來說,使用者在推薦頁(注意不是在播放頁)停留的時間越長,滿意度一定是越低的,誰都不願意傻傻的在一堆電影名稱+海報的挑選頁面花費太多的時間,如果挑了十幾分鍾還沒能找出一部接下來值得觀看的電影,使用者一定會對推薦系統的印象大打折扣。但對後者來說,推薦的過程本身就在不斷觀賞短影片,為了滿足使用者kill time的需求,多樣性、新穎性等更重要。

達觀資料:怎樣評價推薦系統的結果質量?

如果從評估方法的角度來看,推薦電影等長影片時更多要看在足夠短的時間裡推出了滿足使用者持續觀看的電影,而且使用者看後認為是“高分好片”、1個多小時的觀影時間花的值得,是最理想的指標。而對後者來說,黏住使用者,增加瀏覽時長,同時照顧到平臺上短影片製作方的曝光和健康生態,則對推薦系統來說是關鍵考核因素。

用這個簡單例子我們達觀想為各位讀者們解釋的是,一定要從產品的場景來深刻理解推薦的作用,才能更好的選擇評估方法,才能讓那些茫茫多的推薦評估公式找到合適的用武之地。

影響推薦系統評估方式的幾類因素

場景的細微差異,決定著評估方法應該有所不同。俗話說“什麼樣的場合穿什麼樣的衣服”,西裝也好運動服也好,都有適配的場合。根據我們對場合細微差異的理解,有以下幾個因素在發揮作用:

因素一:推薦展示槽位是固定數量,還是不斷延展的資訊Feed流

固定槽位數量的推薦,更接近搜尋引擎或者定向廣告的結果。因為展示數量有限,且可能還有先後次序(類似搜尋結果從上到下排列),對推薦結果的準確率要求高,這類場景稱為Top-N推薦。此時推薦結果前N條結果的點選率CTR(Click-Through-Rate)是常見指標(點選/曝光)。

如果推薦結果有明顯的先後順序(如app上從上到下展示結果),那麼往往還可以把位置衰減因素予以考慮,例如NDCG(Normalized Discounted Cumulatie Gain),MRR(Mean Reciprocal Rank),或MAP(meanaverage precision)都融入了位置因素)

達觀資料:怎樣評價推薦系統的結果質量?右側紅框為常見的Top-N推薦結果

常見的展示推薦/廣告常見的展示推薦/廣告

還有一類是展示型的推薦,和經典的效果廣告非常類似,區別只在於收費方式,如上圖。這種情況下推薦系統可以借用廣告系統的常見評價方式,例如AUC,ROC等指標。

而如果是在移動APP上常見的Feed流推薦,因為推薦展示槽位數量很多(甚至可視為無限多),使用者滑屏又可輕易實現,此時位置先後因素並沒有特別重要,常用曝光點選率(點選量/曝光次數)來衡量推薦質量,此外PV點選率(點選量/總PV)、UV點選率(點選量/總UV)也是Feed流中常用方法。此時首屏首條結果並不像Top-N推薦那麼重要,因此評估指標也不同。

因素二:推薦背後的商業模式是以電商交易型、還是廣告收益型的

很多推薦系統用於電商平臺上,目的是更好的促成買賣雙方交易,例如各大電商網站、外賣生活類APP等。推薦最核心目的是促成交易(例如使用者完成商品購買,或者使用者點播觀看某部電影,或使用者開始閱讀某本小說);此時推薦帶來的交易筆數佔總交易的比例、或者交易總金額與GMV的比例,就是最直接的評價指標。

因為從推薦激發購物者興趣,到使用者完成訂單,有漫長的操作鏈條,所以還可以分解動作以更好的衡量每個環節的效果。例如加購物車率(透過推薦引導的加購物車數量/推薦曝光總數),商品詳情頁閱讀率(透過推薦引導進入商品詳情頁數量/推薦曝光總數)等。

而有一些平臺是以廣告點選、曝光等作為主要收入來源的,例如常見的各類新聞資訊類APP,或者短影片類、免費閱讀(漫畫、小說)類APP,廣告作為主要收入來源,那麼期望推薦系統能更好的擴大使用者在APP上停留的時間,提高使用者點選數等,這些意味著平臺能獲得更多的廣告收入,因為無論是CPM或CPC計費的廣告形式,使用者越活躍,翻閱次數越多,平均收益就越高。

這種情況下,推薦系統爭取滿足的使用者需求是消磨時間、或“閒逛”的場景,此時使用者平均停留時長、推薦引導下的成功閱讀次數等,則更符合需求。

因素三:推薦評估是離線進行,還是線上實時完成

離線評估和線上評估因為資料準備的條件不同,適合採取的手段也不同。離線資料採集通常很難做到完全細緻全面的情況下(例如大量使用者的隱式反饋資料很難完整記錄,因為效能代價太大),離線評估方法會有所不同。

典型的離線評估例如有著名的Netflix Prize競賽、以及KDD Cup、Kaggle上的一些大資料演算法競賽,這些比賽資料集固定,採用靜態的評估方法,MSE(Mean Absolute Error)平均絕對誤差、RMSE(Root Mean Squared Error)均方根誤差,或者R-Squared(R方)來計算:

達觀資料:怎樣評價推薦系統的結果質量?

例如在電影、電視劇的推薦中,使用者-物品評分矩陣(User-Item-Rating)就是常用於離線評估,在學術界尤其常見。因為高校、學術界很難接觸真實線上環境,用離線評估是比較方便來評估演算法好壞的,也算是學術界的無奈吧。
但我們都知道使用者真正給產品評分的顯式資料(Explicit Feedbacks)是非常稀缺的,有時我們不得不拍出一些評分對映關係,例如分享對映為幾分、點贊對映為幾分等,來近似的生成評估矩陣並計算上述這些靜態指標。

達觀資料:怎樣評價推薦系統的結果質量?線上實時計算各類推薦效果指標

而線上評估的好處時可以隨時進行AB test分流測試,效果好壞一目瞭然,工程師們很喜歡。其難點有以下兩個:

  1. 線上環境極為複雜,會受到很多其他因素的干擾,未必真正能反映推薦演算法效果的好壞。例如一些指標很容易受攻擊和作弊。另外一些運營活動也會干擾效果。尤其當抽取比對的流量佔比過小時,資料抖動很大,AB test的結果未必真能體現實際效果。
  2. 第二個難點是評估資料往往體現的是最終結果,而不是中間某個模組的直接好壞。如果想用AB 測試傳導到內部更深層次的演算法模組,往往需要在工程架構上做大量開發,把內部引數傳遞出來才行。例如透過線上評估雖然可以很容易的計算推薦排序策略(Ranking Strategy)孰優孰劣,但如想分析之前的召回策略(Recall Strategy)哪個更有效,透過線上評估就困難的多。向前的引數傳導需要在大資料工程架構上下功夫,這也是達觀智慧推薦一直致力於的。

還有個恐怕是一線演算法工程師常常會遇到的難題,就是離線評估的結果和線上測試的結果南轅北轍。離線測下來效果頂呱呱的演算法,上線後可能石沉大海一點浪花也看不到。這也恰好證明了正確選擇評估方法是多麼重要。

因素四:推薦系統當前的目標是最大化運營指標,還是考慮生態平衡和來源多樣性

推薦的內容如果都來源於平臺自身,那麼往往只需重點考慮平臺關鍵運營指標最大最優,例如達成更多的交易提升GMV,或者讀者的留存率更高,或者提升整個平臺使用者的活躍度等就行。

但還有一類複雜的情況,一些平臺的待推薦內容來自各個UGC或PGC,這些內容提供者依賴平臺的推薦來進行內容曝光並獲利。在這種情況下,平臺要從自身生態平衡、系統長期健康的角度來出發,需要考慮出讓一些推薦曝光機會給到長尾UGC或PGC,以避免出現被少量頂部內容渠道綁架導致的“客大欺店”的問題,同時扶植更多的中小內容創作者能讓生態更健康繁榮。畢竟大樹之下寸草不死一定不是平臺樂意看到的現象。此時推薦系統作為最重要的指揮棒,其評價指標中一定需要將內容來源覆蓋率(Source Coverage)、多樣性(Novelty)等指標。

經濟學中的基尼係數(Ginicoefficient),也可以作為輔助的指標用來評價生態的健康程度。推薦系統的初衷就是消除馬太效應,使各種物品都能被展示給某類人群。但研究表明主流的推薦演算法(比如協同過濾)都是具有馬太效應的。基尼係數就是用來評測推薦系統馬太效應強弱的。如果Gini1 是從初始使用者行為中計算出的物品流行度的基尼係數,Gini2 是從推薦列表中計算出的物品流行度的基尼係數,如果 Gini2 > Gini1則說明推薦演算法具有馬太效應。

因素五:推薦結果要迎合人性,還是引導人性

推薦系統本質上是讓計算機系統透過大規模資料探勘來“揣摩”人性。但略微深刻一些來說,人性是最為複雜、矛盾的東西。既有理性的一面,又有感性的一面。

推薦系統一味地迎合人性,會顯得“媚俗”,最終也會被使用者唾棄。例如人性都有獵奇、貪婪的一面,而且人性通常是沒有耐心的——這也證明了為什麼幾秒鐘的短影片越來越受歡迎,連續劇為什麼要有“倍速”功能,以及標題驚悚的短文章總是比內容深刻篇幅長的文章在推薦的時候指標更好看。

人是從眾的動物,內心總是關心同類們在看些什麼。大量基於協同過濾思想的演算法,滿足了相關需求。如果充分迎合,會發現大量人群喜歡看的往往是偏低俗、快餐式的內容。如果不加干預,黃賭毒、標題黨、危言聳聽、獵奇刺激的內容、或者廉價低劣的商品往往會充斥在推薦結果中。

但想要引導人性,倡導更有質量的內容,是推薦系統要肩負的責任,這個時候的評價指標一定不能只單純看重點選率、轉化率等量化指標,因為如果只用這些指標來最佳化演算法,最終結果一定是低劣內容會充斥著版面,降低整個平臺的格調。

推薦系統評估時大家往往語焉不詳的“驚喜度”(Serendipity)、“新穎性”(Novelty)等,往往就是在人性揣測的方面進行探索。這些指標計算時最大的難點是評價指標偏主觀,很難直接使用線上行為計算。一般只能用事後問卷或者使用者對內容的評價評分、轉發等行為來間接佐證。或者以7日或者N日留存率等來判斷使用者對推薦結果整體的滿意度。(達觀資料 陳運文

實戰中推薦評估指標設定的常用方法

方法一:為不同的細分人群來設定不同的評價指標

基於使用者的整體式評估,會讓推薦演算法導向滿足“大多數人口味”的推薦結果,但這背離了千人千面的個性化的初衷。我們期望社群裡不同的人都能透過推薦來形成滿意的體驗。小眾的人群偏好往往會淹沒在整體資料中,我們一線的演算法工程師經常有體會,就是某個新的推薦演算法上線後,看整體指標明顯好很多了,但是你的領導/客戶可能來投訴,說感覺推給他的東西感覺沒以前好了。個體和群體經常存在類似的矛盾。某個推薦演算法可能對整體有利,但對其中另一類人未必如此。

理想的做法是將其中的人群進行細分,例如電商網站中既有價格敏感型的大眾使用者,也有追求品質的高階使用者。在計算指標時如果劃分不同人群來計算,更能體現推薦效果作用後的具體差異。例如我們期望新使用者能迅速完成交易並沉澱下來,那麼針對這群人的推薦指標,下單率和次日或7日留存就非常重要。而針對高階人群的則有所不同。個體的差異性和小眾品味要得到更大程度的重視。

方法二:按不同的推薦位置來制定不同的指標

在同一個推薦APP或產品裡,不同位置的推薦需要針對性的設定推薦評價指標。前文中提到的不同位置、不同場景,推薦指標制定規則可以有所不同。例如首頁首屏的banner推薦(Top-N推薦),資訊流Feed推薦,內容詳情頁下面的相關推薦(常用precision-recall或者F1-score)來計算。還有在搜尋無結果頁、購物車頁面,退出確認頁等等,不同的位置一定需要因地制宜的選擇適合的評價指標。

方法三:綜合幾種不同的評估指標來獲得整體資料指標

每個指標都有侷限性,推薦系統需要平衡很多因素 ( 商業、使用者體驗、技術實現、資金、人力等 ) ,怎麼做好平衡是一種哲學。通常可以把幾個因素加權求和來作為整體指標。

指標的選擇和產品主打定位有關係。例如一個特別強調內容快速新鮮的APP,那麼結果的時效性就應該佔更大的權重。而一個強調格調品味的APP,單篇閱讀時長就顯得更可貴。而強調社群活躍度的平臺,使用者對內容的分享率,互動率等,在整體指標中要更突出。(達觀資料 陳運文

在產品運營的不同階段,傾向性不同指標的選擇也應該有所不同。產品上線前期可能要照顧使用者體驗,大力擴充新使用者。當使用者量足夠多後,可能會側重商業變現 ( 推薦的付費影片,在列表中插入較多廣告等 ) ,想辦法透過推薦讓產品儘快盈利。如果是電商類推薦,要細緻的考慮使用者購買前和購買後的差異,以及標品和非標品的差異。購買前往往可以多推薦同類產品以更好的讓使用者進行比選。當購買動作完成後,尤其是耐用消費品,再繼續推薦就適得其反了。

達觀資料:怎樣評價推薦系統的結果質量?各類推薦演算法和指標的靈活選擇

推薦指標小結

推薦系統本質上就是讓每個消費者滿意,這些指標只是從不同的角度來衡量“滿意”這件事情的程度高低。在此小結下常見的指標種類,包括如下幾種型別: 

  • 場景轉化類指標:曝光點選率,PV點選率,UV點選率,UV轉化率,加購物車率,分享率,收藏率,購買率,人均點選個數,CTR,AUC等
  • 推薦內容質量指標:結果多樣性(Diversity),結果新穎性(Novelty),結果時效性(timeliness),結果信任度(Confidence& Trust)等
  • 內容消費滿意度指標:留存率,停留時長,播放完成率,平均閱讀時長,交易量,沉浸度(Engagement),驚喜度(Serendipity)等

在同一個推薦場景下,指標不宜過多,因為太多了不利於最終最佳化決策,把握準每個場景核心發揮的作用的幾個推薦指標就行。但也不能只有一個指標,因為過於單一的指標會把推薦演算法的最佳化引入歧途。迷信單一的指標表現好不能說明產品好,而且物極必反,過度最佳化後的指標雖然上去了,但使用者的體驗往往會降低。

很多推薦評價指標本身也是脆弱和易受攻擊的,一些推薦演算法如果嚴重依賴各類反饋指標來自動最佳化結果,往往會被惡意利用,所以既要靈活運用推薦評價指標,又不要完全迷信技術指標。因為指標背後體現的是使用者的人性。在商業利益和人性之間拿捏到最佳平衡點,是推薦系統開發、以及推薦效果評估的至高境界。

關於作者

陳運文達觀資料創始人&CEO,復旦大學計算機博士,國家“萬人計劃”專家,第九屆上海青年科技英才,任復旦大學、上海財經大學校外研究生導師。在人工智慧領域擁有豐富研究成果,在IEEE Transactions、SIGKDD等國際頂級學術期刊和會議上發表數十篇高水平科研成果論文,譯有人工智慧經典著作《智慧Web 演算法》(第2 版),曾多次摘取ACM KDD CUP、CIKM、EMI Hackathon等世界最頂尖資料探勘競賽的冠亞軍榮譽。曾擔任盛大文學首席資料官、騰訊文學高階總監、百度核心技術研發工程師。在機器學習自然語言處理、搜尋推薦等領域有豐富的研究和工程經驗。

相關文章