日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ALS算法讲解

發(fā)布時(shí)間:2024/1/17 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ALS算法讲解 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Kendall秩相關(guān)系數(shù)(Kendall rank correlation coefficient)

對(duì)于秩變量對(duì):

?

?

?

?

注:Sir Maurice George Kendall,1907~1983,英國統(tǒng)計(jì)學(xué)家。這個(gè)人職業(yè)生涯的大部分時(shí)間都是一個(gè)公務(wù)員,二戰(zhàn)期間出任英國船運(yùn)協(xié)會(huì)副總經(jīng)理。1949年以后擔(dān)任倫敦大學(xué)教授。

參見:

https://en.wikipedia.org/wiki/Kendall_rank_correlation_coefficient

Tanimoto系數(shù)

?

?

該系數(shù)由Taffee T. Tanimoto于1960年提出。Tanimoto生平不詳,從名字來看,應(yīng)該是個(gè)日本人。在其他領(lǐng)域,它還有另一個(gè)名字Jaccard similarity coefficient。(兩者的系數(shù)公式一致,但距離公式略有差異。)

注:Paul Jaccard,1868~1944,蘇黎世聯(lián)邦理工學(xué)院(ETH Zurich)博士,蘇黎世聯(lián)邦理工學(xué)院植物學(xué)教授。ETH Zurich可是出了24個(gè)諾貝爾獎(jiǎng)得主的。

參見:

https://en.wikipedia.org/wiki/Jaccard_index

ALS算法原理

http://www.cnblogs.com/luchen927/archive/2012/02/01/2325360.html

上面的網(wǎng)頁概括了ALS算法出現(xiàn)之前的協(xié)同過濾算法的概況。

ALS算法是2008年以來,用的比較多的協(xié)同過濾算法。它已經(jīng)集成到Spark的Mllib庫中,使用起來比較方便。

從協(xié)同過濾的分類來說,ALS算法屬于User-Item CF,也叫做混合CF。它同時(shí)考慮了User和Item兩個(gè)方面。

用戶和商品的關(guān)系,可以抽象為如下的三元組:<User,Item,Rating>。其中,Rating是用戶對(duì)商品的評(píng)分,表征用戶對(duì)該商品的喜好程度。

假設(shè)我們有一批用戶數(shù)據(jù),其中包含m個(gè)User和n個(gè)Item,則我們定義Rating矩陣,其中的元素表示第u個(gè)User對(duì)第i個(gè)Item的評(píng)分。

在實(shí)際使用中,由于n和m的數(shù)量都十分巨大,因此R矩陣的規(guī)模很容易就會(huì)突破1億項(xiàng)。這時(shí)候,傳統(tǒng)的矩陣分解方法對(duì)于這么大的數(shù)據(jù)量已經(jīng)是很難處理了。

另一方面,一個(gè)用戶也不可能給所有商品評(píng)分,因此,R矩陣注定是個(gè)稀疏矩陣。矩陣中所缺失的評(píng)分,又叫做missing item。

針對(duì)這樣的特點(diǎn),我們可以假設(shè)用戶和商品之間存在若干關(guān)聯(lián)維度(比如用戶年齡、性別、受教育程度和商品的外觀、價(jià)格等),我們只需要將R矩陣投射到這些維度上即可。這個(gè)投射的數(shù)學(xué)表示是:

?

?

這里的表明這個(gè)投射只是一個(gè)近似的空間變換。

不懂這個(gè)空間變換的同學(xué),可參見《機(jī)器學(xué)習(xí)(十二)》中的“奇異值分解”的內(nèi)容,或是本節(jié)中的“主成分分析”的內(nèi)容。

一般情況下,k的值遠(yuǎn)小于n和m的值,從而達(dá)到了數(shù)據(jù)降維的目的。

幸運(yùn)的是,我們并不需要顯式的定義這些關(guān)聯(lián)維度,而只需要假定它們存在即可,因此這里的關(guān)聯(lián)維度又被稱為L(zhǎng)atent factor。k的典型取值一般是20~200。

這種方法被稱為概率矩陣分解算法(probabilistic matrix factorization,PMF)。ALS算法是PMF在數(shù)值計(jì)算方面的應(yīng)用。

為了使低秩矩陣X和Y盡可能地逼近R,需要最小化下面的平方誤差損失函數(shù):

?

?

考慮到矩陣的穩(wěn)定性問題,使用Tikhonov regularization,則上式變?yōu)?#xff1a;

?

?

優(yōu)化上式,得到訓(xùn)練結(jié)果矩陣。預(yù)測(cè)時(shí),將User和Item代入,即可得到相應(yīng)的評(píng)分預(yù)測(cè)值。

同時(shí),矩陣X和Y,還可以用于比較不同的User(或Item)之間的相似度,如下圖所示:

?
ALS算法的缺點(diǎn)在于:

1.它是一個(gè)離線算法。

2.無法準(zhǔn)確評(píng)估新加入的用戶或商品。這個(gè)問題也被稱為Cold Start問題。

ALS算法優(yōu)化過程的推導(dǎo)

公式2的直接優(yōu)化是很困難的,因?yàn)閄和Y的二元導(dǎo)數(shù)并不容易計(jì)算,這時(shí)可以使用類似坐標(biāo)下降法的算法,固定其他維度,而只優(yōu)化其中一個(gè)維度。

對(duì)求導(dǎo),可得:

?

?

令導(dǎo)數(shù)為0,可得:

?

?

同理,對(duì)求導(dǎo),由于X和Y是對(duì)稱的,因此可得類似的結(jié)論:

?

?

因此整個(gè)優(yōu)化迭代的過程為:

1.隨機(jī)生成X、Y。(相當(dāng)于對(duì)迭代算法給出一個(gè)初始解。)?
Repeat until convergence {?
2.固定Y,使用公式3更新。?
3.固定X,使用公式4更新。?
}

一般使用RMSE(root-mean-square error)評(píng)估誤差是否收斂,具體到這里就是:

?

?

其中,N為三元組<User,Item,Rating>的個(gè)數(shù)。當(dāng)RMSE值變化很小時(shí),就可以認(rèn)為結(jié)果已經(jīng)收斂。

算法復(fù)雜度:

1.求:

2.求:

可以看出當(dāng)k一定的時(shí)候,這個(gè)算法的復(fù)雜度是線性的。

因?yàn)檫@個(gè)迭代過程,交替優(yōu)化X和Y,因此又被稱作交替最小二乘算法(Alternating Least Squares,ALS)。

隱式反饋

用戶給商品評(píng)分是個(gè)非常簡(jiǎn)單粗暴的用戶行為。在實(shí)際的電商網(wǎng)站中,還有大量的用戶行為,同樣能夠間接反映用戶的喜好,比如用戶的購買記錄、搜索關(guān)鍵字,甚至是鼠標(biāo)的移動(dòng)。我們將這些間接用戶行為稱之為隱式反饋(implicit feedback),以區(qū)別于評(píng)分這樣的顯式反饋(explicit feedback)。

隱式反饋有以下幾個(gè)特點(diǎn):

1.沒有負(fù)面反饋(negative feedback)。用戶一般會(huì)直接忽略不喜歡的商品,而不是給予負(fù)面評(píng)價(jià)。

2.隱式反饋包含大量噪聲。比如,電視機(jī)在某一時(shí)間播放某一節(jié)目,然而用戶已經(jīng)睡著了,或者忘了換臺(tái)。

3.顯式反饋表現(xiàn)的是用戶的喜好(preference),而隱式反饋表現(xiàn)的是用戶的信任(confidence)。比如用戶最喜歡的一般是電影,但觀看時(shí)間最長(zhǎng)的卻是連續(xù)劇。大米購買的比較頻繁,量也大,但未必是用戶最想吃的食物。

4.隱式反饋非常難以量化。

ALS-WR

針對(duì)隱式反饋,有ALS-WR算法(ALS with Weighted--Regularization)。

首先將用戶反饋分類:

?

?

但是喜好是有程度差異的,因此需要定義程度系數(shù):

?

?

這里的表示原始量化值,比如觀看電影的時(shí)間;

這個(gè)公式里的1表示最低信任度,表示根據(jù)用戶行為所增加的信任度。

最終,損失函數(shù)變?yōu)?#xff1a;

?

?

除此之外,我們還可以使用指數(shù)函數(shù)來定義:

?

?

ALS-WR沒有考慮到時(shí)序行為的影響,時(shí)序行為相關(guān)的內(nèi)容,可參見:

http://www.jos.org.cn/1000-9825/4478.htm

參考

參考論文:

《Large-scale Parallel Collaborative Filtering forthe Netflix Prize》

《Collaborative Filtering for Implicit Feedback Datasets》

《Matrix Factorization Techniques for Recommender Systems》

其他參考:

http://www.jos.org.cn/html/2014/9/4648.htm

http://www.fuqingchuan.com/2015/03/812.html

http://www.docin.com/p-714582034.html

http://www.tuicool.com/articles/fANvieZ

http://www.68idc.cn/help/buildlang/ask/20150727462819.html

總結(jié)

以上是生活随笔為你收集整理的ALS算法讲解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。