魏港明, 劉真, 李林峰, 張猛
(北京交通大學(xué)計(jì)算機(jī)與信息技術(shù)學(xué)院, 100044, 北京)
基于矩陣分解的推薦算法是應(yīng)用廣泛的協(xié)同過(guò)濾推薦技術(shù)[1-3],具有良好的推薦準(zhǔn)確性,并能有效處理大規(guī)模的用戶項(xiàng)目評(píng)分?jǐn)?shù)據(jù)。在Netflix Prize大賽中,矩陣分解算法產(chǎn)生了PMF、ASVD和SVD++等算法[4-6],這些算法能夠充分挖掘用戶項(xiàng)目的隱類信息,具有很好的推薦效果。但是,矩陣分解推薦算法存在冷啟動(dòng)問(wèn)題,對(duì)于評(píng)分較少的用戶或新項(xiàng)目,不能有效挖掘其隱類信息,越來(lái)越多的社會(huì)化網(wǎng)絡(luò)、用戶的人口統(tǒng)計(jì)學(xué)信息、項(xiàng)目的描述信息等[7-8]信息源被加入到矩陣分解的框架中,這在一定程度上解決了冷啟動(dòng)問(wèn)題。
目前,大多數(shù)工作集中在用戶冷啟動(dòng)的問(wèn)題,而忽略了項(xiàng)目冷啟動(dòng)問(wèn)題。MarCelo提出了在推薦中應(yīng)用項(xiàng)目元數(shù)據(jù)的gSVD++算法,融入用戶隱式偏好,同時(shí)充分考慮了項(xiàng)目的屬性信息的作用,提高了推薦的準(zhǔn)確度[9-10];Qin等提出了基于項(xiàng)目類別權(quán)重的協(xié)同過(guò)濾推薦算法,同時(shí)考慮了項(xiàng)目的類別信息和用戶的屬性信息,提高了推薦的準(zhǔn)確[11];Yu等提出了在矩陣分解算法中融入項(xiàng)目屬性信息的改進(jìn)算法[12],一定程度上解決了項(xiàng)目冷啟動(dòng)問(wèn)題。矩陣分解協(xié)同過(guò)濾算法只考慮了項(xiàng)目屬性的影響,并未考慮用戶對(duì)項(xiàng)目屬性的偏好信息。用戶對(duì)項(xiàng)目類別的契合在某種程度上體現(xiàn)了用戶本身性格偏好,因此需要考慮這方面的信息。
基于此,本文提出了加入項(xiàng)目屬性和用戶對(duì)項(xiàng)目屬性偏好的UC-SVD矩陣分解算法,將用戶的評(píng)分信息、項(xiàng)目的屬性信息以及用戶對(duì)項(xiàng)目屬性的偏好信息應(yīng)用到矩陣分解算法中,對(duì)矩陣分解中隱類的分解起到增強(qiáng)效果,解決項(xiàng)目冷啟動(dòng)問(wèn)題,同時(shí)提高推薦的質(zhì)量。
在現(xiàn)實(shí)中,用戶和項(xiàng)目都有很多的偏好特征,如果用戶的特征向量和項(xiàng)目的特征向量相吻合,那么兩向量的內(nèi)積就是用戶的對(duì)項(xiàng)目的評(píng)分,從矩陣分解的角度來(lái)看,就是將評(píng)分矩陣分解為用戶特征矩陣P和項(xiàng)目特征矩陣Q的乘積[13],即
(1)
如果考慮整體用戶和項(xiàng)目的偏差,則可得用戶u對(duì)項(xiàng)目i的預(yù)測(cè)評(píng)分
(2)
如果能最小化訓(xùn)練集T的預(yù)測(cè)誤差,那么也可以最小化測(cè)試集的預(yù)測(cè)誤差。為了防止過(guò)擬合,加入正則化項(xiàng)L2,λ為正則化參數(shù),定義損失函數(shù)為
λ(‖pu‖2+‖qi‖2+‖bu‖2+‖bi‖2)
(3)
要最小化式(3)所示的損失函數(shù),可利用隨機(jī)梯度下降最優(yōu)化方法進(jìn)行求解,通過(guò)調(diào)整參數(shù),可求出預(yù)測(cè)評(píng)分。
考慮m個(gè)用戶和n個(gè)項(xiàng)目的評(píng)分矩陣,評(píng)分矩陣R中包含的用戶集合為U={u1,u2,u3,…,um},被評(píng)價(jià)的項(xiàng)目集合為I={i1,i2,i3,…,in},rui表示用戶u對(duì)項(xiàng)目i的評(píng)分。項(xiàng)目i的屬性集合為G(i)={g1,g2,g3,…,gs},其中s為項(xiàng)目屬性個(gè)數(shù),G(i)表示項(xiàng)目i的各個(gè)屬性信息,如果i存在某屬性,則該屬性為1,否則置為0。
考慮到項(xiàng)目的屬性信息對(duì)項(xiàng)目特征矩陣的增強(qiáng)作用,將項(xiàng)目屬性信息加入到SVD模型當(dāng)中,加入因子后的評(píng)分預(yù)測(cè)公式為
(4)
式中:bui=u+bu+bi。通過(guò)每個(gè)項(xiàng)目i的G(i)屬性集用來(lái)調(diào)整每個(gè)屬性g的相關(guān)特征權(quán)重,并通過(guò)已知的用戶評(píng)分矩陣學(xué)習(xí)得到。
由于用戶對(duì)項(xiàng)目屬性的偏好并未直接在數(shù)據(jù)集文件中給出,因此首先需要構(gòu)造用戶對(duì)項(xiàng)目屬性的偏好矩陣Z,構(gòu)造如下算法1。
算法1構(gòu)造用戶對(duì)項(xiàng)目屬性的偏好矩陣
輸入:用戶項(xiàng)目評(píng)分矩陣R,項(xiàng)目屬性矩陣G,屬性選擇個(gè)數(shù)T。
輸出:用戶對(duì)項(xiàng)目屬性偏好矩陣Z。
(1)Iu←GetEachUserItem(R);/*對(duì)于用戶u,根據(jù)評(píng)分矩陣R取得u評(píng)分過(guò)的項(xiàng)目集合Iu={i1,i2,i3,…,ik}*/。
(3)buk←SortAndTakeT(Cu)/*對(duì)步驟(2)中評(píng)分次數(shù)ci(i=1,2,…,s)進(jìn)行降序排序,取評(píng)分次數(shù)靠前的T個(gè)屬性,將其結(jié)果置為1,其余置為0(如果不為0項(xiàng)小于T,則全部取為T(mén)),得到用戶u的項(xiàng)目屬性偏好向量buk(k=1,2,3…,s)*/。
(4)遍歷所有用戶,重復(fù)步驟(1)~(3),得到所有用戶對(duì)項(xiàng)目屬性的偏好矩陣Z。
在算法1中,用戶對(duì)項(xiàng)目屬性評(píng)分次數(shù)在統(tǒng)計(jì)意義上反映了用戶u對(duì)項(xiàng)目各屬性的偏好信息。由于整個(gè)評(píng)分矩陣中,用戶間對(duì)項(xiàng)目評(píng)分?jǐn)?shù)量差距較大,不能統(tǒng)一按照某個(gè)閾值進(jìn)行屬性選擇處理,因此只利用用戶對(duì)項(xiàng)目屬性的二元偏好而不使用對(duì)電影屬性評(píng)分次數(shù),這樣有效避免了不同用戶評(píng)分對(duì)項(xiàng)目各屬性次數(shù)相差過(guò)大的問(wèn)題,從而得到了用戶u對(duì)項(xiàng)目屬性的偏好向量。把用戶對(duì)項(xiàng)目屬性的偏好信息加入到式(4)中,用戶對(duì)相關(guān)屬性偏好的權(quán)重可以通過(guò)用戶評(píng)分信息學(xué)習(xí)到,加入用戶偏好后的評(píng)分預(yù)測(cè)公式為
(5)
在式(5)中,與傳統(tǒng)矩陣分解算法相比,分別對(duì)qi、pu進(jìn)行改進(jìn),加入項(xiàng)目屬性偏好特征和用戶對(duì)項(xiàng)目屬性偏好特征,算法改進(jìn)示意圖如圖1所示。
圖1 算法改進(jìn)示意圖
模型建立后,可得評(píng)分預(yù)測(cè)損失函數(shù)
(6)
通過(guò)算法更新可以得到用戶的特征矩陣P、項(xiàng)目的特征矩陣Q、用戶對(duì)項(xiàng)目屬性偏好特征矩陣PF及項(xiàng)目屬性特征矩陣QF。δ、φ根據(jù)屬性信息進(jìn)行調(diào)整:如果項(xiàng)目存在相關(guān)屬性信息,則δ設(shè)置為1,否則為0;如果用戶存在對(duì)項(xiàng)目屬性偏好信息,則φ設(shè)置為1,否則設(shè)置為0,其余的相關(guān)參數(shù)將通過(guò)在訓(xùn)練集中最小化損失函數(shù)學(xué)習(xí)到,參數(shù)的更新算法如算法2所示。
算法2參數(shù)更新算法
輸入:用戶對(duì)項(xiàng)目的評(píng)分矩陣R,項(xiàng)目的屬性矩陣G,用戶對(duì)項(xiàng)目的屬性偏好矩陣Z;
輸出:返回List列表,包括用戶和項(xiàng)目偏差bu和bi,用戶和項(xiàng)目特征矩陣P和Q,用戶對(duì)項(xiàng)目屬性偏好特征矩陣PF和項(xiàng)目屬性特征矩陣QF。
(1)List[bu,bi,W,H]←Initialize(Double);
PF,QF←Initialize(Gaussian);/*以Double數(shù)據(jù)類型初始化bu、bi,P和Q,并以高斯分布(加速收斂)初始化用戶對(duì)項(xiàng)目屬性偏好特征矩陣PF和項(xiàng)目屬性特征矩陣QF*/。
(2)bu←bu-γ1bu;bi←bi-γ1bi;P←P-γ1P;
Q←Q-γ1Q;PF←PF-γ2PF;QF←QF-γ2QF;
/*利用式(5)進(jìn)行評(píng)分計(jì)算初始的預(yù)測(cè)評(píng)分,
然后
根據(jù)式(6)及評(píng)分矩陣R,項(xiàng)目屬性矩陣G,用戶對(duì)項(xiàng)目屬性偏好矩陣Z,利用SGD隨機(jī)梯度下降法更新矩陣P、Q、PF和QF,直至預(yù)測(cè)誤差基本不再變化*/。
(3)Return List[bu,bi,P,Q,PF,QF]/*參數(shù)列表*/。
綜合算法1、2,得到整體的UC-SVD算法框架如圖2所示。
圖2 UC-SVD算法框架
算法3UC-SVD算法
輸入:用戶對(duì)項(xiàng)目的評(píng)分矩陣R,屬性矩陣G。
輸出:用戶的推薦列表List[Item]。
(1)Z←Process(R,G);/*對(duì)用戶對(duì)項(xiàng)目評(píng)分矩陣R和項(xiàng)目的屬性偏好處理,得到用戶對(duì)項(xiàng)目屬性偏好矩陣*/。
(2)List[bu,bi,P,Q,PF,QF]←OverallUpdate(R,G,Z,bu,bi,P,Q,PF,QF);/*利用SGD進(jìn)行全局參數(shù)更新,直到參數(shù)最終達(dá)到收斂*/。
(3)R’←PreRate(bu,bi,P,Q,PF,QF)/*使用最優(yōu)參數(shù)進(jìn)行評(píng)分預(yù)測(cè),預(yù)測(cè)評(píng)分矩陣R’*/。
(4)List[Item_K]←RecommendK(R’)/*利用預(yù)測(cè)評(píng)分矩陣,對(duì)用戶未評(píng)分過(guò)項(xiàng)目的預(yù)測(cè)評(píng)分進(jìn)行排序,將前K個(gè)項(xiàng)目推薦給用戶*/。
實(shí)驗(yàn)采用Movielens[14]的兩個(gè)數(shù)據(jù)集,Movielens100KB的數(shù)據(jù)集包括943個(gè)用戶對(duì)1 682個(gè)項(xiàng)目的100 000條評(píng)分?jǐn)?shù)據(jù)和相關(guān)電影的屬性信息,該數(shù)據(jù)集的評(píng)分稀疏度為93.70%;Movielens 1MB的數(shù)據(jù)集包括6 040個(gè)用戶對(duì)3 952個(gè)項(xiàng)目的1 000 209條評(píng)分?jǐn)?shù)據(jù)和相關(guān)電影的屬性信息,該評(píng)分?jǐn)?shù)據(jù)集的稀疏度為95.53%。首先對(duì)Movielens 100KB、Movielens1MB數(shù)據(jù)集的評(píng)分?jǐn)?shù)據(jù)和電影類別數(shù)據(jù)進(jìn)行處理,由于Movielens100KB數(shù)據(jù)集中存在無(wú)效類別,為防止其對(duì)結(jié)果產(chǎn)生干擾,將其剔除,這樣可以得到的電影類別為18項(xiàng)。通過(guò)實(shí)驗(yàn),選取用戶的類別偏好屬性個(gè)數(shù)為7,其余11個(gè)屬性置為0,處理后的電影類別文件Category和用戶對(duì)電影屬性的偏好文件Preference存儲(chǔ)在數(shù)據(jù)文件中,可提高算法效率。實(shí)驗(yàn)中采用的基準(zhǔn)算法為RSVD算法和ALS推薦算法,數(shù)據(jù)集的80%為訓(xùn)練集,20%為測(cè)試集,結(jié)果取平均值。
本文實(shí)驗(yàn)環(huán)境為:Win8.1操作系統(tǒng),8 G內(nèi)存,Intel(R) Core(TM) i5-6300HQ CPU @ 2.30 GHz,實(shí)驗(yàn)程序使用Scala2.11.7編寫(xiě)。
在實(shí)驗(yàn)中,采用常用的均方根誤差和平均絕對(duì)誤差,計(jì)算公式為
(7)
(8)
對(duì)相關(guān)參數(shù)進(jìn)行選取,選擇使UC-SVD算法Er、Em最優(yōu)的參數(shù)值。更新過(guò)程中的主要參數(shù)為梯度下降速率γ1、γ2,對(duì)速率進(jìn)行實(shí)驗(yàn)并選取最優(yōu)值,結(jié)果如表1、2所示。對(duì)式(6)中的正則項(xiàng)λ進(jìn)行實(shí)驗(yàn)并選取最優(yōu)值,結(jié)果如表3所示。
表1 當(dāng)γ2不變、γ1變化時(shí)的Em、Er值
表2 當(dāng)γ1不變、γ2變化時(shí)的Em、Er值
表3 λ變化時(shí)的Em、Er值
由表1、2可知,當(dāng)γ1=0.001、γ2=0.002時(shí),改進(jìn)的UC-SVD算法Er、Em取得最優(yōu)。由表3可知,當(dāng)λ=0.05時(shí),改進(jìn)的UC-SVD算法的Er、Em取得最優(yōu)。
對(duì)帶有正則化項(xiàng)的矩陣分解推薦(RSVD)算法[15]、基于交替最小二乘的協(xié)同過(guò)濾推薦(ALS)算法[16]、本文算法等進(jìn)行了對(duì)比實(shí)驗(yàn),并在Movielens的兩個(gè)數(shù)據(jù)集上運(yùn)行這3種算法,各算法Er、Em對(duì)比結(jié)果如圖3所示。
(a)Er (b)Em圖3 各算法Er、Em對(duì)比
由圖3可知,本文所提算法的Er值低于RSVD以及ALS推薦算法的,在Movielens1MB數(shù)據(jù)集上,UC-SVD算法比RSVD算法下降了2%,比ALS算法下降了約1.8%左右,說(shuō)明改進(jìn)算法在預(yù)測(cè)準(zhǔn)確度上優(yōu)于對(duì)比算法的。尤其是在Movielens 1MB數(shù)據(jù)集實(shí)驗(yàn)下,當(dāng)?shù)螖?shù)為400、特征因子為20時(shí),Er降低到0.848 7。本文所提算法的Em比RSVD算法的下降了3.1%,比ALS算法的下降了約4%。
(a)Er (b)Em圖4 Movielens100KB數(shù)據(jù)集Er、Em隨迭代次數(shù)變化
(a)Er (b)Em圖5 Movielens1MB數(shù)據(jù)集Er和Em隨迭代次數(shù)變化
為了驗(yàn)證在用戶和項(xiàng)目特征因子固定的情況下,各算法的Er、Em隨迭代次數(shù)變化的情況,在兩個(gè)數(shù)據(jù)集下實(shí)驗(yàn)對(duì)比結(jié)果如圖4、5所示。由圖4可知,當(dāng)?shù)螖?shù)小于100時(shí),推薦效果較差;當(dāng)?shù)螖?shù)在100~200時(shí),3種對(duì)比算法大致相當(dāng),當(dāng)?shù)螖?shù)大于200時(shí),推薦的效果要好于兩種對(duì)比算法,當(dāng)?shù)螖?shù)大于100時(shí),UC-SVD算法的Er好于兩種對(duì)比算法。由圖5可知:RSVD、ALS算法隨迭代次數(shù)的增加基本保持不變;UC-SVD算法在迭代次數(shù)小于100時(shí),推薦效果較差;在迭代次數(shù)大于100時(shí),推薦效果好于其余兩種對(duì)比算法;在大于50時(shí),UC-SVD算法的Em誤差結(jié)果好于其余兩種對(duì)比算法。迭代次數(shù)固定時(shí),在兩個(gè)數(shù)據(jù)集下各算法的Er值隨特征因子k變化的情況如圖6、7所示。由圖6可知:隨著k的增加,UC-SVD算法的Er不斷降低,當(dāng)特征因子大于100后,Er值保持穩(wěn)定,這說(shuō)明此時(shí)特征因子繼續(xù)增加不會(huì)對(duì)推薦產(chǎn)生更積極的影響,整體上UC-SVD算法的Er低于其余兩種對(duì)比算法;UC-SVD算法的Em誤差隨著因子的增加逐漸減低,均低于兩種對(duì)比算法。
(a)Er (b)Em圖6 Movielens100KB數(shù)據(jù)集Er、Em隨特征因子k的變化情況
(a)Er (b)Em圖7 Movielens1MB數(shù)據(jù)集Er、Em隨特征因子k的變化情況
由圖7可知:隨著k的增加,UC-SVD算法當(dāng)k大于30時(shí),Er有所增加,但改進(jìn)算法的Er在整體上優(yōu)于其余兩種對(duì)比算法;UC-SVD算法的Em當(dāng)k大于30時(shí)有所升高,這可能是由于因子的過(guò)大對(duì)推薦產(chǎn)生負(fù)影響,但在整體上遠(yuǎn)低于兩種對(duì)比算法。
使用HetRec2011數(shù)據(jù)集來(lái)驗(yàn)證本文所提算法在不同數(shù)據(jù)集下的表現(xiàn),該數(shù)據(jù)集數(shù)據(jù)稀疏度為96.03%,較MovieLens100KB、MovieLens 1MB數(shù)據(jù)集更為稀疏。由于屬性信息中多了Short、IMAX兩項(xiàng)屬性,考慮到該屬性對(duì)類別的影響較小,將其剔除,只保留項(xiàng)目的18個(gè)屬性,與Movielens100KB數(shù)據(jù)集保持一致,其余數(shù)據(jù)處理與上述數(shù)據(jù)集相同,對(duì)比結(jié)果如表4所示。由表4可知,在新的稀疏數(shù)據(jù)集下,UC-SVD算法表現(xiàn)良好,當(dāng)k=10時(shí),改進(jìn)算法的Er較RSVD、ALS算法的降低了約3.3%,當(dāng)k=50時(shí),較RSVD、ALS算法降低了約3.7%,UC-SVD算法在整體上好于其余兩種對(duì)比算法。
表4 各算法在HetRec數(shù)據(jù)集下對(duì)比
本文考慮了項(xiàng)目屬性的重要作用,通過(guò)對(duì)項(xiàng)目屬性、用戶評(píng)分的綜合考慮,得出用戶對(duì)項(xiàng)目屬性的偏好信息,提出基于用戶對(duì)項(xiàng)目屬性偏好的UC-SVD協(xié)同過(guò)濾推薦算法。先介紹算法的改進(jìn)思路和算法步驟,通過(guò)更新得出算法的最優(yōu)參數(shù)及模型,最后在Movielens100KB、Movielens1MB數(shù)據(jù)集上,將改進(jìn)的UC-SVD算法和傳統(tǒng)的經(jīng)典協(xié)同過(guò)濾算法進(jìn)行對(duì)比。實(shí)驗(yàn)結(jié)果表明,加入項(xiàng)目屬性因子和用戶對(duì)項(xiàng)目屬性偏好信息使得準(zhǔn)確度有所提升,Er平均降低3.5%。為了驗(yàn)證模型在更加稀疏數(shù)據(jù)集上的作用,本文在HetRec2011數(shù)據(jù)集上進(jìn)行了算法的對(duì)比實(shí)驗(yàn),表明改進(jìn)算法在更為稀疏的數(shù)據(jù)集下表現(xiàn)良好。在實(shí)際過(guò)程數(shù)據(jù)比較稀疏的情況下,利用項(xiàng)目的屬性信息和用戶對(duì)項(xiàng)目屬性的偏好信息,能夠解決一定的稀疏性問(wèn)題,同時(shí)提高推薦的準(zhǔn)確率。
參考文獻(xiàn):
[1] 趙長(zhǎng)偉, 彭勤科, 張志勇. 混合因子矩陣分解推薦算法 [J]. 西安交通大學(xué)學(xué)報(bào), 2016, 50(12): 87-91.
ZHAO Changwei, PENG Qinke, ZHANG Zhiyong. A matrix factorization algorithm with hybrid implicit and explicit attributes for recommender systems [J]. Journal of Xi’an Jiaotong University, 2016, 50(12): 87-91.
[2] PAN T, LIU Q, CHANG L I U. Ratings distribution recommendation model-based collaborative filtering recommendation algorithm [C]∥ The 2nd International Conference on Software, Multimedia and Communication Engineering. [s.n.]: SMCE, 2007: 378-380.
[3] 燕彩蓉, 張青龍, 趙雪, 等. 基于廣義高斯分布的貝葉斯概率矩陣分解方法 [J]. 計(jì)算機(jī)研究與發(fā)展, 2016, 52(12): 2793-2800.
YAN Cairong, ZHANG Qinglong, ZHAO Xue, et al. A method of Bayesian probabilistic matrix factorization based on generalized Gaussian distribution [J]. Journal of Computer Research and Development, 2016, 52(12): 2793-2800.
[4] 吳金龍. Netflix Prize中的協(xié)同過(guò)濾算法 [D]. 北京: 北京大學(xué), 2010: 25-34.
[5] BAO Y, FANG H, ZHANG J. TopicMF: simultaneously exploiting ratings and reviews for recommendation [C]∥Proceedings of the 28th AAAI Conference on Artificial Intelligence. New York, USA: ACM, 2014: 2-8.
[6] KOREN Y. Factor in the neighbors: Scalable and accurate collaborative filtering [J]. ACM Transactions on Knowledge Discovery from Data, 2010, 4(1): 1-24.
[7] GUO G, ZHANG J, YORKE-SMITH N. TrustSVD: Collaborative filtering with both the explicit and implicit influence of user trust and of item ratings [C]∥Proceedings of the 29th AAAI Conference on Artificial Intelligence. New York, USA: ACM, 2015: 123-129.
[8] JAMALI M, ESTER M. A matrix factorization technique with trust propagation for recommendation in social networks [C]∥ACM Conference on Recommender Systems. New York, USA: ACM, 2010: 135-142.
[9] MANZATO M G. gSVD++: supporting implicit feedback on recommender systems with metadata awareness [C]∥ACM Symposium on Applied Computing. New York, USA: ACM, 2013: 908-913.
[10] MANZATO M G. Discovering latent factors from movies genres for enhanced recommendation [C]∥Proceedings of the 6th ACM Conference on Recommender Systems. New York, USA: ACM, 2012: 249-252.
[11] QIN J, CAO L, PENG H. Collaborative filtering recommendation algorithm based on weighted item category [C]∥Control and Decision Conference. Piscataway, NJ, USA: IEEE, 2016: 2782-2786.
[12] YU Y, WANG C, WANG H, et al. Attributes coupling based matrix factorization for item recommendation [J]. Applied Intelligence, 2016, 46(3): 1-13.
[13] 項(xiàng)亮. 推薦系統(tǒng)實(shí)踐 [M]. 北京: 人民郵電出版社, 2012: 186-195.
[14] HARPER F M, KONSTAN J A. The MovieLens datasets: history and context [J]. ACM Transactions on Interactive Intelligent Systems, 2016, 5(4): 19.
[15] CARAGEA C, SILVESCU A, MITRA P, et al. Can’t see the forest for the trees?: a citation recommendation system [C]∥Proceedings of the 13th ACM/IEEE-CS Joint Conference on Digital Libraries. New York, USA: ACM, 2013: 111-114.
[16] WINLAW M, HYNES M B, CATERINI A, et al. Algorithmic acceleration of parallel ALS for collaborative filtering: speeding up distributed big data recommendation in spark [C]∥21st IEEE International Conference on Parallel and Distributed Systems. Piscataway, NJ, USA: IEEE, 2015: 682-691.