[關(guān)聯(lián)規(guī)則,協(xié)同過濾]推薦系統(tǒng)的初體驗

推薦系統(tǒng)的初體驗(關(guān)聯(lián)規(guī)則,協(xié)同過濾) - 波波頭一頭的日志 - 網(wǎng)易博客
http://chen.yi.bo.blog.163.com/blog/static/1506211092010118101129456/

最近接觸了一個推薦系統(tǒng)的建設(shè)項目伪很,于是我順便回顧了一下之前零星學(xué)到的推薦知識,把一些困惑很久的問題弄明白了漠烧,所以來總結(jié)一下梆掸。

一般意義下的推薦系統(tǒng)是指個性化推薦痴脾,類似簡單的排行榜推薦或者關(guān)聯(lián)規(guī)則推薦被認(rèn)為是不夠個性化的。不過我困惑的問題也正在于這里期贫,所以我來描述一下關(guān)聯(lián)規(guī)則和協(xié)同過濾這兩個典型的推薦方法跟匆。

關(guān)聯(lián)規(guī)則是數(shù)據(jù)挖掘中的典型問題之一,又被稱為購物籃分析通砍,這是因為傳統(tǒng)的關(guān)聯(lián)規(guī)則案例大多發(fā)生在超市中玛臂,例如所謂的啤酒與尿布傳說。事實上封孙,“購物籃”這個詞也揭示了關(guān)聯(lián)規(guī)則挖掘的一個重要特點:以交易記錄為研究對象迹冤,每一個購物籃(transaction)就是一條記錄。關(guān)聯(lián)規(guī)則希望挖掘的規(guī)則就是:哪些商品會經(jīng)常在同一個購物籃中出現(xiàn)虎忌,其中有沒有因果關(guān)系泡徙。為了描述這種“經(jīng)常性”及“因果關(guān)系”,分析者定義了幾個指標(biāo)膜蠢,基于這些指標(biāo)來篩選關(guān)聯(lián)規(guī)則堪藐,從而得到那些不平凡的規(guī)律。主要的指標(biāo)包括:支持度support挑围,置信度confidence庶橱,提升度lift。對于一個二項規(guī)則例如“A→B”贪惹,支持度是指A與B同時出現(xiàn)的概率,即P(A B)寂嘉;置信度是B關(guān)于A的條件概率奏瞬,即P(B | A)枫绅;提升度是B的概率的提升,即P(B | A) / P(B)硼端。比較常見的例子是:

推薦系統(tǒng)的初體驗(關(guān)聯(lián)規(guī)則并淋,協(xié)同過濾) - 波波頭一頭 - 生活也是大事業(yè)

這些指標(biāo)都很容易理解,他們在一定程度上保證了挖掘出來的規(guī)則的實用性珍昨。

盡管用來做關(guān)聯(lián)規(guī)則的Apriori算法被譽為數(shù)據(jù)挖掘十大算法之一县耽,我仍然曾經(jīng)因為覺得關(guān)聯(lián)規(guī)則如此簡單明白而忽視其實踐意義。尤其是在我知道協(xié)同過濾之后镣典。

協(xié)同過濾也是很典型的推薦技術(shù)兔毙,他構(gòu)造一個用戶與項目之間的關(guān)聯(lián)打分矩陣,像是這樣

推薦系統(tǒng)的初體驗(關(guān)聯(lián)規(guī)則兄春,協(xié)同過濾) - 波波頭一頭 - 生活也是大事業(yè)

打分矩陣很好地體現(xiàn)出協(xié)同的概念澎剥,其中的Ui代表了用戶,Ti代表了項目赶舆,相應(yīng)位置的數(shù)值表示了用戶對項目的打分哑姚,有些情況下沒有具體分值的,通常用0/1來表示未購買與已購買(豆瓣電臺估計得是-1/0/1這樣的編碼)芜茵。協(xié)同過濾的基本想法就是根據(jù)相似性來做推薦叙量,這可以分為兩類:基于用戶相似性的推薦和基于項目相似性的推薦。這兩種推薦的假設(shè)基礎(chǔ)分別是:相似的用戶對同一個項目會有相似的偏好九串,同一個用戶對相似的項目會有相似的偏好绞佩。因此從計算的角度就是對上述的打分矩陣分別按行和按列計算相似度。

基于用戶的協(xié)同過濾可以簡單地通過對用戶的聚類以及KNN等方法實現(xiàn)蒸辆,若U1與U2被歸為一類征炼,或者U2是距離U1最近的用戶,則向U1推薦U1沒購買過而U2已購買過的項目躬贡。當(dāng)然這里更標(biāo)準(zhǔn)的做法是計算用戶之間的相似度(用相關(guān)系數(shù)和歐氏距離等等的指標(biāo)來衡量)谆奥,然后根據(jù)相似度進(jìn)行加權(quán)求和,得到每個用戶對每個項目的推薦得分拂玻。類似地酸些,基于項目的協(xié)同過濾則是計算項目之間的相似度矩陣,像是這樣

推薦系統(tǒng)的初體驗(關(guān)聯(lián)規(guī)則檐蚜,協(xié)同過濾) - 波波頭一頭 - 生活也是大事業(yè)

然后可以根據(jù)原始的打分矩陣和這個相似度矩陣魄懂,來做一個類似加權(quán)求和的工作(其實就是矩陣相乘),得到每個用戶對每個項目的推薦得分闯第。例如市栗,U1對T2的推薦得分,就是(1,0,0,1)(2,1,1,1)=(12 + 01 + 01 + 1*1)=3。這個例子中沒有涉及具體打分(只有0/1編碼)填帽,項目之間相似度的計算也比較簡單(距離公式和相關(guān)系數(shù)的定義有多種多樣復(fù)雜無比蛛淋,并且還需要做一些標(biāo)準(zhǔn)化之類的處理),僅僅作為例子來說明一下基于項目相似性來計算偏好的一種方法篡腌。

由于我對這兩種技術(shù)的學(xué)習(xí)都比較淺褐荷,所以存在很多困惑的地方,前段時間也跟老段交流過嘹悼。主要的問題就在于:關(guān)聯(lián)規(guī)則跟協(xié)同過濾的相通點在什么地方叛甫。(貌似我很喜歡探索這種問題,例如做信用評分模型的變量轉(zhuǎn)換時杨伙,用dummy變量跟用WOE編碼有何相通之處其监,以及WOE跟零售推薦里的NRS的相似之處,這個等我弄明白了再總結(jié)吧缀台。)

由于我上面協(xié)同過濾的這個例子太特殊棠赛,所以把關(guān)聯(lián)規(guī)則給混淆進(jìn)來了。因為其中計算項目相似度的方法跟關(guān)聯(lián)規(guī)則里面的支持度support很類似膛腐,無非是數(shù)一下兩個項目同時出現(xiàn)的概率或次數(shù)睛约,于是我就認(rèn)為關(guān)聯(lián)規(guī)則的本質(zhì)也是在計算項目之間的相似度,于是我就把關(guān)聯(lián)規(guī)則理解為一種特殊的協(xié)同過濾了哲身。囧辩涝。

事實上今天我考慮了一下,這兩種方法確實還是有很大的不同勘天。從形式上講怔揩,當(dāng)然我忽略了關(guān)聯(lián)規(guī)則里面的其他一些指標(biāo)。從更接近本質(zhì)的觀點來看脯丝,這兩種方法的出發(fā)點和邏輯思路也是截然不同的商膊。一般地,關(guān)聯(lián)規(guī)則被劃分為動態(tài)推薦宠进,而協(xié)同過濾則更多地被視為靜態(tài)推薦晕拆。

所謂動態(tài)推薦,我的理解是:推薦的基礎(chǔ)是且只是當(dāng)前一次(最近一次)的購買或者點擊材蹬。譬如我在網(wǎng)站上看了一個趙麗蓉老師的小品实幕,系統(tǒng)就找到與這個小品相關(guān)的關(guān)聯(lián)規(guī)則,然后根據(jù)這個規(guī)則向我進(jìn)行推薦(例如趙麗蓉老師的另外一個小品="=)堤器。而靜態(tài)推薦則是在對用戶進(jìn)行了一定分析的基礎(chǔ)上昆庇,建立了這個用戶在一定時期內(nèi)的偏好排序,然后在這段時期內(nèi)持續(xù)地按照這個排序來進(jìn)行推薦闸溃。

由此可見整吆,關(guān)聯(lián)規(guī)則與協(xié)同過濾的策略思路是完全不同的類型拱撵。而造成這種差異的原因,則在于這兩種方法所面對的對象的性質(zhì)的不同——關(guān)聯(lián)規(guī)則面向的是transaction掂为,而協(xié)同過濾面向的是ID裕膀。關(guān)聯(lián)規(guī)則典型地是面向超市零售,在會員制度尚不完善的階段勇哗,沒辦法得到每個用戶的購買情況,而只能分析交易數(shù)據(jù)(小票)寸齐,因此也就沒有“用戶偏好”這個概念欲诺,而只能從小票中分析出一些頻繁的關(guān)聯(lián)項,也因此關(guān)聯(lián)規(guī)則做推薦時無法應(yīng)用用戶歷史數(shù)據(jù)渺鹦,而只能基于當(dāng)前的購買情況來做推薦扰法,也因此關(guān)聯(lián)規(guī)則原本就不是跟推薦系統(tǒng)掛在一起,而是更多地強調(diào)交叉銷售毅厚。

但是這并不影響關(guān)聯(lián)規(guī)則在很多場合都具有良好的實踐效果塞颁,例如老段做的那個彩鈴?fù)扑]。事實上吸耿,即便在當(dāng)下很多能夠拿到用戶ID的場景祠锣,使用動態(tài)的關(guān)聯(lián)規(guī)則推薦仍然是值得考慮的一種方法(尤其是我們經(jīng)常把很多推薦方法的結(jié)果綜合起來做一個混合的推薦),因為這種方法的邏輯思路跟協(xié)同過濾有著本質(zhì)的不同咽安,問題似乎僅僅在于:個人的偏好到底有多穩(wěn)定伴网,推薦到底是要迎合用戶的長期偏好還是用戶的當(dāng)下需求。

當(dāng)然啦妆棒,這兩種方法也有能夠結(jié)合在一起的機會(不是簡單地對推薦結(jié)果做并集)澡腾,有助于應(yīng)用關(guān)聯(lián)規(guī)則的一些良好性質(zhì)在一定程度上彌補協(xié)同過濾的不足滩字。IBM就介紹了這樣一種方法酱床,主要的策略是用關(guān)聯(lián)規(guī)則來計算項目相似度列吼,然后再應(yīng)用基于項目相似性的協(xié)同過濾技術(shù)拳亿。在這種情況下栗竖,項目距離矩陣就不再是對稱的了腰池,因為關(guān)聯(lián)規(guī)則具有方向性富拗。

這就是我的推薦系統(tǒng)初體驗了伏恐,可以算是基本了解了兩種方法的區(qū)別纠脾。

今天沒有代碼——(要么參考一下阿穩(wěn)《可能是史上代碼最少的協(xié)同過濾推薦引擎》)——所以從微博抄個笑話吧玛瘸。

“個人覺得現(xiàn)在的數(shù)據(jù)挖掘做的很爛,我在網(wǎng)上買了一個鍋苟蹈,結(jié)果下面推薦的都是鍋糊渊,同志,我已經(jīng)買了一個了還這么迫切的想買第二個么慧脱?”

打完收工渺绒。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子宗兼,更是在濱河造成了極大的恐慌躏鱼,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件殷绍,死亡現(xiàn)場離奇詭異染苛,居然都是意外死亡,警方通過查閱死者的電腦和手機主到,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進(jìn)店門茶行,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人登钥,你說我怎么就攤上這事畔师。” “怎么了牧牢?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵看锉,是天一觀的道長。 經(jīng)常有香客問我塔鳍,道長伯铣,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任献幔,我火速辦了婚禮懂傀,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蜡感。我一直安慰自己蹬蚁,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布郑兴。 她就那樣靜靜地躺著犀斋,像睡著了一般。 火紅的嫁衣襯著肌膚如雪情连。 梳的紋絲不亂的頭發(fā)上叽粹,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天,我揣著相機與錄音却舀,去河邊找鬼虫几。 笑死,一個胖子當(dāng)著我的面吹牛挽拔,可吹牛的內(nèi)容都是我干的辆脸。 我是一名探鬼主播,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼螃诅,長吁一口氣:“原來是場噩夢啊……” “哼啡氢!你這毒婦竟也來了状囱?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤倘是,失蹤者是張志新(化名)和其女友劉穎亭枷,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體搀崭,經(jīng)...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡叨粘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了瘤睹。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片宣鄙。...
    茶點故事閱讀 40,001評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖默蚌,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情苇羡,我是刑警寧澤绸吸,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站设江,受9級特大地震影響锦茁,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜叉存,卻給世界環(huán)境...
    茶點故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一码俩、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧歼捏,春花似錦稿存、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至练俐,卻和暖如春袖迎,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背腺晾。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工燕锥, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人悯蝉。 一個月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓归形,卻偏偏與公主長得像,于是被迫代替她去往敵國和親泉粉。 傳聞我的和親對象是個殘疾皇子连霉,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,955評論 2 355

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