產(chǎn)品數(shù)學(xué)課|如何理解個(gè)性化推薦里的數(shù)學(xué)原理

前言

6月份是高考以及畢業(yè)的月份,這種時(shí)候特別適合老人家懷舊。離開(kāi)課堂三年,課本上學(xué)的知識(shí)幾乎都還給了老師。

寫(xiě)這篇文章即是加深自己對(duì)個(gè)性化推薦的理解,也想趁著高考時(shí)回顧下高(中)數(shù)(學(xué))。


一、什么是個(gè)性化推薦?

個(gè)性化推薦,是系統(tǒng)的智能推薦。為什么豆瓣的私人FM特別符合我們的音樂(lè)品味,又為什么電商應(yīng)用總是知道我們想買(mǎi)什么?

個(gè)性化推薦的原理使用較多的是這3種方式:基于內(nèi)容的推薦、基于用戶的協(xié)同過(guò)濾、基于物品的協(xié)同過(guò)濾

這3種推薦方式的核心則是計(jì)算相似度。


二、這三種推薦方式是什么?

介紹相似度的計(jì)算之前,先為大家簡(jiǎn)單介紹一下這三種推薦方式。

2-1、基于內(nèi)容的推薦(Content-Based Recommendation)

在上表的對(duì)比中,song 1與song 2,在風(fēng)格、發(fā)行年份、歌手地區(qū)及內(nèi)容上是相近的或者是相同的,這兩首歌的相似度更高。

song 3僅有發(fā)行年份與前面兩首歌匹配,其他則完全不匹配,song 3與前兩者是完全不相似的。

基于內(nèi)容的推薦,本質(zhì)是“你喜歡某一事物,給你推薦近似的事物。”

你喜歡song 1,系統(tǒng)為你推薦song2。

2-2、基于用戶的協(xié)同過(guò)濾(User-based CF)

基于用戶的協(xié)同過(guò)濾,通俗的解釋是:和你相似的用戶還買(mǎi)了什么?

我們會(huì)先找到相似的用戶,然后找到此類用戶喜歡的且目標(biāo)用戶未接觸的物品,將其推薦給目標(biāo)用戶。

2-2的表格中,我們先找到相似的User 1和User 2(下文簡(jiǎn)稱U1、U2),他們都購(gòu)買(mǎi)了商品A、C且未購(gòu)買(mǎi)商品B。

然后將U1買(mǎi)過(guò)的且U2沒(méi)買(mǎi)過(guò)的商品D,推薦給U2。

U3則僅購(gòu)買(mǎi)商品B,其他的都未購(gòu)買(mǎi),推薦系統(tǒng)會(huì)認(rèn)為他與U1、U2沒(méi)有什么關(guān)聯(lián),所以我們不會(huì)對(duì)U3推薦U1和U2購(gòu)買(mǎi)的商品。

2-3、基于物品的協(xié)同過(guò)濾(Item-Based CF)

基于物品的協(xié)同過(guò)濾,以物品為核心,它是對(duì)基于用戶的協(xié)同過(guò)濾的一種改良。理解為:“買(mǎi)了這款商品的用戶,還買(mǎi)過(guò)什么?!?/p>

前陣子我購(gòu)買(mǎi)了《推薦系統(tǒng)實(shí)踐》一書(shū),在上圖中,京東給我推薦了產(chǎn)品相關(guān)書(shū)籍《幕后產(chǎn)品》以及數(shù)據(jù)相關(guān)書(shū)籍《商業(yè)智能數(shù)據(jù)分析》。

當(dāng)然萬(wàn)一我是半個(gè)研發(fā)呢,所以給我又推薦了一本《深入淺出Prometheus》。

2-4、三種推薦方式的區(qū)別

理解完這三種推薦方式,我們來(lái)看看他們之間的區(qū)別。

1)、基于物品的協(xié)同過(guò)濾與基于內(nèi)容的推薦

內(nèi)容和物品都是事物的一種,2者似乎都是在計(jì)算物品的相似性?看起來(lái)是相同的。

但實(shí)際上基于內(nèi)容的推薦,更傾向于兩件事物是接近的、相似的,與用戶的行為無(wú)關(guān)。而基于物品的協(xié)同過(guò)濾則與事物是否相似關(guān)系較小,更多與用戶行為有關(guān),是有順承關(guān)系的。

2)、基于物品的協(xié)同過(guò)濾與基于用戶的協(xié)同過(guò)濾

基于用戶的協(xié)同過(guò)濾,是先找相似的人,再找相似的人喜歡的物品。基于物品的協(xié)同過(guò)濾,則是找到和某個(gè)物品相關(guān)的物品。

當(dāng)物品數(shù)量、特征相對(duì)固定的情況下,更多采用基于物品的協(xié)同過(guò)濾。因?yàn)橄鄬?duì)穩(wěn)定一定程度上意味著不需要實(shí)時(shí)計(jì)算,通過(guò)離線的運(yùn)算,對(duì)服務(wù)器的壓力就很小了。

當(dāng)物品和用戶量都非常大,這樣會(huì)造成購(gòu)買(mǎi)的物品重疊性較低,我們很難才能找到相似的用戶,Item-Based CF就不適用了。

而在如內(nèi)容類媒體,微博、新聞網(wǎng)站等,物品(內(nèi)容)的數(shù)量、特征都在不斷的變化,去計(jì)算物品的相似度性能消耗反而更大了。而新聞媒體更傾向于群體的喜好,這個(gè)時(shí)候使用User-Based CF也更加的合適。

初步了解完這三種推薦方式,我們便回到它們的核心:相似度的計(jì)算。


三、相似度怎么計(jì)算

相似度常見(jiàn)的計(jì)算方式是余弦相似度、歐幾里德距離、Jaccard相關(guān)系數(shù)。

下文則是對(duì)余弦相似度及歐幾里德距離的理解。

數(shù)學(xué)課正式開(kāi)始(敲黑板)。

3-1、余弦相似度

最開(kāi)始我看到這個(gè)公式時(shí),有種《個(gè)性化推薦:看到公式就放棄》的感覺(jué)。可是作為一枚產(chǎn)品汪,我覺(jué)得,我還是要搶救一下。

于是我試著將公式拆解,

similarity:相似性;類似性。

cos(θ):在直角三角形中=領(lǐng)邊/斜邊;在空間中=空間中兩個(gè)向量夾角的余弦值。

連起來(lái)說(shuō),相似度=空間中兩個(gè)向量夾角的余弦值。

在線性代數(shù)上:“向量是多維空間中從原點(diǎn)出發(fā),具有大小及方向的有向線段?!?/b>

當(dāng)向量的夾角越小,方向則越接近。代表著內(nèi)容、用戶、物品的向量方向越接近,則他們?cè)较嗨啤?/b>

而根據(jù)圖3的公式計(jì)算,夾角越小,cos(θ)越趨近于1。所以前輩們將余弦值當(dāng)成量化相似度的手段,當(dāng)余弦值趨近于1,二者則是相似的,趨近-1的看做是不相似的。

可是,向量為什么能夠代表內(nèi)容,代表用戶呢?

向量代表著在N維空間中的方向,它的坐標(biāo)表示法是:α=(x,y),這個(gè)表示法是指向量α在x軸方向以及y軸方向的坐標(biāo)。不準(zhǔn)確但通俗的理解為:在x軸方向的趨同度以及y軸方向的趨同度。

換個(gè)說(shuō)法,不是向量,x軸和y軸。而是等于歌曲,發(fā)行年份和風(fēng)格近似度。

song2=(95%,1997),即song2這首歌發(fā)行年份在1997年,歌曲風(fēng)格與Brit-Pop的匹配度有95%。

理解了2維的向量,我想理解3維、多維會(huì)更加容易。

那么回到剛剛的問(wèn)題:“向量為什么能夠代表內(nèi)容,代表用戶呢?”

從剛剛的例子我們可以推導(dǎo)出,內(nèi)容或者用戶本質(zhì)上是在不同維度擁有相關(guān)性的坐標(biāo)

組成內(nèi)容、用戶的維度絕對(duì)不止于3維,當(dāng)維度越多,我們就會(huì)被量化的越徹底,相似度會(huì)被計(jì)算的越準(zhǔn)確。

在上文介紹余弦相似度的時(shí)候,一直在強(qiáng)調(diào)一個(gè)詞:方向。余弦相似度注重維度之間的差異,不注重?cái)?shù)值上的差異。這其實(shí)也是余弦相似度不足的地方。

表3中,User 1,給Blur樂(lè)隊(duì)和Oasis樂(lè)隊(duì)分別評(píng)了1顆、2顆星,而User 2則是評(píng)了4顆、5顆星。

將其在二維空間中表示,我們會(huì)發(fā)現(xiàn),代表User 1和User 2的夾角非常的小,用余弦相似度來(lái)計(jì)算則會(huì)發(fā)現(xiàn)余弦值等于0.97,這兩名用戶會(huì)是非常相似的,這真的太糟糕了。

而對(duì)于強(qiáng)調(diào)數(shù)值差異的事件相似度,我們要用什么方法來(lái)計(jì)算呢?

一種方法是,利用維度間均值是調(diào)整余弦的相似度,User 1,User 2對(duì)兩支樂(lè)隊(duì)評(píng)分的平均值是3。

我們將2名用戶的評(píng)分減去3,則會(huì)變成User 1(-2,-1),User 2(1,2),再次通過(guò)余弦相似度計(jì)算,得出-0.8,這個(gè)時(shí)候的差異值就非常大了。

另一種方法,則是利用歐幾里德距離。

3-2、歐幾里德距離

歐幾里德距離,它也叫歐式距離。上文我們提到的向量,也稱歐幾里德向量。

這個(gè)公式實(shí)際上是二維空間中兩點(diǎn)的距離,多維空間中向量的距離。距離越小,則差異越小,越接近。

由于我們習(xí)慣相似度與1進(jìn)行類比,越接近于1相似度越高。所以前輩們對(duì)歐式距離進(jìn)行了歸一化處理,通過(guò)將函數(shù)值加1,并取其倒數(shù)的方法來(lái)構(gòu)造歐幾里得相似度函數(shù)。

其中加1的目的則是為了避免分母為0。

將上文表3的值代入歐幾里德相似度函數(shù),SimDistance≈0.2,那我們也能夠得出正確的結(jié)論,User 1以及User 2并不相似。

歐氏距離體現(xiàn)事件數(shù)值的差異,如:GMV的增長(zhǎng)金額,用戶的消費(fèi)頻次等。類似GMV這類數(shù)字,很可能增速趨近,但是增長(zhǎng)的金額卻大不相同。

歐氏距離和余弦相似度分別適用于不同的數(shù)據(jù)分析模型,歐氏距離適用于數(shù)值差異敏感的推薦,而余弦相似度用于方向上的差異,更多用于興趣的相似度及差異。

最后

以上,是對(duì)個(gè)性化推薦一部分筆記,在個(gè)性化推薦落實(shí)到應(yīng)用層面,其實(shí)還有冷啟動(dòng)、過(guò)濾、加權(quán)以及融合等等。這方面有更專業(yè)的大佬已經(jīng)做了許多的總結(jié),就不多獻(xiàn)丑了。

希望這篇筆記能讓大家有所收獲。如有不正之處,歡迎大家指出以及交流。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容