2019.6.25補充:這篇文章是我初學推薦策略時非常粗糙的見解,想要深入學習推薦策略,建議仔細閱讀《推薦系統實踐》(項亮,人民郵電出版社)這本書,該書可以解答有關推薦策略的大部分困惑。


推薦策略的兩個關鍵問題分別是「召回」和「排序」。「召回(match)」指從全量信息集合中觸發儘可能多正確的結果,並將結果返回給「排序」,它可能包含來源於渠道,比如協同過濾、主題模型、內容召回和熱點召回等渠道,能夠從內容庫中選出多樣性的偏好內容。而「排序(rank)「則是指對多個召回渠道的內容進行統一打分排序,選出最優的少量結果。

下面來重點說說「召回(match)」。

1

「召回」指從全量信息集合中觸發儘可能多正確的結果。在搜索系統中,用戶對這個「正確的結果」有預期,比如搜索「北京大學」時想看到的就是北大相關的網站、新聞等。但在推薦系統中,用戶並沒有一個明確的檢索詞(Query)輸入,用戶自身的需求就不太明確,推薦系統需要做的,就是根據用戶畫像、內容畫像等各種信息為用戶推薦他可能感興趣的內容,達到延長用戶停留時間的作用。另外,由於沒有明確的Query,推薦系統中的召回面對的是全量信息池,需要從整個信息集合中挑選出儘可能多的相關結果,剔除相關性較弱的結果,降低排序階段的工作量。

2

怎樣的召回策略是好的?我們主要看兩個評價指標,即召回率和準確率。

  • 召回率(Recall)=系統檢索到的相關內容 / 系統所有相關的內容總數
  • 準確率(Precision)=系統檢索到的相關內容 / 系統所有檢索到的內容總數

以搜索為例,當用戶搜索「北京大學」時,想看到的是北大相關的網站、新聞等,而系統返回了以下三個網頁:

a. 北京大學保安考上研究生

b. 北京互聯網工作招聘

c. 大學生活是什麼樣的

可以看到,只有a是用戶真正想看到的,其他兩個和用戶搜索詞無關,而事實上資料庫裏還有這種網頁:

d. 北大開學季

e. 未名湖的景色

d、e這兩個網頁沒被搜索到,但它們和「北京大學」的相關度其實是超過b、c的,也就是應該被搜索(被召回)到但實際並沒有顯示在結果裏的,所以,這個系統的:

l 召回率 = a / (a + d + e)=0.33

l 準確率 = a /(a + b + c)=0.33

這是搜索情境下的召回率和準確率,而「推薦」其實就是沒有檢索詞輸入時的搜索,例如,用戶並沒有輸入「北京大學」這樣的關鍵詞,但其實他是北京大學的學生,對自己學校相關的新聞很感興趣,推薦系統的召回就是要根據用戶畫像、內容畫像等各種信息,為用戶提供他感興趣的相關內容,所以也存在召回率和準確率的問題。召回率和準確率有時存在相互制衡的情況,好的召回策略應該在保證高準確率的情況下也保證高召回率。

3

召回策略有很多種,其中比較重要的有兩種:基於內容匹配的召回和基於協同過濾的召回。

· 基於內容匹配的召回

內容匹配即將用戶畫像與內容畫像進行匹配,又分為基於內容標籤的匹配基於知識的匹配。例如,A用戶的用戶畫像中有一條標籤是「楊冪的粉絲」,那麼在他看了《綉春刀2》這部楊冪主演的電影后,可以為他推薦楊冪主演的其他電影或電視劇,這就是「基於內容標籤的匹配」;而「基於知識的匹配」則更進一步,需要系統存儲一條「知識」——《綉春刀2》是《綉春刀1》的續集,這樣就可以為看過《綉春刀2》的用戶推薦《綉春刀1》。

基於內容匹配的召回率較高,但準確率較低,比較適用於冷啟動的語義環境。

· 基於協同過濾的召回

如果僅使用上述較簡單的召回策略,推薦內容會較為單一,目前業界最常用的基於協同過濾的召回,它又分為基於用戶、基於項目和基於模型的協同過濾。

其中,基於用戶(User-based)的協同推薦是最基礎的,即發現與用戶相似的其他用戶,用用戶的瀏覽記錄做相互推薦。例如,通過瀏覽記錄發現用戶一與用戶二的偏好類似,就將用戶一點擊的內容推送給用戶二。

基於項目(Item-based)的協同過濾中的「項目」可以視場景定為信息流產品中的「內容」或者電商平臺中的「商品」,其計算項目之間的相似性,再根據用戶的歷史偏好信息將類似的物品推薦給該用戶。

基於模型的協同過濾推薦(Model-based)就是基於樣本的用戶喜好信息,訓練一個推薦模型,然後根據實時的用戶喜好的信息進行預測推薦。

總體來說,基於協同過濾的召回即建立用戶和內容間的行為矩陣,依據「相似性」進行分發。這種方式準確率較高,但存在一定程度的冷啟動問題。

在實際運用中,採用單一召回策略的推薦結果實際會非常粗糙,通用的解決方法是將規則打散,將上述幾種召回方式中提煉到的各種細小特徵賦予權重,分別打分,並計算總分值,預測CTR。例如,根據內容匹配召回策略,用戶A和內容甲的標籤匹配度為0.6,同時,根據協同過濾召回策略,應該將內容甲推薦給用戶A的可能性為0.7,那麼就為0.6和0.7這兩個數值分別賦予權重(這個權重可能會根據演算法的具體情況來確定),得出總分,用它來預測用戶可能點擊的概率,從而決定是否返回該結果。

參考文獻:

1. 閆澤華,《內容演算法》,中信出版集團.

2. IBM官網資料探索推薦引擎內部的祕密,第 1 部分: 推薦引擎初探

4. 今日頭條推薦演算法原理首公開,頭條首席演算法架構師帶來詳細解讀:leiphone.com/news/20180


推薦閱讀:
相關文章