推薦系統(tǒng) —— 協(xié)同過濾

前言

作為推薦系統(tǒng) 這一系列的第二篇文章特铝,我們今天主要來聊一聊目前比較流行的一種推薦算法——協(xié)同過濾;
當(dāng)然壹瘟,這里我們只講理論鲫剿,并不會(huì)涉及到相關(guān)代碼或者相關(guān)框架的使用,在這一系列的后續(xù)文章稻轨,如果可能灵莲,我們可以將我們的所有理論知識(shí)整合一下,實(shí)踐一個(gè) 推薦系統(tǒng)的 實(shí)戰(zhàn)殴俱。

協(xié)同過濾是什么

顧名思義政冻,協(xié)同過濾就是指用戶可以齊心協(xié)力,通過不斷地和網(wǎng)站互動(dòng)线欲,使自己的推薦列表能夠不斷過濾掉自己不感興趣的物品明场,從而越來越滿足自己的需求。這種僅僅基于用戶行為數(shù)據(jù)設(shè)計(jì)的推薦算法一般稱為協(xié)同過濾算法李丰,一般來說可以分為以下幾種:

  • 基于鄰域的方法(neighborhood-based)
  • 隱語義模型(latent factor model)
  • 基于圖的隨機(jī)游走算法(random walk on graph)等

而今天我們要說的 基于用戶的協(xié)同過濾 就是一種 基于鄰域的方法;
基于鄰域的方法 又可以分為以下兩種算法:苦锨。

  • 基于物品的協(xié)同過濾算法
    這種算法給用戶推薦和他之前喜歡的物品相似的物品。
  • 基于用戶的協(xié)同過濾算法
    給用戶推薦和他興趣相似的其他用戶喜歡的物品。

基于用戶的協(xié)同過濾

  • 原理
    給用戶推薦和他興趣相似的其他用戶喜歡的物品舟舒。

  • 實(shí)現(xiàn)步驟:

    • 找到和目標(biāo)用戶興趣相似的用戶集合拉庶。
    • 找到這個(gè)集合中的用戶喜歡的,且目標(biāo)用戶沒有聽說過的物品推薦給目標(biāo)用戶秃励。
  • 實(shí)踐(只是為了加深理解哈)
    上面都是空洞洞的文字描述砍的,下面我們就一個(gè)列子來加深一下理解

    1. 收集數(shù)據(jù),假設(shè)我們現(xiàn)以收集如下數(shù)據(jù)
    user item1 item2 item3
    A 1 1 0
    B 1 1 1
    C 0 1 1

    這是一個(gè)簡(jiǎn)單的 user 和 item 的矩陣莺治,如果user購(gòu)買過item 則標(biāo)識(shí)為1 廓鞠,否則為 0。

    1. 計(jì)算用戶之間的相似度:
      相似度的計(jì)算是有很多種方法的谣旁,如何準(zhǔn)確的計(jì)算出兩個(gè)用戶之間的相似度是該算法的一個(gè)最重要的環(huán)節(jié)床佳,至于相似度的計(jì)算,網(wǎng)上還是有相當(dāng)多的資料的榄审,這里就不再贅述砌们,下面我簡(jiǎn)單的列舉了一些比較常用和簡(jiǎn)單的計(jì)算方式
    • 距離衡量相似度
      我們可以將每一個(gè)用戶想象成特征組成的高維空間的一個(gè)點(diǎn),而他們的相似度就是這兩個(gè)點(diǎn)的距離搁进,常用的距離公式有:歐幾里得距離浪感,曼哈頓距離,明可夫斯基距離 等
    • 余弦相似度計(jì)算法
      我們可以將每一個(gè)用戶想象成特征組成的高維空間的一個(gè)點(diǎn)饼问,其與 高維空間中的原點(diǎn)組成一個(gè)表示其的唯一向量影兽,兩個(gè)用戶的相似度就可以用他們兩個(gè)向量之間的夾角來確定,夾角越小莱革,越相似
    • 其他
      可以參考一下這個(gè)文章這個(gè)文章
    • 同現(xiàn)度
      最后峻堰,我們?cè)賮碚f一個(gè)比較low,但是也簡(jiǎn)單的算法盅视,也是本次實(shí)踐的算法:同現(xiàn)度
      即捐名,當(dāng)兩個(gè)用戶同時(shí)購(gòu)買了同一個(gè)商品,那么他們相似度 +1
      那么我們就可以計(jì)算出用戶之間的相似度了闹击,可以得到如下一個(gè)列表
      user A B C
      A * 2 1
      B 2 * 2
      C 1 2 *

    這里啰嗦一下镶蹋,雖然算法分簡(jiǎn)單 和 復(fù)雜,但是和算法的效果是沒有絕對(duì)的關(guān)系的赏半,所以不要小看那些簡(jiǎn)單的算法噢贺归。

    1. 找到和推薦用戶相似的用戶集合 ,并推薦
      這里我們只有一個(gè)3個(gè)用戶除破,所以我們這個(gè)集合那就定為一個(gè)吧牧氮,如果我們要給A推薦,那么先找到與A相似的用戶集合 {B}

    2. 推薦
      既然我們找到了A用戶的相似用戶們是 B瑰枫,而且也可以很簡(jiǎn)單的發(fā)現(xiàn) B 買過 item3踱葛,而A沒有買過丹莲,所以我們就給 A 推薦 item3

  • 總結(jié)
    基于用戶的協(xié)同過濾差不多就是這個(gè)樣子,當(dāng)然實(shí)際生產(chǎn)環(huán)境你肯定得考慮很多其他因素尸诽,比如數(shù)據(jù)規(guī)模甥材,數(shù)據(jù)特征選取,特征的權(quán)重等等等等性含。當(dāng)然這些都不在討論之列洲赵,我們只要知道該算法是個(gè)什么,怎么做的商蕴,有什么用就好了叠萍。最后我們?cè)賮砜偨Y(jié)下這個(gè)算法優(yōu)劣吧:+

    • 因?yàn)槭钦矣脩舻南嗨贫龋愿芊从沉擞脩羲诘男⌒团d趣群體中物品的熱門程度绪商,比較社會(huì)化群體化苛谷。
    • 針對(duì)用戶個(gè)人而言,其特征或者說興趣是不夠細(xì)化的格郁。
    • 從實(shí)時(shí)方面來看腹殿,用戶個(gè)人的行為不一定能造成物品推薦的實(shí)時(shí)更新,當(dāng)然這里是不一定例书,很多時(shí)候锣尉,當(dāng)某個(gè)熱點(diǎn)東西進(jìn)入該用戶的圈子,這個(gè)東西的傳遞還是迅速的
    • 對(duì)于物品的冷啟動(dòng)比較友好决采,一旦一個(gè)新物品被某個(gè)用戶購(gòu)買自沧,立刻就可以推薦給他圈子的其他用戶
    • 對(duì)于用戶的冷啟動(dòng)不友好,因?yàn)橐粋€(gè)新用戶的加入织狐,并不會(huì)馬上被加入到某個(gè)圈子暂幼,比較用戶相似度矩陣是不可能實(shí)時(shí)計(jì)算的筏勒。
    • 推薦結(jié)果不具有可解釋性移迫,我不知道推薦給你的這個(gè)物品是什么,我只知道管行,你的朋友都在用
    • 對(duì)于用戶比較龐大的公司厨埋,計(jì)算用戶相似度會(huì)比較麻煩

基于物品的協(xié)同過濾

上面講完了 基于用戶的協(xié)調(diào)過濾,那么我們成熱打鐵把 基于物品的協(xié)調(diào) 過濾也一塊講了

物品的協(xié)調(diào)過濾 不同于 基于用戶的區(qū)別就在于:

  1. 計(jì)算相似度的時(shí)候我們是通過用戶行為計(jì)算的 物品之間 的相似度捐顷,而基于用戶 則是通過用戶行為計(jì)算的 用戶之間 的相似度荡陷。維護(hù)的是物品之間的相似度矩陣
  2. 當(dāng)給一個(gè)用戶作推薦的時(shí)候,基于用戶 因?yàn)橐呀?jīng)計(jì)算了 用戶之間的相似度迅涮,則可以找到推薦用戶興趣相似的用戶废赞,而基于物品,則可以找到和推薦用戶感興趣的物品相似的物品來做推薦

好像差不多也就這些東西叮姑,弄懂基于用戶的協(xié)同過濾之后唉地,基于物品的也就是那么回事了据悔,其主要特征如下:

  • 推薦更加個(gè)性化,反映了用戶自己的興趣傳承
  • 實(shí)時(shí)性方面耘沼,用戶實(shí)時(shí)瀏覽和喜歡极颓,都能立即造成推薦的物品的改變
  • 對(duì)于物品的冷啟動(dòng)比較不友好
  • 對(duì)于用戶的冷啟動(dòng)比較友好
  • 推薦結(jié)果具有很好的解釋性
  • 對(duì)于物品實(shí)時(shí)更新的領(lǐng)域不太適用,比如:新聞群嗤。相反菠隆,對(duì)于物品變化比較不敏感的領(lǐng)域很適用。

ok狂秘!就這樣了骇径,感謝你的觀看!U叽骸既峡!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市碧查,隨后出現(xiàn)的幾起案子运敢,更是在濱河造成了極大的恐慌,老刑警劉巖忠售,帶你破解...
    沈念sama閱讀 217,734評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件传惠,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡稻扬,警方通過查閱死者的電腦和手機(jī)卦方,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來泰佳,“玉大人盼砍,你說我怎么就攤上這事∈潘” “怎么了浇坐?”我有些...
    開封第一講書人閱讀 164,133評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)黔宛。 經(jīng)常有香客問我近刘,道長(zhǎng),這世上最難降的妖魔是什么臀晃? 我笑而不...
    開封第一講書人閱讀 58,532評(píng)論 1 293
  • 正文 為了忘掉前任觉渴,我火速辦了婚禮,結(jié)果婚禮上徽惋,老公的妹妹穿的比我還像新娘案淋。我一直安慰自己,他們只是感情好险绘,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,585評(píng)論 6 392
  • 文/花漫 我一把揭開白布踢京。 她就那樣靜靜地躺著回右,像睡著了一般。 火紅的嫁衣襯著肌膚如雪漱挚。 梳的紋絲不亂的頭發(fā)上翔烁,一...
    開封第一講書人閱讀 51,462評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音旨涝,去河邊找鬼蹬屹。 笑死,一個(gè)胖子當(dāng)著我的面吹牛白华,可吹牛的內(nèi)容都是我干的慨默。 我是一名探鬼主播,決...
    沈念sama閱讀 40,262評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼弧腥,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼厦取!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起管搪,我...
    開封第一講書人閱讀 39,153評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤虾攻,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后更鲁,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體霎箍,經(jīng)...
    沈念sama閱讀 45,587評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,792評(píng)論 3 336
  • 正文 我和宋清朗相戀三年澡为,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了漂坏。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,919評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡媒至,死狀恐怖顶别,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情拒啰,我是刑警寧澤驯绎,帶...
    沈念sama閱讀 35,635評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站图呢,受9級(jí)特大地震影響条篷,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蛤织,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,237評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望鸿染。 院中可真熱鬧指蚜,春花似錦、人聲如沸涨椒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至免猾,卻和暖如春是辕,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背猎提。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工获三, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人锨苏。 一個(gè)月前我還...
    沈念sama閱讀 48,048評(píng)論 3 370
  • 正文 我出身青樓疙教,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親伞租。 傳聞我的和親對(duì)象是個(gè)殘疾皇子贞谓,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,864評(píng)論 2 354

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