協(xié)同過(guò)濾——推薦系統(tǒng)算法原理

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)有然后了沮明。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末辕坝,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子荐健,更是在濱河造成了極大的恐慌酱畅,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,248評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件江场,死亡現(xiàn)場(chǎng)離奇詭異纺酸,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)址否,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門(mén)餐蔬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人在张,你說(shuō)我怎么就攤上這事“剑” “怎么了帮匾?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,443評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)痴鳄。 經(jīng)常有香客問(wèn)我瘟斜,道長(zhǎng),這世上最難降的妖魔是什么痪寻? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,475評(píng)論 1 279
  • 正文 為了忘掉前任螺句,我火速辦了婚禮,結(jié)果婚禮上橡类,老公的妹妹穿的比我還像新娘蛇尚。我一直安慰自己,他們只是感情好肌厨,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,458評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布内斯。 她就那樣靜靜地躺著往湿,像睡著了一般。 火紅的嫁衣襯著肌膚如雪谱邪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,185評(píng)論 1 284
  • 那天庶诡,我揣著相機(jī)與錄音惦银,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛扯俱,可吹牛的內(nèi)容都是我干的书蚪。 我是一名探鬼主播,決...
    沈念sama閱讀 38,451評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼蘸吓,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼善炫!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起库继,我...
    開(kāi)封第一講書(shū)人閱讀 37,112評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤箩艺,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后宪萄,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體艺谆,經(jīng)...
    沈念sama閱讀 43,609評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,083評(píng)論 2 325
  • 正文 我和宋清朗相戀三年拜英,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了静汤。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,163評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡居凶,死狀恐怖虫给,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情侠碧,我是刑警寧澤抹估,帶...
    沈念sama閱讀 33,803評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站弄兜,受9級(jí)特大地震影響药蜻,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜替饿,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,357評(píng)論 3 307
  • 文/蒙蒙 一语泽、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧视卢,春花似錦踱卵、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,357評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至蝶俱,卻和暖如春班利,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背榨呆。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,590評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工罗标, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留庸队,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,636評(píng)論 2 355
  • 正文 我出身青樓闯割,卻偏偏與公主長(zhǎng)得像彻消,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子宙拉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,925評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容