Embedding-based News Recommendationnfor Millions of Users
來源:KDD2017
論文鏈接:Embedding-based News Recommendation for Millions of Users
1、問題介紹
這篇論文主要是針對新聞推薦的,新聞推薦和其它商品推薦的不同之處在於一篇新聞的時效性是很短的。新聞推薦的關鍵三點:
- 理解文章的內容
- 理解用戶的喜好
- 基於文章內容和用戶喜好為用戶生成一個推薦列表
傳統的解決這三點的推薦方法是把文章表示成詞的集合(如果文章包含這個詞對應值就是1,否則為0),把用戶喜好表示成用戶看過的所有文章中詞的集合(如果用戶看過的文章中有這個詞對應值就是1,否則為0);這種方法是基於共現詞的點擊率學習,它的優點:
- 它可以反應用戶最近的傾向,因為模型比較簡單,所以可以在很短的時間內學習更新。
缺點:
- 忽略了詞的表示,因為這種方法是把單個的詞當作一個特徵,所以2個意思相近的詞是被當作了2個不同的特徵。當多個新聞作者針對一個事件提交新聞的時候這個問題就會很明顯。
- 忽略了用戶瀏覽歷史的順序。這種方法是把所有的瀏覽歷史當作一個集合,並沒有考慮它們之間的順序。然而這種順序表示了用戶喜好的變化。
2、論文模型
- 文檔表示:基於降噪自動編碼器生成文檔的分散式表達。傳統的降噪自動編碼器過程如下:
h一般被當作x的表示向量,然而h只保留了x的信息,本文希望如果x1和x2更相近的話,那麼h1和h2的內積更大一些,所以本文的loss中加入了表示類別相似性的函數。
f函數用sigmoid函數,優化方法是SGD,構建加入雜訊的輸入的方法:
p是擾動率,它是一個常數。
最終用h表示一篇文檔的分布向量。
- 用戶喜好表示:基於用戶的瀏覽歷史表示用戶喜好。
瀏覽:代表用戶進入了某篇文章的頁面。
session:代表用戶訪問雅虎的推薦服務並且點擊了一篇推薦列表裡的文章。
一個session會對應一個用戶的推薦列表,P=N表示推薦列表的數量。
模型的目標是構建用戶狀態函數和相關度函數(相關度表示某個用戶對某篇文章的喜好程度):
由於從用戶訪問雅虎開始到推薦列表生成必須在很短的時間內完成,所以相關度函數必須很簡單,這裡選擇內積函數,也就是用戶喜好向量和文章向量的內積。
最終的loss函數:
- 用戶喜好狀態向量建模
word-based模型:
Decaying 模型:
lstm模型:
GRU模型:
3、實驗
訓練數據:大概166million session,10億的瀏覽記錄,200萬不同的文章
測試數據:隨機選取50w的session,推薦列表長度為20
metrics:
模型描述:
實驗結果:
4、總結
雖然看起來並沒有什麼創新點,像lstm,GRU都是很久的概念了,但是雅虎這篇文章是將已有的模型結合自己的業務實際問題,可以當作一種工程上的學習吧。了解一下如何將高上大的模型來解決實際問題。
推薦閱讀:
※有哪些 Ps 素材質量較高的的網站?
※一款輕量級瀏覽器
※有沒有真正值得推薦的非蘋果手機?
※Apriori演算法是什麼?適用於什麼情境?
TAG:推荐 |