協(xié)同過濾簡單來說是利用某興趣相投帅韧、擁有共同經(jīng)驗之群體的喜好來推薦用戶感興趣的信息壳贪,個人通過合作的機制給予信息相當程度的回應(如評分)并記錄下來以達到過濾的目的進而幫助別人篩選信息先蒋,回應不一定局限于特別感興趣的翻伺,特別不感興趣信息的紀錄也相當重要佑钾。協(xié)同過濾又可分為評比(rating)或者群體過濾(social filtering)協(xié)同過濾以其出色的速度和健壯性咕宿,在全球互聯(lián)網(wǎng)領域炙手可熱溢豆。
-
定義
1蜒简、基于以用戶為基礎(User-based)的協(xié)同過濾
基于項目的協(xié)同過濾推薦的基本原理也是類似的,只是說它使用所有用戶對物品或者信息的偏好漩仙,發(fā)現(xiàn)物品和物品之間的相似度搓茬,然后根據(jù)用戶的歷史偏好信息,將類似的物品推薦給用戶讯赏, 很好的詮釋了它的基本原理垮兑。
上圖示意出基于用戶的協(xié)同過濾推薦機制的基本原理,假設用戶 A 喜歡物品 A漱挎,物品 C系枪,用戶 B 喜歡物品 B,用戶 C 喜歡物品 A 磕谅,物品 C 和物品 D私爷;從這些用戶的歷史喜好信息中,我們可以發(fā)現(xiàn)用戶 A 和用戶 C 的口味和偏好是比較類似的膊夹,同時用戶 C 還喜歡物品 D衬浑,那么我們可以推斷用戶 A 可能也喜歡物品 D,因此可以將物品 D 推薦給用戶 A放刨。
基于用戶的協(xié)同過濾推薦機制和基于人口統(tǒng)計學的推薦機制都是計算用戶的相似度工秩,并基于“鄰居”用戶群計算推薦,但它們所不同的是如何計算用戶的相似度,基于人口統(tǒng)計學的機制只考慮用戶本身的特征助币,而基于用戶的協(xié)同過濾機制可是在用戶的歷史偏好的數(shù)據(jù)上計算用戶的相似度浪听,它的基本假設是,喜歡類似物品的用戶可能有相同或者相似的口味和偏好眉菱。
步驟:1.收集用戶信息
收集可以代表用戶興趣的信息迹栓。一般的網(wǎng)站系統(tǒng)使用評分的方式或是給予評價,這種方式被稱為“主動評分”俭缓。另外一種是“被動評分”克伊,是根據(jù)用戶的行為模式由系統(tǒng)代替用戶完成評價,不需要用戶直接打分或輸入評價數(shù)據(jù)华坦。電子商務網(wǎng)站在被動評分的數(shù)據(jù)獲取上有其優(yōu)勢愿吹,用戶購買的商品記錄是相當有用的數(shù)據(jù)。
2.最近鄰搜索(Nearest neighbor search, NNS)
以用戶為基礎(User-based)的協(xié)同過濾的出發(fā)點是與用戶興趣愛好相同的另一組用戶季春,就是計算兩個用戶的相似度洗搂。例如:查找n個和A有相似興趣用戶,把他們對M的評分作為A對M的評分預測载弄。一般會根據(jù)數(shù)據(jù)的不同選擇不同的算法耘拇,目前較多使用的相似度算法有Pearson Correlation Coefficient、Cosine-based Similarity宇攻、Adjusted Cosine Similarity惫叛。
3.產(chǎn)生推薦結果
有了最近鄰集合,就可以對目標用戶的興趣進行預測逞刷,產(chǎn)生推薦結果嘉涌。依據(jù)推薦目的的不同進行不同形式的推薦,較常見的推薦結果有Top-N 推薦和關系推薦夸浅。Top-N 推薦是針對個體用戶產(chǎn)生仑最,對每個人產(chǎn)生不一樣的結果,例如:通過對A用戶的最近鄰用戶進行統(tǒng)計帆喇,選擇出現(xiàn)頻率高且在A用戶的評分項目中不存在的警医,作為推薦結果。關系推薦是對最近鄰用戶的記錄進行關系規(guī)則(association rules)挖掘坯钦。
2预皇、基于項目(Item-based)的協(xié)同過濾
基于項目的協(xié)同過濾推薦的基本原理也是類似的,只是說它使用所有用戶對物品或者信息的偏好婉刀,發(fā)現(xiàn)物品和物品之間的相似度吟温,然后根據(jù)用戶的歷史偏好信息,將類似的物品推薦給用戶突颊,很好的詮釋了它的基本原理鲁豪。
假設用戶 A 喜歡物品 A 和物品 C潘悼,用戶 B 喜歡物品 A,物品 B 和物品 C爬橡,用戶 C 喜歡物品 A挥等,從這些用戶的歷史喜好可以分析出物品 A 和物品 C 時比較類似的,喜歡物品 A 的人都喜歡物品 C堤尾,基于這個數(shù)據(jù)可以推斷用戶 C 很有可能也喜歡物品 C,所以系統(tǒng)會將物品 C 推薦給用戶 C迁客。
與上面講的類似郭宝,基于項目的協(xié)同過濾推薦和基于內(nèi)容的推薦其實都是基于物品相似度預測推薦,只是相似度計算的方法不一樣掷漱,前者是從用戶歷史的偏好推斷粘室,而后者是基于物品本身的屬性特征信息。
同時協(xié)同過濾卜范,在基于用戶和基于項目兩個策略中應該如何選擇呢衔统?其實基于項目的協(xié)同過濾推薦機制是 Amazon 在基于用戶的機制上改良的一種策略,因為在大部分的 Web 站點中海雪,物品的個數(shù)是遠遠小于用戶的數(shù)量的锦爵,而且物品的個數(shù)和相似度相對比較穩(wěn)定,同時基于項目的機制比基于用戶的實時性更好一些奥裸。但也不是所有的場景都是這樣的情況险掀,可以設想一下在一些新聞推薦系統(tǒng)中,也許物品湾宙,也就是新聞的個數(shù)可能大于用戶的個數(shù)樟氢,而且新聞的更新程度也有很快,所以它的形似度依然不穩(wěn)定侠鳄。所以埠啃,其實可以看出,推薦策略的選擇其實和具體的應用場景有很大的關系伟恶。
步驟:1.收集用戶信息
同以用戶為基礎(User-based)的協(xié)同過濾碴开。
2.針對項目的最近鄰搜索
先計算已評價項目和待預測項目的相似度,并以相似度作為權重知押,加權各已評價項目的分數(shù)叹螟,得到待預測項目的預測值。例如:要對項目 A 和項目 B 進行相似性計算台盯,要先找出同時對 A 和 B 打過分的組合罢绽,對這些組合進行相似度計算,常用的算法同以用戶為基礎(User-based)的協(xié)同過濾静盅。
3.產(chǎn)生推薦結果
以項目為基礎的協(xié)同過濾不用考慮用戶間的差別良价,所以精度比較差寝殴。但是卻不需要用戶的歷史數(shù)據(jù),或是進行用戶識別明垢。對于項目來講蚣常,它們之間的相似性要穩(wěn)定很多,因此可以離線完成工作量最大的相似性計算步驟痊银,從而降低了在線計算量抵蚊,提高推薦效率,尤其是在用戶多于項目的情形下尤為顯著溯革。
3贞绳、基于模型(Model- based)的協(xié)同過濾
基于模型的協(xié)同過濾推薦就是基于樣本的用戶喜好信息,訓練一個推薦模型致稀,然后根據(jù)實時的用戶喜好的信息進行預測冈闭,計算推薦。
基于協(xié)同過濾的推薦機制是現(xiàn)今應用最廣泛的推薦機制抖单,它有以下幾個顯著優(yōu)點:
- 它不需要對物品或者用戶進行嚴格的建模萎攒,而且不要求物品的描述是機器可理解的,所以這種方法也是領域無關的矛绘。
- 這種方法計算出來的推薦是開放的耍休,可以共用他人的經(jīng)驗,很好的支持用戶發(fā)現(xiàn)潛在的興趣偏好
而它也存在以下幾個問題:
- 方法的核心是基于歷史數(shù)據(jù)货矮,所以對新物品和新用戶都有“冷啟動”的問題羹应。
- 推薦的效果依賴于用戶歷史偏好數(shù)據(jù)的多少和準確性。
- 在大部分的實現(xiàn)中次屠,用戶歷史偏好是用稀疏矩陣進行存儲的园匹,而稀疏矩陣上的計算有些明顯的問題,包括可能少部分人的錯誤偏好會對推薦的準確度有很大的影響等等劫灶。
- 對于一些特殊品味的用戶不能給予很好的推薦裸违。
- 由于以歷史數(shù)據(jù)為基礎,抓取和建模用戶的偏好后本昏,很難修改或者根據(jù)用戶的使用演變供汛,從而導致這個方法不夠靈活。
優(yōu)點
1涌穆、能夠過濾機器難以自動內(nèi)容分析的信息怔昨,如藝術品,音樂等宿稀。
2趁舀、共用其他人的經(jīng)驗,避免了內(nèi)容分析的不完全或不精確祝沸,并且能夠基于一些復雜的矮烹,難以表述的概念(如信息質(zhì)量越庇、個人品味)進行過濾。
3奉狈、有推薦新信息的能力卤唉。可以發(fā)現(xiàn)內(nèi)容上完全不相似的信息仁期,用戶對推薦信息的內(nèi)容事先是預料不到的桑驱。可以發(fā)現(xiàn)用戶潛在的但自己尚未發(fā)現(xiàn)的興趣偏好跛蛋。
4碰纬、推薦個性化、自動化程度高问芬、能夠有效的利用其他相似用戶的回饋信息、加快個性化學習的速度寿桨。
缺點
1此衅、新用戶問題(New User Problem) 系統(tǒng)開始時推薦質(zhì)量較差;
2亭螟、新項目問題(New Item Problem) 質(zhì)量取決于歷史數(shù)據(jù)集挡鞍;
3、稀疏性問題(Sparsity)预烙;
4墨微、系統(tǒng)延伸性問題(Scalability)。
-
案例
國外:AMAZON
Amazon 作為推薦引擎的鼻祖扁掸,它已經(jīng)將推薦的思想滲透在應用的各個角落翘县。Amazon 推薦的核心是通過數(shù)據(jù)挖掘算法和比較用戶的消費偏好于其他用戶進行對比,借以預測用戶可能感興趣的商品谴分。對應于上面介紹的各種推薦機制锈麸,Amazon 采用的是分區(qū)的混合的機制,并將不同的推薦結果分不同的區(qū)顯示給用戶
Amazon 利用可以記錄的所有用戶在站點上的行為牺蹄,根據(jù)不同數(shù)據(jù)的特點對它們進行處理忘伞,并分成不同區(qū)為用戶推送推薦:
1、今日推薦 (Today's Recommendation For You): 通常是根據(jù)用戶的近期的歷史購買或者查看記錄沙兰,并結合時下流行的物品給出一個折中的推薦氓奈。
2、新產(chǎn)品的推薦 (New For You): 采用了基于內(nèi)容的推薦機制 (Content-based Recommendation)鼎天,將一些新到物品推薦給用戶舀奶。在方法選擇上由于新物品沒有大量的用戶喜好信息,所以基于內(nèi)容的推薦能很好的解決這個“冷啟動”的問題斋射。
3伪节、 (Frequently Bought Together): 采用數(shù)據(jù)挖掘技術對用戶的購買行為進行分析光羞,找到經(jīng)常被一起或同一個人購買的物品集,進行捆綁銷售怀大,這是一種典型的基于項目的協(xié)同過濾推薦機制纱兑。
4、別人購買 / 瀏覽的商品 (Customers Who Bought/See This Item Also Bought/See): 這也是一個典型的基于項目的協(xié)同過濾推薦的應用化借,通過社會化機制用戶能更快更方便的找到自己感興趣的物品潜慎。
值得一提的是,Amazon 在做推薦時蓖康,設計和用戶體驗也做得特別獨到:
Amazon 利用有它大量歷史數(shù)據(jù)的優(yōu)勢铐炫,量化推薦原因。
基于社會化的推薦蒜焊,Amazon 會給你事實的數(shù)據(jù)倒信,讓用戶信服,例如:購買此物品的用戶百分之多少也購買了那個物品泳梆;
基于物品本身的推薦鳖悠,Amazon 也會列出推薦的理由,例如:因為你的購物框中有 ***优妙,或者因為你購買過 ***乘综,所以給你推薦類似的 ***。
另外套硼,Amazon 很多推薦是基于用戶的 profile 計算出來的卡辰,用戶的 profile 中記錄了用戶在 Amazon 上的行為,包括看了那些物品邪意,買了那些物品九妈,收藏夾和 wish list 里的物品等等,當然 Amazon 里還集成了評分等其他的用戶反饋的方式雾鬼,它們都是 profile 的一部分允蚣,同時,Amazon 提供了讓用戶自主管理自己 profile 的功能呆贿,通過這種方式用戶可以更明確的告訴推薦引擎他的品味和意圖是什么嚷兔。
國內(nèi)案例:豆瓣
當你在豆瓣電影中將一些你看過的或是感興趣的電影加入你看過和想看的列表里,并為它們做相應的評分做入,這時豆瓣的推薦引擎已經(jīng)拿到你的一些偏好信息冒晰。豆瓣的推薦是通過“豆瓣猜”,為了讓用戶清楚這些推薦是如何來的竟块,豆瓣還給出了“豆瓣猜”的一個簡要的介紹壶运。
“你的個人推薦是根據(jù)你的收藏和評價自動得出的,每個人的推薦清單都不同浪秘。你的收藏和評價越多蒋情,豆瓣給你的推薦會越準確和豐富埠况。
每天推薦的內(nèi)容可能會有變化。隨著豆瓣的長大棵癣,給你推薦的內(nèi)容也會越來越準辕翰。”
這一點讓我們可以清晰明了的知道狈谊,豆瓣必然是基于社會化的協(xié)同過濾的推薦喜命,這樣用戶越多,用戶的反饋越多河劝,那么推薦的效果會越來越準確壁榕。
小結
相對于 Amazon 的用戶行為模型,豆瓣電影的模型更加簡單赎瞎,就是“看過”和“想看”牌里,這也讓他們的推薦更加專注于用戶的品味,畢竟買東西和看電影的動機還是有很大不同的务甥。
另外牡辽,豆瓣也有基于物品本身的推薦,當你查看一些電影的詳細信息的時候缓呛,他會給你推薦出“喜歡這個電影的人也喜歡的電影
總結
在網(wǎng)絡數(shù)據(jù)爆炸的年代,如何讓用戶更快的找到想要的數(shù)據(jù)杭隙,如何讓用戶發(fā)現(xiàn)自己潛在的興趣和需求哟绊,無論是對于電子商務還是社會網(wǎng)絡的應用都是至關重要的。推薦引擎的出現(xiàn)痰憎,使得這個問題越來越被大家關注票髓。其實推薦引擎只是默默的記錄和觀察你的一舉一動,然后再借由所有用戶產(chǎn)生的海量數(shù)據(jù)分析和發(fā)現(xiàn)其中的規(guī)律铣耘,進而慢慢的了解你洽沟,你的需求,你的習慣蜗细,并默默的無聲息的幫助你快速的解決你的問題裆操,找到你想要的東西。