推薦系統(tǒng)的主要方法
一、基于內(nèi)容的推薦算法
網(wǎng)絡(luò)基于內(nèi)容的推薦系統(tǒng),也稱CB(Content-based Recommendations):根據(jù)用戶基于item時的歷史信息(如評分、評價、分享、和收藏過的文檔)構(gòu)造用戶偏好文檔,計算推薦項目與用戶偏好文檔的相似度,將最相似的項目推薦給用戶。例如,在書籍推薦中,基于內(nèi)容的系統(tǒng)首先分析用戶已經(jīng)購買過的打分比較高的書籍的共性(作者、風格等),再推薦與這些用戶感興趣的書籍內(nèi)容相似度高的其他電影。再例如一個推薦飯店的系統(tǒng)可以依據(jù)某個用戶之前喜歡很多的烤肉店而為他推薦烤肉店。CB最早主要是應(yīng)用在信息檢索系統(tǒng)當中,所以很多信息檢索及信息過濾里的方法都能用于CB中。CB中大致包括三步驟:
Item Representation;為每個item抽取出一些特征(也就是item的content了)來表示此item。
Profile Learning :用一個用戶過去的item的特征數(shù)據(jù),來學習出此用戶的喜好特征(profile)。
Recommendation Generation;通過比較上一步得到的用戶profile與候選item的特征,為此用戶推薦一組相關(guān)性最大的item。
真實應(yīng)用中的item往往都會有一些可以描述它的屬性。這些屬性通常可以分為兩種:結(jié)構(gòu)化的(structured)屬性與非結(jié)構(gòu)化的(unstructured)屬性。所謂結(jié)構(gòu)化的屬性就是這個屬性的意義比較明確,其取值限定在某個范圍;而非結(jié)構(gòu)化的屬性往往其意義不太明確,取值也沒什么限制,不好直接使用。比如在交友網(wǎng)站上,item就是人,一個item會有結(jié)構(gòu)化屬性如身高、學歷、籍貫等,也會有非結(jié)構(gòu)化屬性(如item自己寫的交友宣言,博客內(nèi)容等等)。對于結(jié)構(gòu)化數(shù)據(jù),我們自然可以拿來就用;但對于非結(jié)構(gòu)化數(shù)據(jù)(如文章),我們往往要先把它轉(zhuǎn)化為結(jié)構(gòu)化數(shù)據(jù)后才能在模型里加以使用。真實場景中碰到最多的非結(jié)構(gòu)化數(shù)據(jù)可能就是文章了(如個性化閱讀中)。將文本這種非結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)化成結(jié)構(gòu)行數(shù)據(jù),常用的方法是IF-IDF(term frequency-inverse document frequency)[58]
1)基于item的特征學習
所有文章集合為,而所有文章中出現(xiàn)的詞的集合(對于中文章,首先得對所有文章進行分詞),也稱為詞典,即。也就是說,我們有篇要處理的文章,而這些文章里包含了個不同的詞。我們最終要使用一個向量來表示一篇文章,比如第篇文章被表示為,其中表示第1個詞在文章中的權(quán)重,值越大表示越重要;中其他向量的解釋類似。所以,為了表示第篇文章,現(xiàn)在關(guān)鍵的就是如何計算各分量的值了。例如,我們可以選取為1,如果詞出現(xiàn)在第篇文章中;選取為0,如果未出現(xiàn)在第篇文章中。我們也可以選取為詞出現(xiàn)在第篇文章中的次數(shù)(frequency)。但是用的最多的計算方法還是信息檢索中常用的詞頻-逆文檔頻率(term frequency–inverse document frequency,簡稱)。
2)基于用戶profile特征學習
假設(shè)用戶u已經(jīng)對一些item給出了他的喜好判斷,喜歡其中的一部分item,不喜歡其中的另一部分。那么,這一步要做的就是通過用戶u過去的這些喜好判斷,為他產(chǎn)生一個模型。有了這個模型,我們就可以根據(jù)此模型來判斷用戶u是否會喜歡一個新的item。所以,我們要解決的是一個典型的有監(jiān)督分類問題,應(yīng)用機器學習中的分類算法可以解決分類問題。常用的分類機器學習算法有KNN,決策樹,樸素貝葉斯,隨機森林,支持向量機,神經(jīng)網(wǎng)絡(luò)等。
最后通過通過用戶profile模型特征與item特征進行相似度運算,將得分高的Item推薦給用戶。基于內(nèi)容的推薦方法原理簡單,推薦結(jié)果也易于理解;沒有流行度偏見;沒有冷啟動問題;不需要慣用數(shù)據(jù),可以使用用戶內(nèi)容特性來提供解釋。但是也存在一定的缺點:對于物品的特征具有較高要求,對于視頻、音頻等這種多媒體資源無法進行理想的推薦;推薦結(jié)果相對固定,用戶的個性化偏好在與內(nèi)容匹配度高時才能獲得推薦,很難為用戶發(fā)現(xiàn)新的感興趣信息;缺少多樣性,新穎性。
二、基于協(xié)同過濾的推薦算法
協(xié)同過濾推薦,Collaborative Filtering Recommendations(簡稱CF)是目前最流行的推薦方法,在研究界和工業(yè)界得到大量使用。很多有名的推薦系統(tǒng)都是利用協(xié)同過濾推薦策略,如Netflix的電影推薦系統(tǒng)、亞馬遜的商品推薦系統(tǒng)、Tapestry郵件處理系統(tǒng)等。協(xié)同過濾能夠基于一組興趣相同的用戶或項目進行推薦,它根據(jù)鄰居用戶(與目標用戶興趣相似的用戶)的偏好信息產(chǎn)生對目標用戶的推薦列表。Schafer,F(xiàn)rankowski等[74]曾提出,協(xié)同過濾推薦是“使用其他用戶的觀點來過濾和評價商品的過程”。這種協(xié)同過濾機制的主要目的在于根據(jù)已有數(shù)據(jù)之間的關(guān)系,計算用戶之間的相似度,找到有共同興趣愛好的用戶,從而產(chǎn)生推薦。協(xié)同過濾簡理解就是利用某興趣相投、擁有共同經(jīng)驗之群體的喜好來推薦用戶感興趣的信息,個人通過合作的機制給予信息相當程度的回應(yīng)(如評分)并記錄下來以達到過濾的目的進而幫助別人篩選信息,回應(yīng)(或評分)不一定局限于特別感興趣的,特別不感興趣信息的紀錄也相當重要。
協(xié)同過濾推薦算法一般可以分為基于用戶協(xié)同推薦(User-based Collaborative Filtering)、基于物品協(xié)同推薦(Item -Based Collaborative Filtering)和基于模型的系統(tǒng)推薦(Model-Based Collaborative Filtering)。協(xié)同過濾是在海量數(shù)據(jù)中挖掘出小部分與你品味類似的用戶,在協(xié)同過濾中,這些用戶成為鄰居,然后根據(jù)他們喜歡的東西組織成一個排序的目錄推薦給你。關(guān)于協(xié)同過濾的一個最經(jīng)典的例子就是看電影,有時候不知道哪一部電影是我們喜歡的或者評分比較高的,那么通常的做法就是問問周圍的朋友,看看最近有什么好的電影推薦。在問的時候,都習慣于問跟自己口味差不多的朋友,這就是協(xié)同過濾的核心思想。簡單的說就是:人以類聚,物以群分。
1、基于用戶的協(xié)同過濾算法(user-based collaboratIve filtering)
基于用戶的協(xié)同過濾算法是通過用戶的歷史行為數(shù)據(jù)發(fā)現(xiàn)用戶對商品或內(nèi)容的喜歡(如商品購買,收藏,內(nèi)容評論或分享),并對這些喜好進行度量和打分。根據(jù)不同用戶對相同商品或內(nèi)容的態(tài)度和偏好程度計算用戶之間的關(guān)系。在有相同喜好的用戶間進行商品推薦。簡單的說就是如果A,B兩個用戶都購買了x,y,z三本圖書,并且給出了5星的好評。那么A和B就屬于同一類用戶。可以將A看過的圖書w也推薦給用戶B。
協(xié)同過濾推薦算法的核心是尋找目標用戶的最近鄰居是User-based協(xié)同過濾推薦算法,其所找到的鄰居質(zhì)量和尋找的效率,直接影響整個推薦算法的推薦質(zhì)量和推薦效率。User-based協(xié)同過濾推薦算法的主要工作內(nèi)容是,用戶偏好搜索并進行相似度度量,最近鄰居查詢,預測評分,為相似的用戶提供推薦物品。
2、基于物品的協(xié)同過濾算法(item-based collaborative filtering)
基于物品的協(xié)同過濾算法與基于用戶的協(xié)同過濾算法很像,將商品和用戶互換。通過計算不同用戶對不同物品的評分獲得物品間的關(guān)系。基于物品間的關(guān)系對用戶進行相似物品的推薦。這里的評分代表用戶對商品的態(tài)度和偏好。簡單來說就是如果用戶A同時購買了商品1和商品2,那么說明商品1和商品2的相關(guān)度較高。當用戶B也購買了商品1時,可以推斷他也有購買商品2的需求。
Item-Based協(xié)同過濾算法的核心是計算Item間的相似度,來預測用戶評分。主要通過用戶評分數(shù)據(jù)、計算Item相似度矩陣,主要的工作:1.尋找相似的物品,2并選擇相似性度量方式計算相似性,3為用戶提供基于相似物品的推薦。
3、基于模型的協(xié)同過濾
基于模型的協(xié)同過濾作為目前最主流的協(xié)同過濾類型之一,其相關(guān)算法非常多,這里針對其思想做一個歸類概括。這里有m個物品,m個用戶的數(shù)據(jù),只有部分用戶和部分數(shù)據(jù)之間是有評分數(shù)據(jù)的,其它部分評分是空白,此時我們要用已有的部分稀疏數(shù)據(jù)來預測那些空白的物品和數(shù)據(jù)之間的評分關(guān)系,找到最高評分的物品推薦給用戶。對于這類問題,常用方法是利用機器學習來建模進行問題解決,主流的方法可以分為:關(guān)聯(lián)規(guī)則類算法,聚類算法,分類算法,回歸算法,矩陣分解,神經(jīng)網(wǎng)絡(luò),圖模型以及隱語義模型等來解決。
a)關(guān)聯(lián)規(guī)則類算法的協(xié)同過濾算法
基于關(guān)聯(lián)規(guī)則的推薦技術(shù)是以關(guān)聯(lián)規(guī)則為基礎(chǔ),其反映了一個事物與其他事物之間的相互依存性和關(guān)聯(lián)性,主要結(jié)合用戶當前的購買行為向用戶推薦合適的項目。其關(guān)鍵點在于利用數(shù)據(jù)挖掘技術(shù)找出具有某種關(guān)聯(lián)關(guān)系的數(shù)據(jù)項。在電子商務(wù)網(wǎng)站中,基于關(guān)聯(lián)規(guī)則的推薦主要是分析用戶的購物車、用戶檢索信息、瀏覽信息以及已購買的商品信息,通過數(shù)據(jù)挖掘技術(shù)統(tǒng)計這些商品之間的相關(guān)性,從而向用戶推薦其可能感興趣的商品。常用關(guān)聯(lián)推薦算法有Apriori,F(xiàn)P Tree PrefixSpan。
一般我們可以找出用戶購買的所有物品數(shù)據(jù)里頻繁出現(xiàn)的項集小程序列,來做頻繁集挖掘,找到滿足支持閾的關(guān)聯(lián)物品的頻繁N項集或者序列。如果用戶購買了頻繁N項集或者序列里的部分物品,那么我們可以將頻繁項集或序列里的其他物品按一定的評分準則推薦給用戶,這個評分準則可以包括支持度,置信度和提升度等。
關(guān)聯(lián)規(guī)則的算法優(yōu)點是不需要用戶輸入評分數(shù)據(jù),能發(fā)現(xiàn)用戶的新興趣,推薦的結(jié)果也較為精確。但它也有一些缺點[30]:1)龐大的用戶信息在前期需要經(jīng)過數(shù)據(jù)清洗,數(shù)據(jù)轉(zhuǎn)換等工作,比較復雜;2)關(guān)聯(lián)規(guī)則需要對巨大的用戶信息和項目信息做分析,提取規(guī)則較難,個性化程度較低。
b)用聚類算法做協(xié)同過濾
用聚類做協(xié)同過濾就和前面的基于用戶或者項目的協(xié)同過濾有些類似了。我們可以按照用戶或者按照物品基于一定的距離度量來進行聚類。如果基于用戶聚類,則可以將用戶按照一定距離度量方式分成不同的目標人群,將同樣目標人群評分高的物品推薦給目標用戶。基于物品聚類,則是將用戶評分高物品的相似同類物品推薦給用戶。常用聚類推薦算法有K-Means,BIRCH,DBSCAN和譜聚類 。
c)用分類算法做協(xié)同過濾
如果我們根據(jù)用戶評分的高低,將分數(shù)分成幾段,則這個問題就變成了分類問題。比如最直接的,設(shè)置一個評分閾值,評分高于閾值就推薦,評分低于閾值就不推薦,我們將問題變成了一個二分類問題。常用的分類算法是邏輯回歸,支持向量,樸素貝葉斯等。
d)用回歸算法的協(xié)同過濾
用回歸算法做協(xié)同過濾比分類算法解釋性更強,評分可是是連續(xù)值也是在離散值,通過回歸算法模型得到目標用戶對某商品的預測打分。常用的駕照推薦算法有Ridge回歸,回歸樹和支持向量回歸。
e)用矩陣分解做協(xié)同過濾
用矩陣分解做協(xié)同過濾是目前使用也很廣泛的一種方法。由于傳統(tǒng)的奇異值分解SVD要求矩陣不能有缺失數(shù)據(jù),必須是稠密的,而我們的用戶物品評分矩陣是一個很典型的稀疏矩陣,直接使用傳統(tǒng)的SVD到協(xié)同過濾是比較復雜的。目前主流的矩陣分解算法主要有SVD的一些變種,比如FunkSVD,BiasSVD,RSVD[97]和SVD++[98]。
f)用神經(jīng)網(wǎng)絡(luò)做協(xié)同過濾
用神經(jīng)網(wǎng)絡(luò)乃至深度學習做協(xié)同過濾應(yīng)該是以后的一個趨勢。目前比較主流的用兩層神經(jīng)網(wǎng)絡(luò)來做推薦算法的是限制玻爾茲曼機(RBM)。在目前的Netflix算法比賽中,RBM算法的表現(xiàn)很良好。
CF推薦具有較強的個性化,且得到了廣泛的應(yīng)用,CF的優(yōu)點體現(xiàn)在:1)推薦的結(jié)果對于用戶來說比較新奇,可以發(fā)現(xiàn)內(nèi)容上完全不相似的物品;2)對于非結(jié)構(gòu)化的對象有很好的推薦效果比如電影、音樂、圖片等;3)不需要很專業(yè)的知識就可以推薦。但仍然存在著以下幾點問題:1)冷啟動問題,要是一個用戶從來沒有對任何項目進行評價,那么該用戶就不能得到推薦,同樣如果從來沒有用戶對某一商品加以價,則這個商品就不可能被推薦;2)稀疏性問題,實際的網(wǎng)站中用戶和項目的數(shù)量十分巨大,而用戶通常只對其中小部分項目進行評分,用戶-項目評分矩陣是非常稀疏的,可用于計算用戶之間相似度的數(shù)據(jù)非常有限,使得搜索的最近鄰不夠可靠,推薦質(zhì)量較差;3)可擴展性問題,即隨著用戶和項目數(shù)量的增多,算法的計算復雜度急劇增加,嚴重影響了個性化推薦的實時性。
三、基于社交網(wǎng)絡(luò)的推薦算法
最在線社交網(wǎng)絡(luò)使得人們可以在網(wǎng)絡(luò)上面分享心情,發(fā)表看法,獲取興趣話題,但是面對海量的用戶信息與內(nèi)容信息。
社會推薦(Social Recommendation),是指在各種社會化媒體(Social Media)上通過社會化的群體行為對信息內(nèi)容進行推薦或分享[78],基于社交網(wǎng)絡(luò)的推薦mj是社會推薦的重要研究部分,研究涉及社會科學、物理學、信息科學、和管理科學等多門學科,屬于典型的跨學科交叉研究.基于傳統(tǒng)的推薦決策過程中引入用戶的社交網(wǎng)絡(luò)信息,一方面是考慮傳統(tǒng)協(xié)同過濾推薦方法的數(shù)據(jù)稀疏性的缺陷;另一方面社會網(wǎng)絡(luò)中的用戶間關(guān)系能夠體現(xiàn)出用戶之間的興趣相似性和影響能力.
鄰居節(jié)點的社會影響力同樣也是影響用戶信任度的一個重要因素,一般來說,人們往往更傾向于相信權(quán)威,權(quán)威用戶(即意見領(lǐng)袖)對周圍人們的影響較大,可以理解為社會影響力高的用戶有較高的影響力和用戶信任度,在推薦過程中所占據(jù)的權(quán)重也相對更大.文獻[79,80]認為鄰居節(jié)點的社會影響力比歷史行為的相似性在商品推薦效果方面顯得更加顯著.Internet時代放大了社會影響力的價值,“口碑營銷”和“病毒式營銷”[81]在線社交網(wǎng)絡(luò)中即是通過重點節(jié)點基于一種高信任度的角度,通過傳播的一種方式將產(chǎn)品或者信息等推薦給鄰居節(jié)點,由于網(wǎng)絡(luò)的實時性、信息發(fā)送的便捷性、用戶節(jié)點數(shù)目的海量性,信息則以更快的傳播到更多的網(wǎng)絡(luò)結(jié)點.基于社會影響力的角度進行推薦,取得了一定的效果,文獻[54]通過對豆瓣網(wǎng)站和Goodreads網(wǎng)站(“美國版豆瓣”)的實證分析,發(fā)現(xiàn)來自朋友的社會推薦除了可以提高商品的銷售量外,還可以提升用戶的售后評價滿意程度.
實際上,社交網(wǎng)絡(luò)中的許多推薦問題都可以歸結(jié)為兩類問題:產(chǎn)品推薦和用戶推薦。產(chǎn)品推薦主要是向用戶推薦他們可能會感興趣的歌曲、電影、書或者產(chǎn)品等。例如Liu等[82]通過給網(wǎng)絡(luò)新用戶推薦一組“影響力”較大的產(chǎn)品集合,以此來引導用戶的興趣愛好。一些工作考慮影響力傳播的效果,如向新用戶推薦一些社交影響力比較大的用戶[83],這個向新用戶做推薦有點類似推薦系統(tǒng)的冷啟動問題。
在現(xiàn)實生活中,當我們在需要做出決策的時候,通常會受到兩個方面的影響,一個是社會影響,一個是自身影響。社會影響指的是人們在社會生活中,會受到周圍環(huán)境中,其他社會個體的影響。比如自己的親戚、朋友或同事等。在社會影響中,同時也需要考慮兩個因素,一個是社會個體影響力,一個是對社會個體的信任度。在自身影響中,也會受到兩個因素的影響,一個是自身愛好,另一個是物品特點。
具有高影響力節(jié)點用戶,從某個角度上可以說明了他在網(wǎng)絡(luò)中的口碑與地位的衡量,在一定程度上他的言行舉止具有一定的信任度,會影響著他人對用戶的看法和信任程度,所以具有影響力節(jié)點在基于自身影響力的同時若是發(fā)布負能量發(fā)文,或者長期發(fā)布用戶不感興趣的微博,那他很可能就會“掉粉”,所以高影響力用戶的每一個發(fā)文都會主題明確,例如有些影響力用戶專門發(fā)布萌寵的相關(guān)信息,有些用戶專門發(fā)布穿衣搭配的圖片,有些用戶專門發(fā)布時尚的家居裝修,有些用戶專門發(fā)布各種美食,有些用戶專門發(fā)布心靈雞湯,有些用戶專門發(fā)布實時政事,或者新聞,以及最近有很多商家會在微博上進行商品的發(fā)布,用戶直接通過點擊鏈接可以進行購買。因此除了一些大V用戶或者營銷用戶會發(fā)布廣告性質(zhì)的發(fā)文,還有很多有影響力節(jié)點會發(fā)布自己的主題微博。
[1][58] Ramage D,Dumais S,Liebling D. Characterizing micro blogs with topic models[C]/ /Proceedings of International AAAI Conference on Weblogs and Social Media. Menlo Park. CA: AAAI,2010: 130-137.
[2][59]張晨逸,孫建,丁軼群.基于MB-LDA模型的微博主題挖掘[ J ] .計算機研究與發(fā)展,2 0 1 1 ,4 8 ( 1 0 ) : 1 7 9 5 - 1 8 0 2 .
[3][60]謝昊,江紅.一種面向微博主題挖掘的改進LDA模型[ J ] .華東師范大學學報:自然科學版,2 0 1 3 ,1 1 ( 6 ) : 9 3 - 100.
[4][61]馮普超.基于CMBLDA的微博主題挖掘[D].杭州:浙江大學,2014: 37-47.
[5][62] Philip R,Eric H. Gibbs sampling for the uninitiated[R]. Technical Reports from UMIACS,2010.
[6][63]貝克,曉冬.社會資本制勝:如何挖掘個人與企業(yè)網(wǎng)絡(luò)中的隱性資源[M].上海交通大學出版社,2002.
[7][64]天涯.六度分隔理論和150法則[EB/OL].http://blog.sina.com.cn/s/blog_62bae1640100|5f3.html.[2010-07-14].
[8][65]Granovetter M S.The Strength of Weak Ties[J]. American journal of sociology, 1973: 1360-1380.
[9][66]王梓.社交網(wǎng)絡(luò)中節(jié)點影響力評估算法研究[D].北京郵電大學, 2014.
[10][67] Meeyoung Cha, Hamed Haddadi,Fabricio Benevenutoets. Measuring User Influence in Twitter: The Million Follower Fallacy[C]. Proceedings of the 4th International AAAI Conference on Weblogs and Social Media (ICWSM),2010:10-17
[11][68] ?Page, Lawrence, Brin, et al. The PageRank citation ranking[C]// BringingOrder to the Web. Stanford InfoLab. 1998: 1-14.
[12][69]Kleinberg J M. Authoritative sources in a hyperlinked environment[J]. Journal of the ACM, 1999, 46(5): 604-632.
[13][70]Zibin Yin, Ya Zhang. Measuring Pair-Wise Social Influence inMicroblog[C], 2012 ASE/IEEE International Conference on SocialComputing and 2012 ASE/IEEE International Conference on Privacy,Security, Risk and Trust, 2012: 502-507.
[14][71]Lu Liu, Jie Tang, Jiawei Han, Meng Jiang, Shiqiang Yang. Mining topic-level influence in heterogeneous networks[C]. Proceedings of the 19th ACMinternational conference on information and knowledge management, 2010: 199-208.
[15][72] Qianni Deng, Yunjing Dai. How Your Friends Influence You: Quantifying Pairwise Influences on Twitter[C], International Conference on Cloud and Service Computing, 2012:185-192.
[16][73] Bi, Bin, et al. Scalable Topic-Specific Influence Analysis on Microblogs[C], Proceedings of the 7th ACM international conference on Web search and data mining,2014: 513-522.
[17][74]Schafer.J., et al. Collaborative filtering recommender systems. The adaptive web, 2007. 291-324.
[18][75]徐小偉.基于信任的協(xié)同過濾推薦算法在電子商務(wù)推薦系統(tǒng)的應(yīng)用研究[D].東華大學, 2013.
[19][76] Paterek A. Improving regularized singular value decomposition for collaborative filtering[C]//Proceedings of KDD cup and workshop. 2007, 2007: 5-8.
[20][77] Koren Y.Factorization meets die neighborhood: a multifaceted collaborative filtering model[C]//Proceedings of the 14th ACM SIGKDD international conference on Knowledge discovery and data mining. ACM, 2008: 426-434.
[21][78]Guy I,Carmel D. Social recommender systems[C]. Proceedings of the 20th International Conference Companion on World Wide Web,2011 .
[22][79]Salganik M J,Dodds P S,Watts D J. Experimental study of inequality and unpredictability in an artificial culturalmarket[J]. Science,2006,311: 854-856.
[23][80]BonhardP,SasseMA."Knowingmeknowingyou"—usingpro- files and social networking to improve recommender systems[J]. BT Technology Journal,2006,24: 84-98.
[24][81]Leskovec J,Adamic L A,Huberman B A. The dynamics of viral marketing[C]. Proceedings of ACM Conference on Electronic Commerce,2006.
[25][82]Liu Q, Xiang B, Chen E,et al. Influential seed items recommendation[C].Proceedings of the sixth ACM conference on Recommender systems, 2012: 245-248.