0.前言
沃爾瑪超市的員工發(fā)現(xiàn)痴奏,到超市買(mǎi)紙尿褲的男人會(huì)順手買(mǎi)啤酒冰蘑。這就是經(jīng)典的【紙尿褲和啤酒】的故事,也是推薦系統(tǒng)比較簡(jiǎn)潔明了的解釋评汰。
在探討推薦算法原理之前纷捞,先說(shuō)一個(gè)概念:協(xié)同過(guò)濾(Collaborative Filtering)。
協(xié)同過(guò)濾一般是在海量的用戶(hù)中發(fā)掘出一小部分和你品位比較類(lèi)似的被去,在協(xié)同過(guò)濾中主儡,這些用戶(hù)成為鄰居,然后根據(jù)他們喜歡的其他東西組織成一個(gè)排序的目錄作為推薦給你惨缆。
為了方便了解糜值,舉個(gè)簡(jiǎn)單的例子。最近新上映了10部電影坯墨,你不知道看哪一部寂汇,問(wèn)你周?chē)娜耍磉叺娜酥心阌X(jué)得有少數(shù)幾個(gè)人跟你的觀影品味一致捣染,然后你會(huì)傾向于選擇觀看和你觀影品味一致的人所推薦的電影骄瓣,這個(gè)和你觀影品味一致的人,就成了你的“鄰居”耍攘。這就是協(xié)同過(guò)濾的核心思想榕栏。協(xié)同過(guò)濾要考慮到以下兩點(diǎn):
其一,如何確定一個(gè)用戶(hù)是不是和你有相似的品位蕾各?
其二扒磁,如何將“鄰居們”的喜好組織成一個(gè)排序的目錄?
1.收集用戶(hù)偏好
在經(jīng)濟(jì)學(xué)研究中示损,會(huì)涉及到“經(jīng)濟(jì)個(gè)體偏好和效用”渗磅,經(jīng)濟(jì)個(gè)體的偏好差異會(huì)影響個(gè)人資源的分配,以求達(dá)到最優(yōu)效用检访,但對(duì)經(jīng)濟(jì)個(gè)體的偏好如何收集卻沒(méi)有給出明確的答案始鱼。同理,在一個(gè)系統(tǒng)中脆贵,需要收集用戶(hù)的偏好医清,然后根據(jù)用戶(hù)的偏好計(jì)算相似度。一般可通用戶(hù)行為來(lái)判斷用戶(hù)偏好卖氨,下面是幾種常見(jiàn)的用戶(hù)行為:
評(píng)分:通過(guò)用戶(hù)對(duì)物品的評(píng)分会烙,可以精確的得到用戶(hù)的偏好负懦,如傳統(tǒng)的星級(jí)評(píng)分制。
投票:通過(guò)用戶(hù)對(duì)物品的投票柏腻,可以精確的得到用戶(hù)的偏好纸厉。
轉(zhuǎn)發(fā):通過(guò)用戶(hù)對(duì)內(nèi)容的轉(zhuǎn)發(fā),可以精確的得到用戶(hù)的偏好五嫂。
評(píng)論:通過(guò)分析用戶(hù)的評(píng)論颗品,可以得到用戶(hù)的情感:喜歡還是討厭。
點(diǎn)擊:用戶(hù)的點(diǎn)擊一定程度上反映了用戶(hù)的注意力沃缘,所以它也可以從一定程度上反映用戶(hù)的喜好躯枢。
購(gòu)買(mǎi):用戶(hù)的購(gòu)買(mǎi)是很明確的說(shuō)明這個(gè)項(xiàng)目它感興趣。
以上都是比較通用的用戶(hù)行為槐臀,我們可以給每個(gè)行為賦值锄蹂,經(jīng)過(guò)數(shù)據(jù)處理后,得出用戶(hù)對(duì)物品的偏好水慨。由于對(duì)用戶(hù)行為的數(shù)據(jù)分析過(guò)程較為復(fù)雜得糜,這里不展開(kāi)討論。
2.計(jì)算相似度
當(dāng)我們已經(jīng)知道用戶(hù)的偏好后晰洒,可以根據(jù)用戶(hù)的喜好計(jì)算相似用戶(hù)和物品掀亩,然后基于相似用戶(hù)或物品進(jìn)行推薦,計(jì)算相似度的公式很多欢顷,這里選取其中一種介紹槽棍,Cosine 相似度(Cosine Similarity):
使用五分制,小琴和小華對(duì)abcd這四種物品進(jìn)行打分抬驴,小琴對(duì)abcd物品的評(píng)分為1炼七、2、2布持、3豌拙,可以用向量表示:x(1,2,2,3);小華對(duì)abcd物品的評(píng)分為1题暖、0按傅、2、0胧卤,用向量表示:y(1,0,2,0)唯绍。把這兩個(gè)數(shù)據(jù)代入到公式中去,可得到小華和小琴的相似度為:
T(x枝誊,y)=(1*1+2*0+2*2+3*0)/9=0.56况芒,即兩者的相似度為0.56。值越大叶撒,兩者的相似度越高绝骚。
3.推薦機(jī)制
以上知道了相似度的計(jì)算方式耐版,就可以基于相似度為用戶(hù)進(jìn)行推薦了,目前的推薦機(jī)制有兩種方式:基于用戶(hù)的CF(User CF)和基于物品的CF(Item CF):
基于用戶(hù)的CF
基于用戶(hù)的協(xié)同過(guò)濾压汪,通過(guò)用戶(hù)對(duì)不同內(nèi)容(物品)的行為粪牲,來(lái)評(píng)測(cè)用戶(hù)之間的相似性,找到“鄰居”止剖,基于這種相似性做出推薦虑瀑。這種推薦的本質(zhì)是,給相似的用戶(hù)推薦其他用戶(hù)喜歡的內(nèi)容滴须,這就是我們經(jīng)常看到的:和你類(lèi)似的人還喜歡如下內(nèi)容叽奥。下面這個(gè)列子可以說(shuō)明:
需要給用戶(hù)A推薦游戲扔水,根據(jù)用戶(hù)B和用戶(hù)C對(duì)游戲的偏好行為,給A推薦游戲朝氓,從下表可以知道魔市,基于對(duì)游戲的偏好來(lái)講,用戶(hù)A跟用戶(hù)C的相似度比用戶(hù)跟用戶(hù)B的相似度要大赵哲,所以待德,系統(tǒng)會(huì)給用戶(hù)A推薦爐石傳說(shuō)。
當(dāng)然枫夺,舉的這個(gè)例子十分簡(jiǎn)單将宪,實(shí)際上,還需要考慮的是每個(gè)用戶(hù)物品的偏好程度橡庞,雖然用戶(hù)A和用戶(hù)C都玩過(guò)英雄聯(lián)盟较坛,但是用戶(hù)A和用戶(hù)C對(duì)英雄聯(lián)盟的偏好程度可能不一樣,在真正的計(jì)算過(guò)程中扒最,需要對(duì)這種偏好的程度設(shè)定一個(gè)參數(shù)丑勤,參數(shù)的大小表明用戶(hù)對(duì)物品的偏好程度的大小。根據(jù)設(shè)置或調(diào)整參數(shù)的大小吧趣,得出最后的值給用戶(hù)推薦商品法竞,這樣的推薦計(jì)算結(jié)果會(huì)更加嚴(yán)謹(jǐn)。
基于物品的CF
基于物品的CF的原理和基于用戶(hù)的CF類(lèi)似强挫,只是在計(jì)算鄰居時(shí)采用物品本身岔霸,而不是從用戶(hù)的角度,即基于用戶(hù)對(duì)物品的偏好找到相似的物品俯渤,然后根據(jù)用戶(hù)的歷史偏好秉剑,推薦相似的物品給用戶(hù)。從計(jì)算的角度來(lái)看稠诲,就是將所有用戶(hù)對(duì)某個(gè)物品的偏好作為一個(gè)向量來(lái)計(jì)算物品之間的相似度侦鹏,得到物品的相似物品后诡曙,根據(jù)用戶(hù)歷史的偏好預(yù)測(cè)當(dāng)前用戶(hù)還沒(méi)有表示偏好的物品,計(jì)算得到一個(gè)排序的物品列表作為推薦略水。就是我們常見(jiàn)的:購(gòu)買(mǎi)該商品的用戶(hù)還購(gòu)買(mǎi)了如下商品价卤,等等
就是文章開(kāi)頭前的啤酒和紙尿褲的故事,因?yàn)槌械娜藛T發(fā)現(xiàn)很多男人買(mǎi)紙尿褲的時(shí)候會(huì)買(mǎi)啤酒渊涝,根據(jù)這一用戶(hù)行為慎璧,紙尿褲和啤酒的相似度較高,那么在用戶(hù)購(gòu)買(mǎi)紙尿褲的時(shí)候推薦啤酒跨释,增加啤酒的銷(xiāo)量胸私。也用相同的例子來(lái)說(shuō)明:
可以從下表看出,用戶(hù)B和用戶(hù)C有一個(gè)共同的特征鳖谈,即選擇了英雄聯(lián)盟也會(huì)選爐石傳說(shuō)岁疼,說(shuō)明這兩個(gè)游戲之間相似度會(huì)比較高,那么會(huì)當(dāng)用戶(hù)A選擇了英雄聯(lián)盟缆娃,系統(tǒng)會(huì)把爐石傳說(shuō)也推薦給他捷绒。但是同時(shí)要注意的一點(diǎn),這種情況也是屬于比較理想化的一種贯要,物品和物品之間的相似度可能不一樣暖侨,也需要調(diào)整參數(shù),這里不進(jìn)行深入的探討了崇渗。
4.User CF vs. ?Item CF
目前這兩種不同的推薦機(jī)制適用于不同的場(chǎng)景字逗。不同的業(yè)務(wù)形態(tài)選擇的推薦機(jī)制肯定不一樣。對(duì)于大型電商網(wǎng)站來(lái)說(shuō)宅广,用戶(hù)的數(shù)量級(jí)遠(yuǎn)遠(yuǎn)大于spu的數(shù)量扳肛,物品相對(duì)穩(wěn)定,計(jì)算物品之間的相似度并不復(fù)雜乘碑,使用Item CF會(huì)比較合適挖息。同時(shí)從邏輯上來(lái)講,比如我在購(gòu)物網(wǎng)站上買(mǎi)了一本書(shū)兽肤,不能因?yàn)槲腋渌脩?hù)相似而跟我推薦他買(mǎi)過(guò)或看過(guò)的套腹,這說(shuō)不過(guò)去,推薦與這本書(shū)相似度高的會(huì)比較好资铡。
當(dāng)然电禀,在帶有社交屬性的系統(tǒng)中,User CF 的推薦機(jī)制會(huì)更加有效笤休,我關(guān)注的PO主他們的行為會(huì)和我的行為(品味)相似度較高尖飞,所以基于用戶(hù)的推薦會(huì)更加有效。
這篇大致介紹了推薦機(jī)制的原理。原理搞清楚了政基,有關(guān)推薦系統(tǒng)的設(shè)計(jì)就會(huì)更加有據(jù)可依贞铣,而不是單純的一句:做一下商品的推薦機(jī)制!然后就沒(méi)有然后了沮明。