国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開(kāi)通VIP
推薦系統(tǒng)之矩陣分解家族

摘要

本文主要圍繞推薦系統(tǒng)中經(jīng)典的矩陣分解技術(shù)展開(kāi)討論,先闡述推薦系統(tǒng)的必要性以及主流分類,隨后介紹推薦系統(tǒng)的兩大場(chǎng)景以及矩陣分解原理,最后開(kāi)始介紹矩陣分解大家族,從最經(jīng)典的FunkSVD開(kāi)始講起,隨后介紹一些對(duì)于它的經(jīng)典擴(kuò)展(模型方面和數(shù)據(jù)層面),或者從另一個(gè)概率角度來(lái)解釋矩陣分解,或者提出一些其他的經(jīng)典假設(shè),以期給讀者一個(gè)更加清晰的認(rèn)識(shí),即矩陣分解作為推薦系統(tǒng)的經(jīng)典,可以在此基礎(chǔ)上延伸出許多經(jīng)典模型,只要讀者能夠?qū)ζ渥銐蛄私猓嘈庞谐蝗?,你也可以?chuàng)造出屬于自己滴經(jīng)典!

前言

隨著大數(shù)據(jù)時(shí)代的飛速發(fā)展,信息逐漸呈現(xiàn)出過(guò)載狀態(tài),推薦系統(tǒng)(Recommender System)作為近年來(lái)實(shí)現(xiàn)信息生產(chǎn)者與消費(fèi)者之間利益均衡化的有效手段之一,越來(lái)越發(fā)揮著舉足輕重的作用。再者這是一個(gè)張揚(yáng)個(gè)性的時(shí)代,人們對(duì)于個(gè)性化的追求、千人千面的向往愈來(lái)愈突出,誰(shuí)能捕捉住用戶的個(gè)性化需求,誰(shuí)就能在這個(gè)時(shí)代站住腳跟?,F(xiàn)在人們不再單單依靠隨大流式的熱門推薦,而是基于每個(gè)用戶的行為記錄來(lái)細(xì)粒度的個(gè)性化的生成推薦內(nèi)容。像今日頭條、抖音這樣的APP之所以如此之火,讓人們欲罷不能,無(wú)非是抓住了用戶想看什么的心理,那么如何才能抓住用戶的心理,那就需要推薦系統(tǒng)的幫助了。

眾所周知,推薦系統(tǒng)中最為主流與經(jīng)典的技術(shù)之一是協(xié)同過(guò)濾技術(shù)(Collaborative Filtering),它是基于這樣的假設(shè):用戶如果在過(guò)去對(duì)某些項(xiàng)目產(chǎn)生過(guò)興趣,那么將來(lái)他很可能依然對(duì)其保持熱忱。其中協(xié)同過(guò)濾技術(shù)又可根據(jù)是否采用了機(jī)器學(xué)習(xí)思想建模的不同劃分為基于內(nèi)存的協(xié)同過(guò)濾(Memory-based CF)與基于模型的協(xié)同過(guò)濾技術(shù)(Model-based CF)。其中基于模型的協(xié)同過(guò)濾技術(shù)中尤為矩陣分解(Matrix Factorization)技術(shù)最為普遍和流行,因?yàn)樗目蓴U(kuò)展性極好并且易于實(shí)現(xiàn),因此接下來(lái)我們將梳理下推薦系統(tǒng)中出現(xiàn)過(guò)的經(jīng)典的矩陣分解方法。

矩陣分解家族

在介紹矩陣分解大家族之前,先讓我們明確下推薦系統(tǒng)的場(chǎng)景以及矩陣分解的原理。對(duì)于推薦系統(tǒng)來(lái)說(shuō)存在兩大場(chǎng)景即評(píng)分預(yù)測(cè)(rating prediction)與Top-N推薦(item recommendation,item ranking)。評(píng)分預(yù)測(cè)場(chǎng)景主要用于評(píng)價(jià)網(wǎng)站,比如用戶給自己看過(guò)的電影評(píng)多少分(MovieLens),或者用戶給自己看過(guò)的書籍評(píng)價(jià)多少分(Douban)。其中矩陣分解技術(shù)主要應(yīng)用于該場(chǎng)景。Top-N推薦場(chǎng)景主要用于購(gòu)物網(wǎng)站或者一般拿不到顯式評(píng)分信息的網(wǎng)站,即通過(guò)用戶的隱式反饋信息來(lái)給用戶推薦一個(gè)可能感興趣的列表以供其參考。其中該場(chǎng)景為排序任務(wù),因此需要排序模型來(lái)對(duì)其建模。因此,我們接下來(lái)更關(guān)心評(píng)分預(yù)測(cè)任務(wù)。

對(duì)于評(píng)分預(yù)測(cè)任務(wù)來(lái)說(shuō),我們通常將用戶和項(xiàng)目(以電影為例)表示為二維矩陣的形式,其中矩陣中的某個(gè)元素表示對(duì)應(yīng)用戶對(duì)于相應(yīng)項(xiàng)目的評(píng)分,1-5分表示喜歡的程度逐漸增加,?表示沒(méi)有過(guò)評(píng)分記錄。推薦系統(tǒng)評(píng)分預(yù)測(cè)任務(wù)可看做是一個(gè)矩陣補(bǔ)全(Matrix Completion)的任務(wù),即基于矩陣中已有的數(shù)據(jù)(observed data)來(lái)填補(bǔ)矩陣中沒(méi)有產(chǎn)生過(guò)記錄的元素(unobserved data)。值得注意的是,這個(gè)矩陣是非常稀疏的(Sparse),稀疏度一般能達(dá)到90%以上,因此如何根據(jù)極少的觀測(cè)數(shù)據(jù)來(lái)較準(zhǔn)確的預(yù)測(cè)未觀測(cè)數(shù)據(jù)一直以來(lái)都是推薦系統(tǒng)領(lǐng)域的關(guān)鍵問(wèn)題。

其中,推薦系統(tǒng)的評(píng)分預(yù)測(cè)場(chǎng)景可看做是一個(gè)矩陣補(bǔ)全的游戲,矩陣補(bǔ)全是推薦系統(tǒng)的任務(wù),矩陣分解是其達(dá)到目的的手段。因此,矩陣分解是為了更好的完成矩陣補(bǔ)全任務(wù)(欲其補(bǔ)全,先其分解之)。之所以可以利用矩陣分解來(lái)完成矩陣補(bǔ)全的操作,那是因?yàn)榛谶@樣的假設(shè):假設(shè)UI矩陣是低秩的,即在大千世界中,總會(huì)存在相似的人或物,即物以類聚,人以群分,然后我們可以利用兩個(gè)小矩陣相乘來(lái)還原它。

1、PureSVD

當(dāng)然提到矩陣分解,人們首先想到的是數(shù)學(xué)中經(jīng)典的SVD(奇異值)分解,在這我命名為PureSVD(傳統(tǒng)并經(jīng)典著),直接上公式:

當(dāng)然SVD分解的形式為3個(gè)矩陣相乘,左右兩個(gè)矩陣分別表示用戶/項(xiàng)目隱含因子矩陣,中間矩陣為奇異值矩陣并且是對(duì)角矩陣,每個(gè)元素滿足非負(fù)性,并且逐漸減小。因此我們可以只需要前 

 個(gè)因子來(lái)表示它。

如果想運(yùn)用SVD分解的話,有一個(gè)前提是要求矩陣是稠密的,即矩陣?yán)锏脑匾强?,否則就不能運(yùn)用SVD分解。很顯然我們的任務(wù)還不能用SVD,所以一般的做法是先用均值或者其他統(tǒng)計(jì)學(xué)方法來(lái)填充矩陣,然后再運(yùn)用SVD分解降維。

2、FunkSVD

sifter.org/~simon/journ

剛才提到的PureSVD首先需要填充矩陣,然后再進(jìn)行分解降維,同時(shí)由于需要求逆操作(復(fù)雜度O(n^3)),存在計(jì)算復(fù)雜度高的問(wèn)題,所以后來(lái)Simon Funk提出了FunkSVD的方法,它不在將矩陣分解為3個(gè)矩陣,而是分解為2個(gè)低秩的用戶項(xiàng)目矩陣,同時(shí)降低了計(jì)算復(fù)雜度:

它借鑒線性回歸的思想,通過(guò)最小化觀察數(shù)據(jù)的平方來(lái)尋求最優(yōu)的用戶和項(xiàng)目的隱含向量表示。同時(shí)為了避免過(guò)度擬合(Overfitting)觀測(cè)數(shù)據(jù),又提出了帶有L2正則項(xiàng)的FunkSVD:

以上兩種最優(yōu)化函數(shù)都可以通過(guò)梯度下降或者隨機(jī)梯度下降法來(lái)尋求最優(yōu)解。

3、PMF

Salakhutdinov et al. Probabilistic matrix factorization. NIPS(2008): 1257-1264.

PMF是對(duì)于FunkSVD的概率解釋版本,它假設(shè)評(píng)分矩陣中的元素 

 是由用戶潛在偏好向量 
 和物品潛在屬性向量 
 的內(nèi)積決定的,并且服從均值為 
 ,方差為 
 的正態(tài)分布:

則觀測(cè)到的評(píng)分矩陣條件概率為:

同時(shí),假設(shè)用戶偏好向量與物品偏好向量服從于均值都為0,方差分別為 

 , 
 的正態(tài)分布:

根據(jù)貝葉斯公式,可以得出潛變量U,V的后驗(yàn)概率為:

接著,等式兩邊取對(duì)數(shù) 

 后得到:

最后,經(jīng)過(guò)推導(dǎo),我們可以發(fā)現(xiàn)PMF確實(shí)是FunkSVD的概率解釋版本,它兩個(gè)的形式一樣一樣的。

注:為了方便讀者理解,在此舉例推導(dǎo)中間項(xiàng) 

 ,將此項(xiàng)展開(kāi),帶入多維正態(tài)分布即可得到 
 。推導(dǎo)如下:

4、BiasSVD

Koren et al. Matrix factorization techniques for recommender systems.Computer 42.8 (2009).

在FunkSVD提出來(lái)之后,陸續(xù)又提出了許多變形版本,其中相對(duì)流行的方法是BiasSVD,它是基于這樣的假設(shè):某些用戶會(huì)自帶一些特質(zhì),比如天生愿意給別人好評(píng),心慈手軟,比較好說(shuō)話,有的人就比較苛刻,總是評(píng)分不超過(guò)3分(5分滿分);同時(shí)也有一些這樣的項(xiàng)目,一被生產(chǎn)便決定了它的地位,有的比較受人們歡迎,有的則被人嫌棄,這也正是提出用戶和項(xiàng)目偏置項(xiàng)的原因;項(xiàng)亮給出的解釋是:對(duì)于一個(gè)評(píng)分系統(tǒng)有些固有屬性和用戶物品無(wú)關(guān),而用戶也有些屬性和物品無(wú)關(guān),物品也有些屬性與用戶無(wú)關(guān),具體的預(yù)測(cè)公式如下:

其中, 

 為整個(gè)網(wǎng)站的平均評(píng)分,是整個(gè)網(wǎng)站的基調(diào); 
 為用戶的評(píng)分偏置,代表某個(gè)用戶的評(píng)分基調(diào), 
 為項(xiàng)目的被評(píng)分偏置,代表某個(gè)項(xiàng)目的屬性基調(diào)。

5、SVD++

Koren Y. Factor in the neighbors: Scalable and accurate collaborative filtering[J]. ACM Transactions on Knowledge Discovery from Data (TKDD), 2010, 4(1): 1.

在用戶除了顯式評(píng)分外,隱式反饋信息同樣有助于用戶的偏好建模,因此隨后提出了SVD++。它是基于這樣的假設(shè):用戶除了對(duì)于項(xiàng)目的顯式歷史評(píng)分記錄外,瀏覽記錄或者收藏列表等隱反饋信息同樣可以從側(cè)面一定程度上反映用戶的偏好,比如用戶對(duì)某個(gè)項(xiàng)目進(jìn)行了收藏,可以從側(cè)面反映他對(duì)于這個(gè)項(xiàng)目感興趣,具體反映到預(yù)測(cè)公式為:

其中 

 為用戶 
 所產(chǎn)生隱反饋行為的物品集合; 
 為隱藏的對(duì)于項(xiàng)目 
 的個(gè)人喜好偏置,是一個(gè)我們所要學(xué)習(xí)的參數(shù);至于 
 是一個(gè)經(jīng)驗(yàn)公式。

6、timeSVD

Koren et al. Collaborative filtering with temporal dynamics. Communications of the ACM 53.4 (2010): 89-97.

它是基于這樣的假設(shè):用戶的興趣或者偏好不是一成不變的,而是隨著時(shí)間而動(dòng)態(tài)演化。于是提出了timeSVD,其中用戶的和物品的偏置隨著時(shí)間而變化,同時(shí)用戶的隱含因子也隨著時(shí)間而動(dòng)態(tài)改變,在此物品的隱含表示并未隨時(shí)間而變化(假設(shè)物品的屬性不會(huì)隨著時(shí)間而改變)。

其中, 

 為時(shí)間因子,表示不同的時(shí)間狀態(tài)。

7、NMF

Lee et al. Learning the parts of objects by non-negative matrix factorization. Nature 401.6755 (1999): 788.

這是一篇發(fā)表在Nature上的經(jīng)典論文,谷歌學(xué)術(shù)顯示引用將近9k,它提出了一個(gè)假設(shè):分解出來(lái)的小矩陣應(yīng)該滿足非負(fù)約束。

因?yàn)樵诖蟛糠址椒ㄖ?,原始矩?nbsp;

 被近似分解為兩個(gè)低秩矩陣 
 相乘的形式,這些方法的共同之處是,即使原始矩陣的元素都是非負(fù)的,也不能保證分解出的小矩陣都為非負(fù),這就導(dǎo)致了推薦系統(tǒng)中經(jīng)典的矩陣分解方法可以達(dá)到很好的預(yù)測(cè)性能,但不能做出像User-based CF那樣符合人們習(xí)慣的推薦解釋(即跟你品味相似的人也購(gòu)買了此商品)。在數(shù)學(xué)意義上,分解出的結(jié)果是正是負(fù)都沒(méi)關(guān)系,只要保證還原后的矩陣元素非負(fù)并且誤差盡可能小即可,但負(fù)值元素往往在現(xiàn)實(shí)世界中是沒(méi)有任何意義的。比如圖像數(shù)據(jù)中不可能存在是負(fù)數(shù)的像素值,因?yàn)槿≈翟?~255之間;在統(tǒng)計(jì)文檔的詞頻時(shí),負(fù)值也是無(wú)法進(jìn)行解釋的。因此提出帶有非負(fù)約束的矩陣分解是對(duì)于傳統(tǒng)的矩陣分解無(wú)法進(jìn)行科學(xué)解釋做出的一個(gè)嘗試。它的公式如下:

其中, 

 , 
 兩個(gè)矩陣中的元素滿足非負(fù)約束。

8、WMF

Pan et al. One-class collaborative filtering. ICDM, 2008.
Hu et al. Collaborative filtering for implicit feedback datasets. ICDM, 2008.

對(duì)于矩陣分解來(lái)說(shuō),我們一般是處理的推薦系統(tǒng)中的評(píng)分預(yù)測(cè)任務(wù),但同樣矩陣分解也可以用來(lái)進(jìn)行Top-N的推薦,即根據(jù)隱式信息來(lái)預(yù)測(cè)用戶是否點(diǎn)擊某項(xiàng)目。你可以把他看做是二分類問(wèn)題,即點(diǎn)或者不點(diǎn)。但這不是普通的二分類問(wèn)題,因?yàn)樵谀P陀?xùn)練的過(guò)程中負(fù)樣本并非都為真正的負(fù)樣本,可能是用戶根本沒(méi)見(jiàn)過(guò)該項(xiàng)目,何來(lái)喜不喜歡,沒(méi)準(zhǔn)他看到后喜歡呢,即正樣本告訴我們作者喜歡的信息,但負(fù)樣本并不能告訴我們?cè)撚脩舨幌矚g。由于只存在正樣本,所以我們把只有正反饋的問(wèn)題定義為one-class問(wèn)題,即單類問(wèn)題。對(duì)于單類問(wèn)題,該作者提出了兩種解決策略,一種是加權(quán)的矩陣分解,另一種是負(fù)采樣技術(shù)。雖然只是加了一下權(quán)重,看起來(lái)比較naive,但在于當(dāng)時(shí)的研究背景下,這一小步其實(shí)是推薦系統(tǒng)中的一大步。

對(duì)于單類問(wèn)題的研究一直沒(méi)有停止過(guò),雖然負(fù)采樣技術(shù)是啟發(fā)式的,即不用通過(guò)數(shù)據(jù)建模的方式來(lái)進(jìn)行預(yù)測(cè),但效果還是很好用的。最近幾年人們提出了基于模型的方法來(lái)處理這種單類問(wèn)題,即從缺失數(shù)據(jù)中來(lái)進(jìn)行建模,具體可參見(jiàn)這兩篇論文【Hernández-Lobato et al 2014,Liang et al 2016】。

9、LLORMA

Lee et al. Local low-rank matrix approximation.ICML. 2013.

經(jīng)典的矩陣分解模型是假設(shè)整個(gè)用戶-項(xiàng)目矩陣(即UI矩陣)滿足低秩假設(shè)(即全局低秩假設(shè)),即在整個(gè)系統(tǒng)當(dāng)中,用戶和項(xiàng)目總是滿足存在相似的某種模式,即物以類聚,人以群分。

這種假設(shè)固然有道理,但在當(dāng)今大數(shù)據(jù)時(shí)代下,全局意義上的低秩假設(shè)似乎太強(qiáng)了,尤其是在數(shù)據(jù)量巨大的情況下(即用戶數(shù)與項(xiàng)目數(shù)都很多的系統(tǒng)當(dāng)中),因此該論文推翻了全局意義上經(jīng)典的全局低秩假設(shè),它認(rèn)為大千世界,林林總總,我們應(yīng)該去尋找局部的低秩假設(shè)(即局部低秩假設(shè))。首先根據(jù)某種相似測(cè)度來(lái)將整個(gè)大矩陣分為若干個(gè)小矩陣,每個(gè)小矩陣當(dāng)中滿足某種相似度閾值,然后再在局部的小矩陣當(dāng)中做低秩假設(shè)。這樣,全局的大矩陣可以由多個(gè)局部的小矩陣來(lái)加權(quán)組合構(gòu)成,具體可參見(jiàn)該論文。

10、SRui

Ma Hao. An experimental study on implicit social recommendation. SIGIR, 2013.

雖然經(jīng)典的矩陣分解方法已經(jīng)可以到達(dá)比較好的預(yù)測(cè)性能了,但它固有的弊病仍然是躲不開(kāi)的,即數(shù)據(jù)稀疏與冷啟動(dòng)問(wèn)題。為了緩解數(shù)據(jù)稀疏我們可以引入豐富的社交信息。即如果兩個(gè)用戶是朋友關(guān)系,那么我們假設(shè)他們有相同的偏好,同時(shí)他們學(xué)得的用戶隱表示在向量空間應(yīng)該有相近的距離。用戶維度如此,同理,項(xiàng)目維度亦可以利用此思路來(lái)約束項(xiàng)目隱表示。即如果兩個(gè)項(xiàng)目之間的關(guān)系較近,那么在低維向量空間中的距離同樣也應(yīng)該較小。這里的項(xiàng)目關(guān)系是從UI矩陣中抽取出來(lái)的,論文中成為項(xiàng)目隱社交關(guān)系(其實(shí)項(xiàng)目維度跟社交沒(méi)啥關(guān)系)。具體公式如下:

其中, 

 表示用戶 
 和用戶 
 的社交相似度, 
 表示項(xiàng)目 
 與項(xiàng)目 
 的隱社交相似度,在用戶維度和項(xiàng)目維度分別增加了平滑項(xiàng)約束,使得學(xué)得的隱特征表示更加符合現(xiàn)實(shí)意義。

11、ConvMF

Kim et al. Convolutional matrix factorization for document context-aware recommendation. RecSys 2016.

當(dāng)然矩陣分解的優(yōu)點(diǎn)之一是可擴(kuò)展性好,這當(dāng)然不是吹的,比如16年的這篇文章就是將矩陣分解(MF)與圖像處理領(lǐng)域很火的卷積神經(jīng)網(wǎng)絡(luò)(CNN)做了完美結(jié)合。

矩陣分解作為協(xié)同過(guò)濾模型中經(jīng)典的方法,性能當(dāng)然沒(méi)的說(shuō)。但它存在的數(shù)據(jù)稀疏與冷啟動(dòng)問(wèn)題一直以來(lái)都是它的痛點(diǎn),因此結(jié)合外部豐富的信息成為了緩解上述問(wèn)題的有效途徑。其中文本數(shù)據(jù)作為web中主流的數(shù)據(jù)形式成為了首選,并且對(duì)于文本的處理,大部分還是基于one-hot的表示,因此無(wú)法捕捉文檔中上下文的關(guān)鍵信息,于是作者將兩者做了結(jié)合,具體細(xì)節(jié)請(qǐng)參見(jiàn)論文,該公式如下:

其中,在使得用戶隱向量與項(xiàng)目隱向量做內(nèi)積盡可能逼近真實(shí)評(píng)分的同時(shí),對(duì)項(xiàng)目隱向量做了額外約束,即讓項(xiàng)目隱向量跟CNN學(xué)得的文檔特性盡可能的接近。

12、NCRPD-MF

Hu et al. Your neighbors affect your ratings: on geographical neighborhood influence to rating prediction. SIGIR 2014.

剛才說(shuō)到,MF的可擴(kuò)展性好,一方面是可以和主流模型做無(wú)縫集成,另一方面是可以和多種信息源做特征融合,比如14年的這篇文章,它是融合了文本評(píng)論信息,地理鄰居信息,項(xiàng)目類別信息以及流行度等信息,具體預(yù)測(cè)公式如下:

其中, 

 為文本特征的低維向量表示, 
 為地理鄰居的低維向量表示, 
 為項(xiàng)目類別的低維特征表示。

總結(jié)

看,我說(shuō)的沒(méi)錯(cuò)吧,矩陣分解大法是真滴好啊,可以伸縮自如并且可以集成多種經(jīng)典模型,以及融合各種附加信息,就醬(?ω?),祝君安好。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
推薦體系之協(xié)同過(guò)濾概述
協(xié)同過(guò)濾進(jìn)階之SVD家族
推薦算法之ALS
推薦算法設(shè)計(jì)綜述
亞馬遜商城如何知道用戶愛(ài)好?揭秘Keras推薦系統(tǒng)
Spark機(jī)器學(xué)習(xí)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服