读书笔记 |《推荐系统实践》- 个性化推荐系统总结
-- 原創(chuàng),未經(jīng)授權(quán),禁止轉(zhuǎn)載 2017.11.15 --
推薦系統(tǒng)實踐
對于推薦系統(tǒng),本文總結(jié)內(nèi)容,如下圖所示:
推薦系統(tǒng).png
文章很長,你可以跳著看你感興趣的部分。
一、什么是推薦系統(tǒng)
1. 為什么需要推薦系統(tǒng)
結(jié)論是,為了解決互聯(lián)網(wǎng)時代下的信息超載問題。
看個數(shù)據(jù):
據(jù)IDC《數(shù)字宇宙》的研究報告表明,2020 年全球新建和復(fù)制的信息量將超過40ZB,是2012年的12倍;中國的數(shù)據(jù)量在2020年超過8ZB,比2012年增長22倍。
單位換算是這樣的:
1ZB = 1024 EB;
1EB = 1024 PB;
1PB = 1024 TB;
1TB = 1024 GB;
1GB = 1024 MB;
即便坐擁海量信息,用戶卻無法找到真正對自己有用的,可見效率之低。
從前,人們是這樣解決信息超載問題的:
-
現(xiàn)實中,我有個東西想買(有明確目的)
- 小便利店 --> 憑經(jīng)驗瀏覽所有貨架;
- 大型超市 --> 借助分類指示牌;
不知道買啥(沒有明確目的)
- 空間大,隨便逛
-
引申到互聯(lián)網(wǎng),有明確目的時
- 電商網(wǎng)站 --> 搜索引擎,信息檢索;
沒有明確目的時
- 巴掌大的地兒,靠個性化推薦
信息超載,不是互聯(lián)網(wǎng)獨有的,在現(xiàn)實生活也會存在這樣的問題,畢竟人的大腦同時能夠處理的信息只有4-7個,我們面對的問題從來沒有變過,區(qū)別在于當下的情況,所處的環(huán)境。
正如《大數(shù)據(jù)時代》中作者所言,這僅僅是一個開始,人們與世界的交流方式,從原來對因果關(guān)系的渴求,轉(zhuǎn)變?yōu)楝F(xiàn)在對相關(guān)關(guān)系的發(fā)現(xiàn)和使用上。
2. 搜索引擎與推薦系統(tǒng)
眾所周知,解決信息過載問題,最有代表性的解決方案是【分類目錄】和【搜索引擎】,這兩種解決方案分別催生了互聯(lián)網(wǎng)領(lǐng)域的兩家著名公司--雅虎和谷歌。
搜索引擎
- 分類目錄,是將著名網(wǎng)站分門別類,從而方便用戶根據(jù)類別查找公司。
但隨著互聯(lián)網(wǎng)規(guī)模不斷擴大,分類目錄網(wǎng)站只能涵蓋少數(shù)熱門網(wǎng)站,已無法滿足用戶需求。因此,搜索引擎誕生了。
- 搜索引擎,用戶通過輸入關(guān)鍵字,查找自己需要的信息。
但是,用戶必須主動提供準確的關(guān)鍵詞,才能找到信息。所以用戶的其他需求,比如用戶無法找到準確描述自己需求的關(guān)鍵詞時,搜索引擎就無能為力了。
- 推薦系統(tǒng),和搜索引擎一樣,是一種幫助用戶快速發(fā)展有用信息的工具。通過分析用戶的歷史行為,給用戶的興趣建模,從而主動給用戶推薦能夠滿足他們興趣和需求的信息。
并且,推薦系統(tǒng)能夠很好的發(fā)掘物品的長尾,挑戰(zhàn)傳統(tǒng)的2/8原則(80%的銷售額來自20%的熱門品牌)。
從技術(shù)角度來看,搜索引擎和推薦系統(tǒng)的區(qū)別在于:
1)搜索引擎,注重搜索結(jié)果之間的關(guān)系和排序;
2)推薦系統(tǒng),需要研究用戶的興趣模型,利用社交網(wǎng)絡(luò)的信息進行個性化的計算;
3)搜索引擎,由用戶主導(dǎo),需要輸入關(guān)鍵詞,自行選擇結(jié)果。如果結(jié)果不滿意,需要修改關(guān)鍵詞,再次搜索;
4)推薦系統(tǒng),由系統(tǒng)主導(dǎo),根據(jù)用戶的瀏覽順序,引導(dǎo)用戶發(fā)現(xiàn)自己感興趣的信息;
3. 推薦系統(tǒng)的定義
推薦系統(tǒng)通過發(fā)掘用戶的行為,找到用戶的個性化需求,從而將長尾物品準確推薦給需要它的用戶,幫助用戶找到他們感興趣但很難發(fā)現(xiàn)的物品。
高質(zhì)量的推薦系統(tǒng)會使用戶對系統(tǒng)產(chǎn)生依賴,因此,推薦系統(tǒng)不僅能為用戶提供個性化服務(wù),還能與用戶建立長期穩(wěn)定的關(guān)系,提高用戶忠誠度,防止用戶流失。
二、推薦系統(tǒng)評測
如何判定什么是好的推薦系統(tǒng)?這是評測需要解決的首要問題。
一般推薦系統(tǒng)的參與方有3個:
- 用戶
- 物品提供商
- 推薦系統(tǒng)提供網(wǎng)站
因此,評測一個推薦系統(tǒng)時,需要考慮3方的利益,一個好的推薦系統(tǒng)是能夠令三方共贏的系統(tǒng)。
推薦系統(tǒng)評測,總結(jié)圖如下:
推薦系統(tǒng)評測.png
1. 實驗方法
獲得評測指標的實驗方法,通常分3種:
- 離線實驗(offline experiment)
- 用戶調(diào)查(user study)
- 在線實驗(online experiment)
我們分別介紹3種實驗方法的優(yōu)缺點。
1)離線實驗
離線實驗的方法的步驟如下:
a)通過日志系統(tǒng)獲得用戶行為數(shù)據(jù),并按照一定格式生成一個標準的數(shù)據(jù)集;
b)將數(shù)據(jù)集按照一定的規(guī)則分成訓(xùn)練集和測試集;
c)在訓(xùn)練集上訓(xùn)練用戶興趣模型,在測試集上進行預(yù)測;
d)通過事先定義的離線指標,評測算法在測試集上的預(yù)測結(jié)果。
從以上步驟看出,離線實驗的都是在數(shù)據(jù)集上完成的。意味著,它不需要一個實際的系統(tǒng)作為支撐,只需要有一個從日志中提取的數(shù)據(jù)集即可。
離線實驗的優(yōu)點是:
- 不需要有對實際系統(tǒng)的控制權(quán);
- 不需要用戶參與實踐;
- 速度快,可以測試大量算法;
缺點是:
- 數(shù)據(jù)集的稀疏性限制了適用范圍,例如一個數(shù)據(jù)集中沒有包含某用戶的歷史行為,則無法評價對該用戶的推薦結(jié)果;
- 評價結(jié)果的客觀性,無法得到用戶主觀性的評價;
- 難以找到離線評價指標和在線真實反饋(如 點擊率、轉(zhuǎn)化率、點擊深度、購買客單價、購買商 品類別等)之間的關(guān)聯(lián)關(guān)系;
2)用戶調(diào)查
用戶調(diào)查需要一些真實的用戶,讓他們在需要測試的推薦系統(tǒng)上完成一些任務(wù)。在他們完成任務(wù)時,需要觀察和記錄用戶的行為,并讓他們回答一些問題。
最后,我們通過分析他們的行為和答案,了解測試系統(tǒng)的性能。
用戶調(diào)查的優(yōu)點是:
- 可以獲得用戶主觀感受的指標,出錯后容易彌補;
缺點是:
- 招募測試用戶代價較大;
- 無法組織大規(guī)模的測試用戶,統(tǒng)計意義不足;
3)在線實驗
在完成離線實驗和用戶調(diào)查之后,可以將系統(tǒng)上線做AB測試,將它和舊算法進行比較。
在線實驗最常用的評測算法是【A/B測試】,它通過一定的規(guī)則將用戶隨機分成幾組,對不同組的用戶采用不同的算法,然后通過統(tǒng)計不同組的評測指標,比較不同算法的好壞。
它的核心思想是:
a) 多個方案并行測試;
b) 每個方案只有一個變量不同;
c) 以某種規(guī)則優(yōu)勝劣汰。
其中第2點暗示了A/B 測試的應(yīng)用范圍:A/B測試必須是單變量。
對于推薦系統(tǒng)的評價中,唯一變量就是--推薦算法。
有個很棒的網(wǎng)站,http://www.abtests.com,里面有很多通過實際AB測試提高網(wǎng)站用戶滿意度的例子。
AB測試的優(yōu)點是:
- 可以公平獲得不同算法實際在線時的性能指標,包括商業(yè)上關(guān)注的指標;
缺點是:
- 周期較長,必須進行長期的實驗才能得到可靠的結(jié)果;
大型網(wǎng)站做AB測試,可能會因為不同團隊同時進行各種測試對結(jié)果造成干擾,所以切分流量是AB測試中的關(guān)鍵。
不同的層以及控制這些層的團隊,需要從一個統(tǒng)一的地方獲得自己AB測試的流量,而不同層之間的流量應(yīng)該是正交的。
AB測試系統(tǒng).png
4)總結(jié)
一般來說,一個新的推薦算法最終上線,需要完成上述的3個實驗。
- 首先,通過離線實驗證明它在很多離線指標上優(yōu)于現(xiàn)有的算法;
- 其次,通過用戶調(diào)查確定用戶滿意度不低于現(xiàn)有的算法;
- 最后,通過在線AB測試確定它在我們關(guān)心的指標上優(yōu)于現(xiàn)有的算法;
2. 評測指標
評測指標用于評測推薦系統(tǒng)的性能,有些可以定量計算,有些只能定性描述。
1)用戶滿意度
用戶滿意度是評測推薦系統(tǒng)的重要指標,無法離線計算,只能通過用戶調(diào)查或者在線實驗獲得。
調(diào)查問卷,需要考慮到用戶各方面的感受,用戶才能針對問題給出準確的回答。
在線系統(tǒng)中,用戶滿意度通過統(tǒng)計用戶行為得到。比如用戶如果購買了推薦的商品,就表示他們在一定程度上滿意,可以用購買率度量用戶滿意度。
一般情況,我們可以用用戶點擊率、停留時間、轉(zhuǎn)化率等指標度量用戶的滿意度。
2)預(yù)測準確度
預(yù)測準確度,度量的是推薦系統(tǒng)預(yù)測用戶行為的能力。 是推薦系統(tǒng)最重要的離線評測指標。
大部分的關(guān)于推薦系統(tǒng)評測指標的研究,都是針對預(yù)測準確度的。因為該指標可以通過離線實驗計算,方便了學(xué)術(shù)界的研究人員。
由于離線的推薦算法有不同的研究方向,準確度指標也不同,根據(jù)研究方向,可分為:預(yù)測評分準確度和TopN推薦。
a)預(yù)測評分準確度
預(yù)測評分的準確度,衡量的是算法預(yù)測的評分與用戶的實際評分的貼近程度。
這針對于一些需要用戶給物品評分的網(wǎng)站。
預(yù)測評分的準確度指標,一般通過以下指標計算:
-
平均絕對誤差(MAE)
- MAE.png
MAE因其計算簡單、通俗易懂得到了廣泛的應(yīng)用。但MAE指標也有一定的局限性,因為對MAE指標貢獻比較大的往往是那種很難預(yù)測準確的低分商品。
所以即便推薦系統(tǒng)A的MAE值低于系統(tǒng)B,很可能只是由于系統(tǒng)A更擅長預(yù)測這部分低分商品的評分,即系統(tǒng)A比系統(tǒng)B能更好的區(qū)分用戶非常討厭和一般討厭的商品,顯然這樣區(qū)分的意義不大。
-
均方根誤差(RMSE)
RMSE.png
Netflix認為RMSE加大了對預(yù)測不準的用戶物品評分的懲罰(平方項的懲罰),因而對系統(tǒng)的評測更加苛刻。
研究表明,如果評分系統(tǒng)是基于整數(shù)建立的(即用戶給的評分都是整數(shù)),那么對預(yù)測結(jié)果取整數(shù)會降低MAE的誤差。
b)TopN推薦
網(wǎng)站提供推薦服務(wù)時,一般是給用戶一個個性化的推薦列表,這種推薦叫做TopN推薦。
TopN推薦的預(yù)測準確率,一般通過2個指標度量:
-
準確率(precision)
-
召回率(recall)
R(u)是根據(jù)用戶在訓(xùn)練集上的行為給用戶做出的推薦列表,T(u)是用戶在測試集上的行為列表。
TopN推薦更符合實際的應(yīng)用需求,比如預(yù)測用戶是否會看一部電影,比預(yù)測用戶看了電影之后會給它什么評分更重要。
3)覆蓋率
覆蓋率(coverage)是描述一個推薦系統(tǒng)對物品長尾的發(fā)掘能力。
最簡單的定義是,推薦系統(tǒng)推薦出來的物品占總物品的比例。
假設(shè)系統(tǒng)的用戶集合為U,推薦系統(tǒng)給每個用戶推薦一個長度為N的物品列表R(u),覆蓋率公式為:
覆蓋率是內(nèi)容提供者關(guān)心的指標,覆蓋率為100%的推薦系統(tǒng)可以將每個物品都推薦給至少一個用戶。
除了推薦物品的占比,還可以通過研究物品在推薦列表中出現(xiàn)的次數(shù)分布,更好的描述推薦系統(tǒng)的挖掘長尾的能力。
如果分布比較平,說明推薦系統(tǒng)的覆蓋率很高;如果分布陡峭,說明分布系統(tǒng)的覆蓋率較低。
信息論和經(jīng)濟學(xué)中有兩個著名指標,可以定義覆蓋率:
- 信息熵
p(i)是物品i的流行度除以所有物品流行度之和。
-
基尼系數(shù)(Gini Index)
p(ij)是按照物品流行度p()從小到大排序的物品列表中第j個物品。
-
- 評測馬太效應(yīng)
馬太效應(yīng),是指強者越強,弱者越弱的效應(yīng)。推薦系統(tǒng)的初衷是希望消除馬太效應(yīng),使得各物品都能被展示給對它們感興趣的人群。
但是,很多研究表明,現(xiàn)在的主流推薦算法(協(xié)同過濾)是具有馬太效應(yīng)的。評測推薦系統(tǒng)是否具有馬太效應(yīng)可以使用基尼系數(shù)。
如,G1是從初始用戶行為中計算出的物品流行度的基尼系數(shù),G2是從推薦列表中計算出的物品流行度的基尼系數(shù),那么如果G1>G2,就說明推薦算法具有馬太效應(yīng)。
4)多樣性
為了滿足用戶廣泛的興趣,推薦列表需要能夠覆蓋用戶不同興趣的領(lǐng)域,即需要具有多樣性。
多樣性描述了推薦列表中物品兩兩之間的不相似性。假設(shè)s(i,j)在[0,1]區(qū)間定義了物品i和j之間的相似度,那么用戶u的推薦列表R(u)的多樣性定義如下:
推薦系統(tǒng)整體多樣性可以定義為所有用戶推薦列表多樣性的平均值:
推薦系統(tǒng)整體多樣性可以定義為所有用戶推薦列表多樣性的平均值:
5)新穎性
新穎性也是影響用戶體驗的重要指標之一。它指的是向用戶推薦非熱門非流行物品的能力。
評測新穎度最簡單的方法,是利用推薦結(jié)果的平均流行度,因為越不熱門的物品,越可能讓用戶覺得新穎。
此計算比較粗糙,需要配合用戶調(diào)查準確統(tǒng)計新穎度。
6)驚喜度
推薦結(jié)果和用戶的歷史興趣不相似,但卻讓用戶滿意,這樣就是驚喜度很高。
目前驚喜度還沒有公認的指標定義方式,最近幾年研究的人很多,深入研究可以參考一些論文。
7)信任度
如果用戶信任推薦系統(tǒng),就會增加用戶和推薦系統(tǒng)的交互。
提高信任度的方式有兩種:
-
增加系統(tǒng)透明度
提供推薦解釋,讓用戶了解推薦系統(tǒng)的運行機制。 -
利用社交網(wǎng)絡(luò),通過好友信息給用戶做推薦
通過好友進行推薦解釋
度量信任度的方式,只能通過問卷調(diào)查。
8)實時性
推薦系統(tǒng)的實時性,包括兩方面:
- 實時更新推薦列表滿足用戶新的行為變化;
- 將新加入系統(tǒng)的物品推薦給用戶;
9)健壯性
任何能帶來利益的算法系統(tǒng)都會被攻擊,最典型的案例就是搜索引擎的作弊與反作弊斗爭。
健壯性(robust,魯棒性)衡量了推薦系統(tǒng)抗擊作弊的能力。
2011年的推薦系統(tǒng)大會專門有一個推薦系統(tǒng)健壯性的教程,作者總結(jié)了很多作弊方法,最著名的是行為注入攻擊(profile injection attack)。
就是注冊很多賬號,用這些賬號同時購買A和自己的商品。此方法針對亞馬遜的一種推薦方法,“購買商品A的用戶也經(jīng)常購買的其他商品”。
評測算法的健壯性,主要利用模擬攻擊:
a)給定一個數(shù)據(jù)集和算法,用算法給數(shù)據(jù)集中的用戶生成推薦列表;
b)用常用的攻擊方法向數(shù)據(jù)集中注入噪聲數(shù)據(jù);
c)利用算法在有噪聲的數(shù)據(jù)集上再次生成推薦列表;
d)通過比較攻擊前后推薦列表的相似度評測算法的健壯性。
提高系統(tǒng)健壯性的方法:
- 選擇健壯性高的算法;
- 選擇代價較高的用戶行為,如購買行為比瀏覽行為代價高;
- 在使用數(shù)據(jù)前,進行攻擊檢測,從而對數(shù)據(jù)進行清理。
10)商業(yè)目標
設(shè)計推薦系統(tǒng)時,需要考慮最終的商業(yè)目標。不同網(wǎng)站具有不同的商業(yè)目標,它與網(wǎng)站的盈利模式息息相關(guān)。
總結(jié):
作者認為,對于可以離線優(yōu)化的指標,在給定覆蓋率、多樣性、新穎性等限制條件下,應(yīng)盡量優(yōu)化預(yù)測準確度。
3. 評測維度
增加評測維度的目的,就是知道一個算法在什么情況下性能最好。
一般評測維度分3種:
- 用戶維度
主要包括用戶的人口統(tǒng)計學(xué)信息、活躍度以及是不是新用戶等; - 物品維度
包括物品的屬性信息、流行度、平均分以及是不是新加入的物品等; - 時間維度
包括季節(jié),是工作日還是周末,白天還是晚上等;
如果推薦系統(tǒng)的評測報告中,包含了不同維度下的系統(tǒng)評測指標,就能幫我們?nèi)媪私庀到y(tǒng)性能。
三、推薦算法通用模型
1. 推薦算法通用模型
推薦系統(tǒng)有3個重要的模塊:
- 用戶建模模塊
- 推薦對象建模模塊
- 推薦算法模塊
通用的推薦系統(tǒng)模型流程如圖,技術(shù)一點的描述過程如下:
a)推薦系統(tǒng)通過用戶行為,建立用戶模型;
b)通過物品的信息,建立推薦對象模型;
c)通過用戶興趣匹配物品的特征信息,再經(jīng)過推薦算法計算篩選,找到用戶可能感興趣的推薦對象,然后推薦給用戶。
-
用戶建模模塊
建立用戶模型之前,需要考慮下面幾個問題:
(1)模型的輸入數(shù)據(jù)有哪些,如何獲取模型的輸入數(shù)據(jù)。
(2)如何考慮用戶的興趣及需求的變化。
(3)建模的對象是誰。
(4)如何建模。(5)模型的輸出是什么。
獲取用戶信息就是解決模型輸入數(shù)據(jù)的問題,輸入數(shù)據(jù)主要有以下幾種:
(1)用戶屬性:人口統(tǒng)計學(xué)信息;(2)用戶手動輸入的信息:包括用戶在搜索引擎中輸入的關(guān)鍵詞,用戶反饋的信息,對推薦對象的喜好程度等;
(3)用戶的瀏覽行為和瀏覽內(nèi)容:包括瀏覽次數(shù)、頻率、停留時間等,瀏覽頁面時的操作(收藏、保存、復(fù)制等)等。服務(wù)器端保存的日志也能較好地記錄用戶的瀏覽行為和內(nèi)容。
(4)推薦對象的屬性特征:不同的推薦對象,用戶建模的輸入數(shù)據(jù)也不同。網(wǎng)頁等推薦對象通常考慮對象的內(nèi)容和用戶之間的相似性,而產(chǎn)品等推薦對象通常考慮用戶對產(chǎn)品的評價。
為提高推薦質(zhì)量,推薦對象的相關(guān)的屬性也要考慮進去,比如除網(wǎng)頁內(nèi)容以外,還要考慮網(wǎng)頁的發(fā)布人、時間等。
產(chǎn)品類的對象還要考慮產(chǎn)品的品牌、價格、出售時間等。
獲取模型輸入數(shù)據(jù)的方式有顯式獲取、隱式獲取和啟發(fā)式獲取三種方式。
用戶模型的建模方法主要有遺傳算法、基于機器學(xué)習的 方法,例如 TF-IDF、自動聚類、貝葉斯分類器、決策樹歸納和神經(jīng)網(wǎng)絡(luò)方法等。
- 推薦對象建模
考慮以下幾個問題:
(1)提取推薦對象的什么特征,如何提取,提取的特征用于什么目的。
(2)對象的特征描述和用戶文件描述之間有關(guān)聯(lián)。
(3)提取到的每個對象特征對推薦結(jié)果會有什么影響。
(4)對象的特征描述文件能否自動更新。
2. 算法模塊
目前主要的推薦算法,如下圖所示。
推薦算法是整個推薦系統(tǒng)中最核心的部分,在很大程度上決定了推薦系統(tǒng)類型和性能的優(yōu)劣。
四、推薦算法詳述
1)基于內(nèi)容的推薦
原理是基于用戶感興趣的物品A,找到和A內(nèi)容信息相近的物品B。
利用用戶和物品本身的內(nèi)容特征,如用戶的地理位置、性別、年齡,電影物品的導(dǎo)演、演員、發(fā)布時間等。
比如你喜歡看《怪奇物語I》,系統(tǒng)會給你推薦《怪奇物語II》。
所以提取推薦對象的特征,是內(nèi)容推薦算法的關(guān)鍵。但是對于多媒體內(nèi)容,如視頻、音樂,很難找到它們之間的特性關(guān)聯(lián)性。
基于內(nèi)容的推薦的優(yōu)點如下:
(1) 簡單、有效,推薦結(jié)果直觀,容易理解,不需要領(lǐng)域知識。
(2) 不需要用戶的歷史數(shù)據(jù),如對對象的評價等。
(3) 沒有關(guān)于新推薦對象出現(xiàn)的冷啟動問題。
(4) 沒有稀疏問題。
(5) 算法成熟,如數(shù)據(jù)挖掘、聚類分析等。
基于內(nèi)容的推薦的缺點如下:
(1) 受到了推薦對象特征提取能力的限制。
比如圖像、視頻,沒有有效的特征提取方法。即便是文本資源,特征提取也只能反應(yīng)一部分內(nèi)容,難以提取內(nèi)容質(zhì)量,會影響用戶滿意度。
(2) 很難出現(xiàn)新的推薦結(jié)果。
根據(jù)用戶興趣的喜好進行推薦,很難出現(xiàn)驚喜。對于時間敏感的內(nèi)容,如新聞,推薦內(nèi)容基本相同,體驗度較差。
(3)存在新用戶出現(xiàn)時的冷啟動問題。
當新用戶出現(xiàn)時, 系統(tǒng)較難獲得該用戶的興趣偏好,無法進行有效推薦。
(4) 推薦對象內(nèi)容分類方法需要的數(shù)據(jù)量較大。
2)協(xié)同過濾算法
僅僅基于用戶行為數(shù)據(jù)設(shè)計的推薦算法,稱為協(xié)同過濾算法。此方法主要根據(jù)用戶對物品的歷史行為,尋找用戶或物品的近鄰集合,以此計算用戶對物品的偏好。
主要的算法分3種,最廣泛應(yīng)用的是基于領(lǐng)域的方法:
a) 基于領(lǐng)域的模型算法
主要包含兩種算法:
i) 基于用戶的協(xié)同過濾算法(UserCF)
這種算法給用戶推薦和他興趣相似的其他用戶喜歡的物品。
- 算法步驟:
(1) 找到和目標用戶興趣相似的用戶集合;
(2) 找到這個集合中的用戶喜歡的,且目標用戶沒有聽說過的物品,推薦給目標用戶。
算法的關(guān)鍵是計算兩個用戶的興趣相似度。協(xié)同過濾計算用戶興趣相似度是利用用戶行為的相似度。
UserCF
- 計算用戶相似度的方法有3種:
- 余弦相似性
- 相關(guān)相似性(皮爾森系數(shù)相關(guān))
- 修正的余弦相似性
計算用戶興趣相似度時,要避免熱門物品自帶馬太效應(yīng)的影響。換句話說,兩個用戶對冷門物品采取過同樣行為,更能說明他們的興趣相似。
- 缺點:
- 用戶數(shù)目越大,計算用戶興趣相似度越復(fù)雜,時間、空間復(fù)雜度的增長和用戶數(shù)的增長近似于平方關(guān)系。
- 解釋性不強
ii) 基于物品的協(xié)同過濾算法(ItemCF)
這種算法給用戶推薦和他之前喜歡的物品相似的物品。
該算法是目前業(yè)界應(yīng)用最多的算法,如亞馬遜、Netflix、YouTube,都是以該算法為基礎(chǔ)。
-
ItemCF 與 基于內(nèi)容的推薦算法的區(qū)別
- 基于內(nèi)容的推薦算法,計算的是物品內(nèi)容屬性之間的相似度。如,電影的導(dǎo)演是不是同一個人;
- ItemCF是通過用戶的行為計算物品之間的相似度。如,物品A、B具有很大相似度,是因為喜歡物品A的用戶也大都喜歡物品B。
-
算法步驟:
(1) 根據(jù)用戶的歷史行為,計算物品之間的相似度;
(2) 根據(jù)物品的相似度和用戶的歷史行為給用戶生成推薦列表。
兩個物品產(chǎn)生相似度,是因為它們共同被很多用戶喜歡,也就是說,每個用戶都可以通過它們的歷史興趣列表給物品“貢獻”相似度。
ItemCF
-
用戶活躍度對物品相似度的影響
IUF(Inverse User Frequence),用戶活躍度對數(shù)的倒數(shù)的參數(shù)。
論文提出的觀點是,活躍用戶對物品相似度的貢獻應(yīng)該小于不活躍的用戶。用IUF修正物品相似度的計算。 -
物品相似度的歸一化
研究表明,將ItemCF的相似度矩陣按最大值歸一,可以提高推薦的準確率。 -
UserCF 與 ItemCF 的優(yōu)缺點
b) 隱語義模型算法
LFM(latent factor model)隱語義模型是最近幾年推薦系統(tǒng)領(lǐng)域最熱門的話題,它的核心思想是通過隱含特征聯(lián)系用戶興趣和物品。
i)隱語義模型解決了什么問題
比如,用戶A的興趣列表里,有關(guān)于偵探小說、科普圖書和計算機技術(shù)圖書。用戶B的興趣列表集中在數(shù)學(xué)和機器學(xué)習方面。
如何給用戶A和B推薦圖書?
除了UserCF與ItemCF,還可以對書和物品的興趣進行分類。對于某個用戶,首先得到他的興趣分類,然后從分類中挑選他可能喜歡的物品。
-
基于興趣分類的方法,大概需要解決的問題:
- 如何給物品進行分類?
- 如何確定用戶對哪類物品感興趣,以及感興趣程度?
- 對于一個給定的分類,選擇哪些屬于這個類的物品推薦給用戶,以及如何確定這些物品在一個類中的權(quán)重?
-
人工編輯分類存在的問題:
- 編輯的意見不能代表各種用戶的意見。
- 編輯很難控制分類的粒度。
- 編輯很難給一個物品多個分類。
- 編輯很難給出多維度的分類。
- 編輯很難決定一個物品在某一個分類的權(quán)重。
-
隱語義分析技術(shù)解決了上述5個問題:
- 用戶的行為代表了用戶對物品分類的看法。比如,如果兩個物品被很多用戶同時喜歡,這個兩個物品很可能屬于同一類。
- 隱語義技術(shù)允許我們指定最終的分類數(shù)目,分類數(shù)越多,分類粒度越細。
- 隱語義技術(shù)可以計算出物品屬于每個類的權(quán)重,因為每個物品不是硬性地被分到一個類目中。
- 隱語義技術(shù)給出的每個分類都不是一個維度,它根據(jù)用戶的共同興趣計算得出。
- 隱語義技術(shù)可以通過統(tǒng)計用戶行為決定物品在每個類中的權(quán)重,如果喜歡某個類的用戶都會喜歡某個物品,那么這個物品在這個類中的權(quán)重就可能較高。
隱語義技術(shù)有很多著名的模型和方法,其中耳熟能詳?shù)拿~有pLSA、LDA、隱含類別模型、隱含主題模型、矩陣分解。這些技術(shù)和方法在本質(zhì)上是相同的,都可以用于個性化推薦系統(tǒng)。
ii)LFM算法詳解
LFM公式
推薦系統(tǒng)的用戶行為分為顯性反饋和隱性反饋,LFM在顯性反饋數(shù)據(jù)(評分數(shù)據(jù))上解決評分預(yù)測問題達到了很好的精度。
對于隱性反饋數(shù)據(jù),這種數(shù)據(jù)集的特點是,只有正樣本(用戶喜歡什么物品),沒有負樣本(用戶對什么物品不感興趣)。
在隱性反饋數(shù)據(jù)集上應(yīng)用LFM解決TopN推薦,第一個關(guān)鍵問題是如何給每個用戶生成負樣本。
- 對于這個問題,Rong Pan在文章中做了很多探討,對比了如下幾種方法:
- 1)對于一個用戶,用他所有沒有過行為的物品作為負樣本。
- 2)對于一個用戶,從他沒有過行為的物品中均勻采樣出一些物品作為負樣本。
- 3)對于一個用戶,從他沒有過行為的物品中采樣出一些物品作為負樣本,但采樣時,保證每個用戶的正負樣本數(shù)目相當。
- 4)對于一個用戶,從他沒有過行為的物品中采樣出一些物品作為負樣本,但采樣時,偏重采樣不熱門的物品。
對于1),它的明顯缺點是負樣本太多,正負樣本數(shù)目相差懸殊,因而計算復(fù)雜度很高,最終結(jié)果的精度也很差。另外三種方法的效果,作者表示,3)> 2)> 4)。
- 對負樣本的采樣還應(yīng)該遵循以下原則:
- 對每個用戶,要保證負樣本的平衡(數(shù)目相似)
- 對每個用戶采樣負樣本時,要選取那些很熱門,而用戶卻沒有行為的物品。
通過離線實驗對比LFM在TopN推薦中的性能,在LFM中,有4個重要參數(shù):
- 隱特征的個數(shù)F;
- 學(xué)習速率alpha;
- 正則化參數(shù)lambda;
- 負樣本/正樣本比例ratio;
實驗表明,ratio參數(shù)對LFM的性能影響最大。
iii)基于LMF的實際系統(tǒng)的例子
雅虎的研究人員公布過一個使用LFM進行雅虎首頁個性化設(shè)計的方案。
LFM的缺點是,很難實現(xiàn)實時的推薦。
經(jīng)典的LFM模型每次訓(xùn)練時,需要掃描所有用戶的行為記錄,這樣才能計算出用戶隱類向量和物品隱類向量。所以一般每天只訓(xùn)練一次。
雅虎的解決方案是:
- 利用新聞鏈接的內(nèi)容屬性(關(guān)鍵詞、類別等)得到鏈接的內(nèi)容特征向量;
- 實時收集用戶對鏈接的行為,并用這些數(shù)據(jù)得到鏈接的隱特征向量;
- 利用公式預(yù)測用戶是否會單擊鏈接。
iiii)LFM和基于領(lǐng)域的方法區(qū)別
總結(jié)如下圖:
c) 基于圖的模型
用戶行為很容易用二分圖表示,因此很多圖的算法都可以用到推薦系統(tǒng)中。也可以把基于領(lǐng)域的模型看做是基于圖的模型的簡單形式。
i)用戶行為數(shù)據(jù)的二分圖表示
基于圖的模型(graph-based model)是推薦系統(tǒng)中的重要內(nèi)容,其基本思想是將用戶行為數(shù)據(jù)表示為一系列的二元組。
每一個二元組(u,i)代表用戶u對物品 i 產(chǎn)生過行為,這樣便可以將這個數(shù)據(jù)集表示為一個二分圖。
下圖是一個簡單的用戶物品二分圖模型,其中圓形節(jié)點代表用戶,方形節(jié)點代表物品,圓形節(jié)點和方形節(jié)點之間的邊代表用戶對物品的行為。比如圖中用戶節(jié)點A和物品節(jié)點a、b、d相連,說明用戶A對物品a、b、d產(chǎn)生過行為。
ii)基于圖的推薦算法
基于用戶行為二分圖,給用戶u推薦物品,可以轉(zhuǎn)化為計算用戶頂點u和與所有物品頂點之間的相關(guān)性,然后取與用戶沒有直接邊相連的物品,按照相關(guān)性的高低生成推薦列表。
其實,這是一個圖上的排名問題,最著名的就是Google的pageRank算法。
-
度量圖中兩個頂點之間相關(guān)性,一般取決于3個因素:
- 兩個頂點之間的路徑數(shù);
- 兩個頂點之間的路徑長度;
- 兩個頂點之間的路徑經(jīng)過的頂點;
-
相關(guān)性高的兩個頂點,一般具有以下特征:
- 兩個頂點之間有很多路徑相連;
- 鏈接兩個頂點之間的路徑長度都比較短;
- 鏈接兩個頂點之間的路徑不會經(jīng)過出度比較大的頂點。
iii)PageRank算法簡介
PageRank是Larry Page 和 Sergey Brin設(shè)計的,用來衡量特定網(wǎng)頁相對于搜索引擎中其他網(wǎng)頁的重要性的算法,其計算結(jié)果作為Google搜索結(jié)果中網(wǎng)頁排名的重要指標。
網(wǎng)頁之間通過超鏈接相互連接,互聯(lián)網(wǎng)上不計其數(shù)的網(wǎng)頁就構(gòu)成了一張超大的圖。
PageRank假設(shè)用戶從所有網(wǎng)頁中隨機選擇一個網(wǎng)頁進行瀏覽,然后通過超鏈接在網(wǎng)頁直接不斷跳轉(zhuǎn)。到達每個網(wǎng)頁后,用戶有兩種選擇:到此結(jié)束或者繼續(xù)選擇一個鏈接瀏覽。
算法令用戶繼續(xù)瀏覽的概率為d,用戶以相等的概率在當前頁面的所有超鏈接中隨機選擇一個繼續(xù)瀏覽。
這是一個隨機游走的過程。
當經(jīng)過很多次這樣的游走之后,每個網(wǎng)頁被訪問用戶訪問到的概率就會收斂到一個穩(wěn)定值。這個概率就是網(wǎng)頁的重要性指標,被用于網(wǎng)頁排名。算法迭代關(guān)系式如下所示:
上式中PR(i)是網(wǎng)頁i的訪問概率(也就是重要度),d是用戶繼續(xù)訪問網(wǎng)頁的概率,N是網(wǎng)頁總數(shù)。in(i)表示指向網(wǎng)頁i的網(wǎng)頁集合,out(j)表示網(wǎng)頁j指向的網(wǎng)頁集合。
iiii)PersonalRank算法簡介
對于推薦系統(tǒng),我們需要計算的是物品節(jié)點相對于某一個用戶節(jié)點u的相關(guān)性。
Standford的Haveliwala于2002年在他《Topic-sensitive pagerank》一文中提出了PersonalRank算法,該算法能夠為用戶個性化的對所有物品進行排序。它的迭代公式如下:
我們發(fā)現(xiàn)PersonalRank跟PageRank的區(qū)別只是用ri替換了1/N,也就是說從不同點開始的概率不同。
我們重新描述一下算法的過程:
假設(shè)要給用戶u進行個性化推薦,可以從用戶u對應(yīng)的節(jié)點Vu開始在用戶物品二分圖上進行隨機游走。
游走到任何一個節(jié)點時,首先按照概率α決定是繼續(xù)游走,還是停止這次游走并從Vu節(jié)點開始重新游走。如果決定繼續(xù)游走,那么就從當前節(jié)點指向的節(jié)點中按照均勻分布隨機選擇一個節(jié)點作為游走下次經(jīng)過的節(jié)點。
這樣,經(jīng)過很多次隨機游走后,每個物品節(jié)點被訪問到的概率會收斂到一個數(shù)。最終的推薦列表中物品的權(quán)重就是物品節(jié)點的訪問概率。
- 缺點
PersonalRank每次都需要在全圖迭代,所以時間復(fù)雜度非常高。
解決辦法是,- 減少迭代次數(shù),在收斂前停止。會影響精度,但影響不大。
- 從矩陣論出發(fā),重新設(shè)計算法。
3)基于關(guān)聯(lián)規(guī)則的推薦
主要用于購物車分析。
(以下內(nèi)容摘自網(wǎng)絡(luò))
關(guān)聯(lián)規(guī)則是反映一個事物與其他事物之間的相互依存性和關(guān)聯(lián)性,常用于實體商店或在線電商的推薦系統(tǒng):通過對顧客的購買記錄數(shù)據(jù)庫進行關(guān)聯(lián)規(guī)則挖掘,最終目的是發(fā)現(xiàn)顧客群體的購買習慣的內(nèi)在共性。
例如購買產(chǎn)品A的同時也連帶購買產(chǎn)品B的概率,根據(jù)挖掘結(jié)果,調(diào)整貨架的布局陳列、設(shè)計促銷組合方案,實現(xiàn)銷量的提升,最經(jīng)典的應(yīng)用案例莫過于<啤酒和尿布>。
關(guān)聯(lián)規(guī)則分析中的關(guān)鍵概念包括:支持度(Support)、置信度(Confidence)與提升度(Lift)。首先,我們簡單溫故下這3個關(guān)鍵指標~
1、支持度 (Support):支持度是兩件商品(A∩B)在總銷售筆數(shù)(N)中出現(xiàn)的概率,即A與B同時被購買的概率。類似于中學(xué)學(xué)的交集,需要原始同時滿足條件。
公式:
例子說明:
比如某超市2016年有100w筆銷售,顧客購買可樂又購買薯片有20w筆,顧客購買可樂又購買面包有10w筆,那可樂和薯片的關(guān)聯(lián)規(guī)則的支持度是20%,可樂和面包的支持度是10%。
2、置信度 (Confidence):置信度是購買A后再購買B的條件概率。簡單來說就是交集部分C在A中比例,如果比例大說明購買A的客戶很大期望會購買B商品。
公式:
例子說明:
某超市2016年可樂購買次數(shù)40w筆,購買可樂又購買了薯片是30w筆,顧客購買可樂又購買面包有10w筆,則購買可樂又會購買薯片的置信度是75%,購買可樂又購買面包的置信度是25%,這說明買可樂也會買薯片的關(guān)聯(lián)性比面包強,營銷上可以做一些組合策略銷售。
3、提升度 (Lift):提升度表示先購買A對購買B的概率的提升作用,用來判斷規(guī)則是否有實際價值,即使用規(guī)則后商品在購物車中出現(xiàn)的次數(shù)是否高于商品單獨出現(xiàn)在購物車中的頻率。如果大于1說明規(guī)則有效,小于1則無效。
公式:
例子說明:
可樂和薯片的關(guān)聯(lián)規(guī)則的支持度是20%,購買可樂的支持度是3%,購買薯片的支持度是5%,則提升度是1.33>1, A-B規(guī)則對于商品B有提升效果。
4)基于知識推薦
基于知識的推薦(Knowledge-based Recommendation),主要應(yīng)用于知識型的產(chǎn)品中,主要解決的問題是,為你量身定制升級打怪的進階路線圖。
比如你想學(xué)習鋼琴,如果你是剛?cè)腴T的小白,那你最好從簡單的譜子學(xué)起。但這樣帶來一個問題,是因為你的歷史行為都在初級范圍之內(nèi),根據(jù)興趣偏好,推薦給你的信息也都在初級范圍。無法滿足你的升級需求。
這個時候就需要基于知識的推薦。推薦系統(tǒng)知道你現(xiàn)在所處的知識級別(用戶知識),也知道學(xué)習鋼琴所有的級別(產(chǎn)品知識),然后根據(jù)你現(xiàn)在的情況為你推薦適合你進階的信息。
以上為個人理解,百度百科的解釋為:
使用用戶知識和產(chǎn)品知識, 通過推理什么產(chǎn)品能滿足用戶需求來產(chǎn)生推薦。這種推薦系統(tǒng)不依賴于用戶評分等關(guān)于用戶偏好的歷史數(shù)據(jù), 故其不存在冷啟動方面的問題。基于知識的推薦系統(tǒng)響應(yīng)用戶的即時需求, 當用戶偏好發(fā)生變化時不需要任何訓(xùn)練。
舉例:
針對海量習題帶來的信息過載導(dǎo)致學(xué)習針對性不強、效率不高等問題,提出了基于知識點層次圖的個性化習題推薦算法(A Personalized Exercises Recommendation Algorithm based on Knowledge Hierarchical Graph,ReKHG)。
首先,借鑒課程知識點體系結(jié)構(gòu)的特點,構(gòu)建了表征知識點層次關(guān)系的權(quán)重圖,該權(quán)重圖有效反映知識點間的層次關(guān)系。
然后,根據(jù)學(xué)生對知識點的掌握情況,在知識點層次圖的基礎(chǔ)上提出了一種個性化習題推薦算法。該算法通過更新學(xué)生-知識點失分率矩陣,獲取學(xué)生掌握薄弱的知識點,以此實現(xiàn)習題推薦。
ps:以上舉例來自于某論文,沒有用于實際案例中。關(guān)于知識推薦,沒有找到太多實際案例,國外的論文論述的比較多一些。
5)混合推薦
每個算法都不是完美的,因此實際應(yīng)用中,可以混合使用各種推薦算法,各取所長。
五、推薦算法數(shù)據(jù)來源
1. 利用用戶行為信息
用戶行為數(shù)據(jù)一般存于日志中。
用戶行為可以分為:顯性反饋行為和隱性反饋行為。
互聯(lián)網(wǎng)上的很多數(shù)據(jù)分布滿足一種稱為Power Law的分布,稱為長尾分布。
2. 利用用戶標簽數(shù)據(jù)
推薦系統(tǒng)聯(lián)系用戶和物品的幾種途徑
推薦系統(tǒng)的目的是聯(lián)系用戶的興趣和物品,這種聯(lián)系需要依賴不同的媒介。目前流行的有3種方式:物品、用戶、特征。
前兩種我們都很熟悉,特征有不同的表現(xiàn)形式,可以是物品的屬性集合,可以是隱語義向量,這里我們用標簽表示。
- 標簽分兩類
- 讓作者或者專家給物品打標簽
- 讓普通用戶給物品打標簽,即UGC標簽應(yīng)用,既描述了用戶的興趣又將表達了物品的語義。
以豆瓣為例,打標簽作為一種用戶重要的行為,蘊含了豐富的用戶興趣信息。
-
標簽推薦系統(tǒng)算法
- 統(tǒng)計每個用戶最常用的標簽
- 對于每個標簽,統(tǒng)計被打過這個標簽次數(shù)最多的物品
- 對于一個用戶,首先找到他常用的標簽,然后找到具有這些標簽的最熱門物品推薦給這個用戶
-
算法改進:
- TF-IDF,降低熱門標簽的權(quán)重,使推薦結(jié)果更準確
- 數(shù)據(jù)稀疏性:對于新用戶或者新物品來說,其標簽數(shù)量可能過少,需要對標簽進行擴展,即對每個標簽找到和它相似的標簽,也就是計算標簽相似度。(拓展方法--話題模型)
- 標簽清理:清理掉同義詞、無義詞,方便做出推薦解釋
-
給用戶推薦標簽
-
推薦的好處
- 方便用戶輸入標簽
- 提高標簽質(zhì)量
-
推薦方法
- 推薦系統(tǒng)中最熱門的標簽(PopularTags)
- 推薦物品最熱門的標簽(Item PopularTags)
- 推薦用戶經(jīng)常使用的標簽(User PopularTags)
- 前面兩種融合(Hybrid PopularTags)
-
冷啟動物品的推薦方法
- 從物品的內(nèi)容數(shù)據(jù)中抽取關(guān)鍵詞作為標簽
- 根據(jù)僅有的標簽做拓展
-
3. 利用上下文信息
用戶所處的上下文,包括用戶訪問推薦系統(tǒng)的時間、地點、心情等,有助于提高推薦系統(tǒng)的性能。
比如,用戶夏天喜歡過的T恤,冬天再推薦就不合適了。
用戶在中關(guān)村,打開美食推薦,如果給的結(jié)果是國貿(mào)是不合適了。
1) 時間上下文信息
-
時間對用戶興趣的影響:
- 用戶興趣是變化的
- 物品也是有生命周期的
- 季節(jié)效應(yīng)
-
推薦系統(tǒng)的實時性
用戶興趣是不斷變化的,其變化體現(xiàn)在用戶不斷增加的新行為中。一個實時的推薦系統(tǒng)需要能夠?qū)崟r響應(yīng)用戶新的行為,讓推薦列表不斷變化,從而滿足用戶不斷變化的興趣。實現(xiàn)推薦系統(tǒng)的實時性除了對用戶行為的存取有實時性要求,還要求推薦算法本身具有實時性,而推薦算法本身的實時性意味著:
- 實時推薦系統(tǒng)不能每天都給所有用戶離線計算推薦結(jié)果,然后在線展示昨天計算出來的結(jié)果。所以,要求在每個用戶訪問推薦系統(tǒng)時,都根據(jù)用戶這個時間點前的行為實時計算推薦列表
- 推薦算法需要平衡考慮用戶的近期行為和長期行為,即要讓推薦列表反應(yīng)出用戶近期行為所體現(xiàn)的興趣變化,又不能讓推薦列表完全受用戶近期行為的影響,要保證推薦列表對用戶興趣預(yù)測的延續(xù)性。
-
推薦算法的時間多樣性
推薦系統(tǒng)每天推薦結(jié)果的變化程度被定義為推薦系統(tǒng)的時間多樣性。時間多樣性高的推薦系統(tǒng)中用戶會經(jīng)常看到不同的推薦結(jié)果。提高推薦結(jié)果的時間多樣性需要分兩步解決:
- 首先,需要保證推薦系統(tǒng)能夠在用戶有了新的行為后及時調(diào)整推薦結(jié)果,使推薦結(jié)果滿足用戶最近的興趣;
- 其次,需要保證推薦系統(tǒng)在用戶沒有新的行為時也能經(jīng)常變化一下結(jié)果,具有一定的時間多樣性
如果用戶沒有行為,推薦思路:
- 在生成推薦結(jié)果時加入一定的隨機性。比如從推薦列表前20個結(jié)果中隨機挑選10個結(jié)果展示給用戶,或者按照推薦物品的權(quán)重采樣10個結(jié)果展示給用戶。
- 記錄用戶每天看到的推薦結(jié)果,然后在每天給用戶進行推薦時,對他前幾天看到過很多次的推薦結(jié)果進行適當?shù)亟禉?quán)。
- 每天給用戶使用不同的推薦算法。可以設(shè)計很多推薦算法,比如協(xié)同過濾算法、內(nèi)容過濾算法等,然后在每天用戶訪問推薦系統(tǒng)時隨機挑選一種算法給他進行推薦。
協(xié)同過濾算法可以利用時間信息提高預(yù)測的準確度。
-
時間上下文相關(guān)的ItemCF算法
- 物品相似度
用戶在相隔很短的時間內(nèi)喜歡的物品具有更高相似度。 - 在線推薦
用戶近期的行為比用戶很久之前的行為,更能體現(xiàn)用戶現(xiàn)在的興趣。
- 物品相似度
-
時間上下文相關(guān)的UserCF算法
- 用戶興趣相似度
如果兩個用戶【同時】喜歡相同的物品,則他們有更大的興趣相似度。 - 相似興趣用戶的最近行為
給用戶推薦和他興趣相似的用戶最近喜歡的物品。
- 用戶興趣相似度
2)地點上下文信息
- 用戶興趣和地點相關(guān)的兩種特征:
- 興趣本地化,不同地方的用戶興趣存在著很大的差別,不同國家和地區(qū)用戶的興趣存在著一定的差異性。
- 活動本地化,一個用戶往往在附近的地區(qū)活動。因此,在基于位置的推薦中我們需要考慮推薦地點和用戶當前地點的距離,不能給用戶推薦太遠的地方。
4. 利用社交網(wǎng)絡(luò)數(shù)據(jù)
-
獲取社交網(wǎng)絡(luò)數(shù)據(jù)的途徑
- 電子郵件
- 用戶注冊信息
- 用戶位置數(shù)據(jù)
- 論壇和討論組
- 即時聊天工具
- 社交網(wǎng)站
- Facebook中的絕大多數(shù)用戶聯(lián)系基于社交圖譜:由于人們之間的親屬關(guān)系、工作關(guān)系而形成;
- Twitter中的絕大多數(shù)用戶聯(lián)系基于興趣圖譜:通過人們之間的共同興趣和信念形成;
-
社交網(wǎng)絡(luò)數(shù)據(jù)的分類
- 雙向確認的社交網(wǎng)絡(luò)數(shù)據(jù),以Facebook和人人網(wǎng)為代表,用戶之間形成好友關(guān)系需要通過雙方的確認;
- 單向關(guān)注的社交網(wǎng)絡(luò)數(shù)據(jù),以Twitter和新浪微博為代表,用戶A可以關(guān)注用戶B,而不用得到用戶B的允許;
- 基于社區(qū)的社交網(wǎng)絡(luò)數(shù)據(jù),用戶之間并沒有明確的關(guān)系,但是這種數(shù)據(jù)包含了用戶屬于不同社區(qū)的數(shù)據(jù)。比如豆瓣小組,屬于同一個小組可能代表了用戶興趣的相似性;
-
社會化推薦的優(yōu)點
- 好友推薦可以增加推薦的信任度
- 社交網(wǎng)絡(luò)可以解決冷啟動問題
六、冷啟動問題
1)冷啟動主要分3類:
- 用戶冷啟動
一個新用戶,沒有任何歷史行為數(shù)據(jù),怎么做推薦。 - 物品冷啟動
一個新上線的物品,沒有用戶對它產(chǎn)生過行為,怎么推薦給感興趣的用戶。 - 系統(tǒng)冷啟動
一個新開發(fā)的網(wǎng)站,沒有用戶數(shù)據(jù),怎么做個性化推薦。
2)解決方案:
- 提供非個性化推薦,如熱門排行。等有了數(shù)據(jù)之后再推薦。
- 利用用戶注冊信息,做粗粒度的個性化。
- 利用用戶的社交網(wǎng)絡(luò)賬號,導(dǎo)入用戶的好友,推薦好友喜歡的物品。
- 用戶初次登錄時,對一些物品進行反饋,根據(jù)這些信息做個性化。
- 對于新上線的物品,利用內(nèi)容信息,推薦給喜歡類似物品的用戶。
- 系統(tǒng)冷啟動,可以引入外部資源,如專家知識,建立起物品的相關(guān)度。
3)冷啟動,啟動用戶興趣的物品需要具有以下特點:
- 比較熱門
- 具有代表性和區(qū)分性
- 啟動物品集合需要有多樣性
4)選擇啟動物品集合的系統(tǒng)
如何設(shè)計一個選擇啟動物品集合的系統(tǒng)?Nadav Golbandi在論文中提出用一個決策樹解決。
首先,給定一群用戶,用這群用戶對物品評分的方差度量這群用戶興趣的一致程度。如果方差很小,說明這一群用戶的興趣不太一致,也就是物品具有比較大的區(qū)分度,反之則說明這群用戶的興趣比較一致。
再根據(jù)用戶的評分方差計算物品的區(qū)分度。
也就是說,對于物品i,將用戶分為3類--喜歡物品i的用戶,不喜歡物品i的用戶和不知道物品i的用戶。如果這3類用戶集合內(nèi)的用戶對其他的物品興趣很不一致,說明物品i具有較高的區(qū)分度。
算法首先從所有用戶中找到具有最高區(qū)分度的物品i,然后將用戶分成3類。然后在每類用戶中再找到最具區(qū)分度的物品,然后將每一類用戶又各自分為3類,也就是將總用戶分為9類,然后繼續(xù)這樣下去,最終可以通過對一系列物品的看法將用戶進行分類。
在冷啟動時,從根節(jié)點開始詢問用戶對該節(jié)點物品的看法,然后根據(jù)用戶的選擇將用戶放到不同的分枝,直到進入最后的葉子節(jié)點,此時對用戶的興趣有了比較清楚的了解,從而可以開始對用戶進行比較準確地個性化推薦。
5)利用物品的內(nèi)容信息
就是基于內(nèi)容的推薦,很適合解決物品冷啟動問題。
物品冷啟動對諸如新聞網(wǎng)站等時效性很強的網(wǎng)站的推薦非常重要,因為那些網(wǎng)站中時時刻刻都有新加入的物品,而且每個物品必須能夠在第一時間展現(xiàn)給用戶,否則經(jīng)過一段時間后,物品的價值就大大降低了。
一般來說,物品的內(nèi)容可以通過向量空間模型表示,該模型會將物品表示成一個關(guān)鍵詞向量。
如果物品的內(nèi)容是諸如導(dǎo)演、演員等實體,可以直接將實體作為關(guān)鍵詞。
如果內(nèi)容是文本,需要引入自然語言的技術(shù)抽取關(guān)鍵詞。如何建立文章、話題和關(guān)鍵詞的關(guān)系是話題模型研究的重點,代表性的話題模型有LDA。
LDA有3種元素,文檔、話題、詞語。詳細內(nèi)容可參考相關(guān)論文。
向量空間模型的優(yōu)點是簡單,缺點是丟失了一些信息,比如關(guān)鍵詞之間的關(guān)系信息。
七、推薦系統(tǒng)實例
推薦系統(tǒng)和其他系統(tǒng)之間的關(guān)系
3種聯(lián)系用戶和物品的推薦系統(tǒng)
3)推薦系統(tǒng)架構(gòu)
推薦系統(tǒng)需要由多個推薦引擎組成,每個推薦引擎負責一類特性和一種任務(wù),推薦系統(tǒng)的任務(wù)是將推薦引擎的結(jié)果按照一定權(quán)重或者優(yōu)先級合并,排序然后返回。如下圖:
推薦系統(tǒng)架構(gòu)圖
- 優(yōu)點:
- 方便增加或刪除引擎,控制不同引擎對推薦結(jié)果的影響。
- 可以實現(xiàn)推薦引擎級別的用戶反饋。對不同用戶給出不同引擎組合權(quán)重。
4)推薦引擎架構(gòu)
- 推薦引擎架構(gòu)主要包括三部分:
- 圖中A部分負責從數(shù)據(jù)庫或緩存中拿到用戶行為數(shù)據(jù),通過分析不同行為,生成當前用戶的特征向量,如果使用非行為特征,就不需要行為提取和分析模塊了,該模塊的輸出就是用戶特征向量。
- 圖中B部分負責將用戶的特征向量通過特征-物品相關(guān)矩陣轉(zhuǎn)化為初始推薦物品列表。
- 圖中C部分負責對初始的推薦列表進行過濾、排名等處理,從而生成該引擎的最終推薦結(jié)果。
推薦引擎架構(gòu)圖
-
生成用戶特性向量
- 用戶行為的種類
- 用戶行為產(chǎn)生的時間
- 用戶行為的次數(shù)
- 物品的熱門程度
-
過濾模塊過濾掉以下物品
- 用戶已經(jīng)產(chǎn)生過行為的物品
- 候選物品以外的物品(不符合用戶篩選條件的物品)
- 某些質(zhì)量很差的物品
以上,就是所有內(nèi)容的總結(jié)。內(nèi)容主要來自于《推薦系統(tǒng)實踐》,以及相關(guān)論文、博客。
《推薦系統(tǒng)實踐》中提到的papaer總結(jié):
https://book.douban.com/review/5514664/
參考論文:
http://t.cn/RjXktmC
http://t.cn/RjXkiFP
http://blog.csdn.net/qingqingpiaoguo/article/details/60882309
https://www.zhihu.com/question/27141495/answer/161027882
最后:
我的目標是成為一名人工智能相關(guān)的產(chǎn)品經(jīng)理。我建了一個AI產(chǎn)品群,如果你和我一樣,愿意分享你的學(xué)習過程,留言交流,掃我拉你進群,進群后記得自我介紹呀~~(留言里有我的微信號...)
-- 原創(chuàng),未經(jīng)授權(quán),禁止轉(zhuǎn)載 2017.11.15 --
ps:收藏時別忘了點喜歡~ 收藏對你有用,喜歡對我有用,互幫互助多愉快
總結(jié)
以上是生活随笔為你收集整理的读书笔记 |《推荐系统实践》- 个性化推荐系统总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 点融产品 VP 赵征宇:增长是一个探索人
- 下一篇: 从千团大战到网贷战国,烧钱千亿背后的底层