標籤:

《Open Source Repository Recommendation in Social Coding》閱讀筆記

論文鏈接:Open Source Repository Recommendation in Social Coding

論文來源:SIGIR2017

1、問題介紹

本文是針對社交編程中的開放源代碼庫的推薦。隨著開放源代碼庫的增多,軟體開發人員選擇適合自己的開放源代碼庫去學習就不那麼容易了。雖然已有的方法OCCF(one class collaborative fi?ltering )可以用於解決這個問題, 但是它沒有考慮到社交編程中獨有的一些限制,例如編程語言在某種程度上也是會影響用戶選擇源代碼庫的。作者針對這個問題, 提出了一種考慮編程語言的LRMF模型(language-regularized matrix factorization)來改善OCCF的效果。

2、OCCF簡介

在開放源代碼庫的推薦中,用戶的歷史行為只能反應用戶的喜歡的庫,所以我們得到的樣本都是正樣本。對於用戶沒有行為的庫,一種方法是認為用戶對其不感興趣,評分認為是0,之後可以使用MF方法得到用戶的隱向量和物品的隱向量。另外可以在loss中加入權重信息,用戶有行為的正樣本可以在loss中佔取更大的weight,相反沒有行為的樣本可以取比較小的weight。

3、LRMF模型

LRMF模型是基於MF的一種method, MF是把用戶的打分矩陣分解成U和V,U表示用戶的隱向量矩陣,V表示物品的隱向量矩陣。之後u和v的內積可以表示u對v的喜好程度。作者採用BPRMF(Bayesian personalized ranking matrix factorization)來建模,loss如下:

BPRMF希望用戶喜歡的item與用戶不喜歡的item之間的得分差值越大越好,也就是rank的思想。

在BRPMF模型的基礎上,作者在loss中加入了一項正則項來對用戶的編程語言信息建模。

假設編程語言相似的用戶,對開源庫的喜好也是相似的;並且對開源庫喜好相似的用戶,它們由MF學到的隱向量也是相似的。

作者用manifold regularization framework(流型正則化)來對用戶喜歡的編程語言建模。正則項為:

其中w是cosin相似度函數。這樣相似的編程語言喜好的用戶pair,它們的隱向量會更相似,在上述正則化中,它們的隱向量之差的範數會得到更大的懲罰。

LRMF模型是在MF模型的基礎上加入了流型正則化項,其loss為:

這樣可以使得學到的相似的用戶隱向量具有語言相似特性。

4、對語言建模的方法簡介

對語言建模的方法作者介紹了VSM(Vector Space Model)和LFM(Latent Factor Model)。用戶的語言喜好可以根據用戶歷史行為中用過的開源庫的語言來表示。

VSM:廣泛的應用在信息檢索領域。VSM向量的某一維表示與文檔相關的某個term。對於語言建模來說,可以把語言類型作為term,這樣用戶的語言文檔可以表示為用戶過去使用過的語言(這裡面也考慮了用戶使用某種語言的次數),可以用tfidf方法得到某個用戶的語言文檔表示作為用戶的語言偏好。這樣的缺點是沒有考慮term之間的關係。

LFM:其實就是MF,可以把用戶語言矩陣(行表示用戶,列表示某種語言,矩陣的某個值表示該用戶用這種語言的次數)分解。得到用戶的隱向量和語言的隱向量,通過這種方式,可以建模出語言之間的內部聯繫,得到語言的內在特徵,例如簡潔等等。作者最終選擇BPRMF來對語言建模。

5、實驗

數據:選用github 2011.1到2014.12數據,如果用戶對某個開源庫的行為為PushEvent, IssueEvent, ForkEvent, PullRequestEvent and WatchEvent中的一種,即認為用戶更喜歡這個庫。

數據集表:總體是10,000 users and 10,000 repositories with 616,633 次行為,保證每個 用戶至少有10個prefered 庫,每個庫至少有10個用戶prefered。採用10-fold交叉驗證方法。

baseline models

MP(Most-Popular)根據訪問頻率對庫排序。

WRMF(Weighted Regularized MF)對未知的喜好(指用戶沒有對庫產 生過任何行為)在loss中降低權重。

MMMF(Maximum Margin MF)

BPRMF:上面介紹過的基於rank的MF

FM:(Factorization Machine):二階FM可以建模交叉特徵,將交叉項係數用隱向量內積表示(詳細介紹可以自行google)。它可以加入語言特徵,也是唯一的加入語言信息的base。

實驗評價指標:AUC(area under the ROC curve)、R-Precision(RP)、mean reciprocal rank(MRR)

RP的簡介:Suppose in your collection there are 100 documents in total, 30 of which are relevant (R=30), the rest irrelevant. So you retrieve the first 30 documents (because 30 are relevant in total in your collection) and, say, 10 of them are relevant (r=10). Your R-Precision is then 10/30=1/3.本文中,作者並沒有明確說明R的值。

MRR簡介

作者沒有具體明確如何定義某個用戶對一個庫的喜好大於另一個庫。所以詳細怎樣去衡量MRR也並不清楚。不過可以明確一點,MRR值越大表明推薦效果越好。

實驗結果

6、總結

作者選取了一個比較新的方向,值得借;並且加入語言信息的流型正則方法也值得學習,對於語言喜好相似的用戶隱向量pair差給予更大的懲罰。

推薦閱讀:

『好物App』「皇家哥本哈根」瓷器 | 能撩妹的高顏值餐具
有哪些不錯的關於拓展人脈和人脈管理的書?
10月破產 | 超好用的染髮劑、床上用品,以及…假髮

TAG:推荐 |