Top-K推薦中的自適應機率度量學習


摘要:隨着互聯網內容和服務地迅速增加,用戶發掘感興趣產品的難度也日益增加。所以,個性化推薦系統發揮着愈來愈重要的做用。儘管矩陣分解和基於深度學習的方法已被證實能有效地對用戶偏好進行建模,但它們的偏好度量方式違反了三角不等性於是沒法捕獲更細粒度的偏好信息。爲了解決這個問題,咱們提出了一個基於距離度量的推薦模型,該模型具備幾個有趣的方面:(i) 每一個用戶和物品都經過高斯分佈進行參數化以捕獲學習過程當中的不肯定性;(ii) 提出了一種自適應間隔生成方案,用來根據不一樣訓練三元組生成不一樣大小的間隔;(iii) 在目標函數中加入了顯式的用戶-用戶/物品-物品類似性建模。咱們將Wasserstein距離用於偏好打分,由於它服從三角形不等性而且能夠測量機率分佈之間的距離。經過使用五個真實的數據集和同類的方法比較,在Top-K推薦的召回率方面,咱們提出的模型比現有的最佳模型好4-22%。web

馬辰,加拿大麥吉爾大學(McGill University)計算機系五年級博士生,導師爲Xue Liu教授,研究方向爲數據挖掘與推薦系統。算法


論文地址:微信

https://dl.acm.org/doi/10.1145/3394486.3403147dom



1、背景ide


隨着互聯網服務增加,用戶能夠得到更多的在線商品或者內容,這些用戶和物品交互的數據就促成了一個新的服務,即個性化推薦服務。愈來愈多的互聯網公司開發了針對用戶的推薦服務,例如奈飛會根據用戶的觀影歷史推薦不一樣類型的新做品。據統計代表奈飛有超過70%的數據是由推薦系統獲得的。一樣的例子在Quora上也是同樣的,系統根據咱們的瀏覽歷史或提問歷史推薦咱們可能感興趣的回答,可見這樣一種服務已經普遍存在於咱們的生活當中。svg



一般這樣的推薦問題會被製做成基於用戶-物品的打分矩陣,即便其成爲一個矩陣填補問題。根據矩陣中可以收集到的用戶打分基本數據,做者但願經過這些數據判斷用戶在那些沒有打分的物品上的喜愛是怎樣的。所以在這篇論文裏面所研究的問題是:基於對用戶收集到的喜愛,但願對用戶推薦一些沒有看過,但多是潛在感興趣的新物品。好比模型會對用戶推薦10個或者20個物品,而後看有多少是真正符合用戶喜愛的,而後去計算推薦效果。函數



爲了解決這個問題,有兩種如今比較流行的解決方式,第一種叫Point-wise,第二種叫Pair-wise。第一種比較關注矩陣中物品的打分值的大小,其預測值是二進制的,例如在打分的時候用戶一、電影3的打分要儘可能接近於1,做爲用戶看過電影。第二種方式不關心打分值的絕對大小,而是用戶打分的相對大小,例如預測用戶1對電影3和電影4的評分  。性能



這兩個方法在Top-K推薦系統上都能得到較好的效果,可是Pairwise更具備計算效率。由於不須要計算用戶在全部物品計算上的打分,因此可以只用一小部分樣本完成模型的學習,這種方法無論是學術上仍是工業上都在普遍應用。至於如何評判用戶的喜愛程度呢?一般使用用內積的方式,這是一種直接的表達方式,距離計算也是一種較流行的方式。利用距離有一個很大的好處,它能夠確保三角形不等式,若是兩個用戶對同一部電影進行評級,這將使兩個用戶在潛在空間中的映射距離更近。值得注意的是內積是數值越高用戶越喜歡,距離是相反,越小越喜歡。學習



本次分享主要講咱們是如何用距離計算生產Top-k模型。在距離計算中,i表明用戶,j表明物品,且u和v都須要經過學習得到。在損失函數中,j是用戶看過的某個物品,k是用戶沒有看過的物品,Si就表示用戶所面臨的全部選項,每次計算都要從用戶看過的物品裏面選一個,從沒有看過的物品裏面選一個。計算要使得用戶-看過物品的距離小於用戶-未看過物品的距離。這個小於程度的距離是由超參數m控制的。M的值是一個重要的值,控制函數何時產生梯度。測試


2、解決問題


基於上面的過程,提出了三點改進意見:


1. 在學習過程當中,模型只相信肯定性的嵌入,卻不處理不肯定性的嵌入,那有沒有某種方式能夠同時學習不肯定性嵌入,使得學到的嵌入是具備必定置信度的。


2. 損失函數中的margin參數在訓練期間是固定的。


  1. 但做者認爲在不一樣的訓練階段margin的值可能會不太同樣的。

    例如在初期的時候,若是margin太大會將用戶潛在喜歡的物品推離的較遠;

    而訓練後期能夠將margin設置的較大,這時候模型已經有較大的置信度。



  2. 不一樣用戶可能須要不一樣margin,興趣普遍的就須要一個較小的margin;

    興趣比較專一的就須要一個較大的margin。

3. 在前面提到的解決方案,並無說起到用戶-用戶,物品-物品之間關聯性的聯繫,在以往的工做中,這種顯示的關聯是很重要的一點,咱們但願加入模型中最終提高模型的推薦效果。


基於這三點,提出了不一樣解決方案。



對於第一個問題,爲了捕捉到訓練當中用戶的肯定性和不肯定性嵌入,做者至關於把用戶和物品模擬成爲了高斯分佈,這些高斯分佈的μ和∑都成爲可學習的參數。其中不肯定性能夠經過對角協方差矩陣捕獲。在定義完用戶和物品的高斯分佈以後,須要考慮如何計算兩個高斯分佈之間的距離,這裏採用了Wasserstein distance來衡量用戶對物品的喜愛程度。它有兩點比較好的優點,第一點:它自己是用於計算距離的,第二點能夠從公式中看出它的形式很簡潔,方便計算。



爲了解決第二個問題,提出了一種自適應margin方程,裏面包含了用戶i,興趣物品j,不感興趣物品k。所以,參數Φ將固定值margin替換爲margin生成函數。 然而,這可能不會產生適當的margin。損失函數中直接出現,減小損失的一個簡單方法是減小的輸出。最後,將給出可能等於0的很是小的值,這不是一個理想的值。所以,做者將這個問題轉化爲一個具備內部損失和外部損失的雙層優化。內部損失集中在優化θ上,外部損失集中在優化Φ上。外部損失還試圖驗證生成的margin是否良好。值得注意的是,外部損失使用的是固定的margin。生成的margin和模型參數耦合在一塊兒。給定margin優化margin生成參數;給定模型參數優化margin。



在這個雙層優化裏面有兩個更新的階段,先固定Φ去更新θ,而後固定θ去更新Φ。在裏面重要的一點是,在更新Φ時,做者構建了一個代理函數,將Φ的更新連接到外部優化。



這個圖具體地顯示了雙層優化具體是怎麼運行的。首先是用戶和物品的嵌入,把它標註成θ,它有兩個輸出,一個輸出到margin生成函數裏,生成相應的margin。第二個也同時參與了內部損失的計算,而後經過更新函數輸出θ的更新值,這就是內部損失的更新過程。代理方程複製了一分內部損失函數中未更新的θ,傳入了外部損失函數中,而後經過Φ的更新函數去更新Φ的參數。



咱們有一個交替的訓練程序。經過兩層MLP做爲margin生成函數。softplus激活函數使生成的margin大於0。



對於第三點就比較直接。用戶-用戶和物品-物品之間的關係很重要。類似用戶或類似的物品在潛在空間中不該該被映射的特別遠。由於類似的用戶可能分享相同的喜愛,類似的物品可能有相同的性質包含在裏面。因此在這裏採用了前面提到的自適應margin的方式去計算一個物品和它相近或不相近物品的損失,這個值做爲正則項加入最終的損失中去。所以最終增長了兩項損失函數,一個是用戶-用戶,一個是物品-物品。


3、結論驗證


前面的基本上就是整個論文算法的部分。爲了驗證前面的方法是否有效,做者在五個不一樣的數據集上進行測試評估,同時也採用了Recall@k和ndcg@k做爲批判標準。



Top-k與很是經典或有效的模型進行了比較,它們能夠分紅三個類別,一類是比較經典的協同過濾方法,第二種是比較有用的深度學習方法,第三種是你們比較經常使用的基於距離的方法。



最後對比的結果如上,PMLAM就是本文的方法,相比於其餘的模型,本文的模型可以有效的提高推薦的表現。



爲了驗證提出的每個解決方案是否有用的,做者也作了模型簡化測試,從這個模型簡化測試裏面也能觀察到一些有意思的結果。


  • 第一項和第二項,使用了相同的損失函數可是使用了不一樣的嵌入,第一項用到了肯定的嵌入,第二項用到了高斯分佈嵌入,能夠看到高斯分佈嵌入可以提高模型性能的。



  • 從第一項和第三項,採用了不一樣損失函數,第一項固定margin的損失函數,第三項採用了自適應損失函數,能夠看到自適應損失函數是可以提高推薦性能的。



  • 最後從第七項和第八項能夠看到,相比於其餘項的測試可以極大的提高推薦效果,由於這兩項增長了用戶-用戶和物品-物品之間的關係,這在推薦系統是很是有效果的。




對於自適應margin函數中的margin,咱們作了case study,至關於隨機選取了兩個用戶,而後又隨機選取了兩個用戶看過的電影,以後又選取了一些用戶沒有看過的電影,其中一個是相同類別的電影,另外一個是不一樣類別的電影。而後具體觀察margin的值,能夠看到若是是相同類別的話,生成的margin就比較小,。不一樣的類型就產生較大的margin,至關於把干擾物品推離用戶。


4、結論


  • 模型中的每一個用戶和項目都用高斯分佈表示,具備可學習的參數來處理不肯定性。

  • 經過結合自適應margin方案,模型能夠在訓練過程當中爲訓練三元組生成細粒度margin。

  • 建立用戶-用戶/項目-項目關係。

  • 實驗結果代表,該方法明顯優於最早進的方法。


嘉賓問答:


這篇工做的將來工做會具體的關注哪些方向。

一、表達用戶-物體之間的embedding,這邊只簡單的使用了高斯disbuiling,接下來咱們會想可不能夠用高斯mixture model去表達某一個用戶或物品,去捕捉更犀利的信息。二、咱們對margin生成的模型速度上有一點慢,至關於多作了一個前饋和反饋,接下來會想辦法提高訓練效率。三、具體研究生成的margin跟什麼有關。




整理:閆昊

審稿:馬辰

排版:田雨晴


本週直播預告:


AI Time歡迎AI領域學者投稿,期待你們剖析學科歷史發展和前沿技術。針對熱門話題,咱們將邀請專家一塊兒論道。同時,咱們也長期招募優質的撰稿人,頂級的平臺須要頂級的你,請將簡歷等信息發至yun.he@aminer.cn!

微信聯繫:AITIME_HY



 

AI Time是清華大學計算機系一羣關注人工智能發展,並有思想情懷的青年學者們創辦的圈子,旨在發揚科學思辨精神,邀請各界人士對人工智能理論、算法、場景、應用的本質問題進行探索,增強思想碰撞,打造一個知識分享的彙集地。

更多資訊請掃碼關注




(點擊「閱讀原文」下載本次報告ppt)

(直播回放:https://www.bilibili.com/video/BV1Jk4y117ff)



本文分享自微信公衆號 - AI TIME 論道(lundaoAI)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索