PM個性化推薦總結(jié)(一)——常用的推薦方法綜述

個性化推薦系統(tǒng)可以理解成一個“為目標(biāo)用戶找到目標(biāo)物品”的系統(tǒng),整個過程大致可以分為幾個步驟,確定目標(biāo)用戶-召回目標(biāo)物品-為目標(biāo)物品排序-按照合理的形式展示-收集目標(biāo)用戶反饋,進(jìn)而優(yōu)化召回、排序、展示方案。

其中每一個步驟都是算法與策略共同作用,在這個過程中存在主導(dǎo)輔助的差異。

本文所列舉的“推薦方法”,包括很多書中提到的推薦方法,指的通常是根據(jù)對用戶與場景的分析,“召回目標(biāo)商品”的過程。

本文根據(jù)《推薦系統(tǒng)實戰(zhàn)》《用戶網(wǎng)絡(luò)行為畫像》整理,本人自評是一篇大而全但缺乏精細(xì)詳解的文章,已經(jīng)對推薦內(nèi)容非常熟悉的朋友可以忽略,入門或者鞏固的產(chǎn)品同學(xué)可以此作為一個學(xué)習(xí)了解(復(fù)習(xí))的大綱,也可關(guān)注以下系列。

產(chǎn)品經(jīng)理的個性化推薦總結(jié)(二)——詳細(xì)理解協(xié)同過濾

產(chǎn)品經(jīng)理的個性化推薦總結(jié)(三)——詳細(xì)理解以用戶畫像為主導(dǎo)的基于內(nèi)容推薦方法

正文:

常見的推薦算法根據(jù)使用數(shù)據(jù)的不同,可大致分為三類:協(xié)同過濾的推薦方法、基于內(nèi)容的推薦方法和基于知識的推薦方法,然后是根據(jù)實際使用情況將三種不同程度融合。

第一部分:大綱

一.?協(xié)同過濾(CF)的推薦方法

1 基于記憶/臨域的協(xié)同過濾

?? ? 1.1 基于用戶的方法,即大家熟悉的user-cf。

?? ? 1.2 基于物品的方法,即同樣大家熟悉的item-cf。

2 基于模型的協(xié)同過濾

?? ? 2.1 基于矩陣分解的隱語義模型(LFM模型)

?? ? 2.2 基于樸素貝葉斯分類的推薦算法

二.?基于內(nèi)容(CB)的推薦方法

本質(zhì)上是基于對物品和自身的特征或?qū)傩缘闹苯臃治鲇蛴嬎?,利用用戶畫像(?biāo)簽)、商品畫像。

無論是CF還是CB都需要用到用戶歷史行為數(shù)據(jù)。

三.基于知識的推薦方法

知識可以是人工的業(yè)務(wù)規(guī)則,也可以是通過數(shù)據(jù)挖掘總結(jié)的規(guī)律。

第二部分:幾種常用的推薦算法局限性

協(xié)同過濾方法存在的局限性:

用戶和物品的冷啟動問題:由于新用戶沒有朋友、操作過的物品等有用信息,新物品沒有被用戶操作過的信息,因此系統(tǒng)無法對新物品、新用戶做出推薦。

因為不對物品的內(nèi)容做分析,所以無法依據(jù)深層特征和屬性來推薦比較復(fù)雜的物品,使得用戶會對推薦結(jié)果的可信度產(chǎn)生質(zhì)疑。

受到用戶打分悉數(shù)性問題的約束。

隨著用戶和物品數(shù)量的增大,系統(tǒng)計算量增大,受到算法可擴(kuò)展性問題的約束。

基于內(nèi)容的推薦算法存在的局限性:

容易受到信息獲取技術(shù)的約束,難以提取物品的內(nèi)容特征,而使用標(biāo)簽對視頻進(jìn)行標(biāo)注的方法工作量巨大而效用低。

需要足夠的數(shù)據(jù)來構(gòu)建決策分類器,用戶畫像的建立需要大量的用戶瀏覽記錄。

難以為用戶發(fā)現(xiàn)新的興趣信息,只能推薦與用戶已有興趣相似的視頻。

基于知識的推薦算法存在的局限性:

知識的獲取比較困難。

用戶必須說明他的需求,系統(tǒng)才能做出推薦,在這個過程中若找不到合適的推薦物品,用戶需要修改其需求。

第三部分:推薦算法概述

基于鄰域的算法

基于鄰域的算法是推薦系統(tǒng)中最基本的算法

?第一種:? user-cf

1.計算原理

以用戶為研究對象,通過分析用戶所喜好的物品來計算用戶之間的相似度,找到相似度最大的其他相似用戶,然后根據(jù)其他相似用戶的喜好為目標(biāo)用戶推薦他可能感興趣的物品,更注重社會化。

?? 1.1找到和目標(biāo)用戶相似的用戶集合。

?? 1.2找到這個集合中的用戶喜歡的,且目標(biāo)用戶沒有聽說過的物品推薦給目標(biāo)用戶。

2.算法流程

?? 算法輸入:用戶行為日志,基于協(xié)同的用戶相似矩陣。

?? 算法輸出:初始推薦結(jié)果。

3.適用場景

?? user-cf實現(xiàn)簡單,但隨著用戶數(shù)量增多,算法復(fù)雜度隨之增高,新用戶的冷啟動問題,以及數(shù)據(jù)稀疏性問題導(dǎo)致效率和伸縮性上的不足;另一方面這樣的推薦很難給出推薦理由,因此,user-cf適用于用戶交互性強(qiáng)或者用戶量相較物品數(shù)量變化穩(wěn)定的網(wǎng)站。

第二種:item-cf

1.計算原理

通過計算物品的相似度代替用戶的相似度進(jìn)行推薦,但是并不以物品的內(nèi)容屬性計算物品之間的相似度,而是主要通過分析用戶的行為記錄計算物品之間的相似度。一般而言,物品a和物品b具有很大相似度是因為喜歡物品a的用戶大都喜歡b。

?? ? 1.1 計算物品之間的相似度——對于目標(biāo)用戶及其待評分的物品,根據(jù)(全量)用戶對物品的歷史偏好數(shù)據(jù),計算物品于其他已經(jīng)評分的物品之間的相似度,找到與該物品相似度高的物品集合。

?? ? 1.2 根據(jù)物品的相似度和用戶的歷史行為給用戶生成推薦列表。

2.算法流程

?? 算法輸入:用戶行為日志,基于協(xié)同的物品相似矩陣

?? 算法輸出:初始推薦結(jié)果。

3.適用場景

?? item-cf適用于物品數(shù)量變化明顯小于用戶數(shù)量變化的場合,究其原因,在一個非社交網(wǎng)絡(luò)的網(wǎng)站中,給一個用戶推薦一個物品,若給出的解釋是與該用戶瀏覽習(xí)慣相似的用戶頁看了這個物品,很難讓用戶信服,因為用戶可能根本不認(rèn)識那個人,相比之下,推薦原因是所推薦的物品與用戶看過的物品相似更加令人信服。

第三種:LFM

1.計算原理

矩陣分解:基于用戶瀏覽或者評分等歷史行為數(shù)據(jù),從中挖掘出用戶隱含的興趣,即隱語義,然后將用戶或者物品用隱語義進(jìn)行分類,最后通過這些隱語義進(jìn)行推薦。

? ? 1.1? 獲取用戶的興趣向量以及物品的類別向量,計算用戶對物品的喜好度。

? ? 1.2 根據(jù)用戶喜好度排序,輸出top結(jié)果。

2.算法流程

?? 算法輸入:用戶行為日志,用戶興趣向量,物品類別向量。

?? 算法輸出:初始推薦結(jié)果。

3.適用場景

這是一種基于機(jī)器學(xué)習(xí)的方法,具有比較好的理論基礎(chǔ),適用于缺少用戶興趣信息和物品類別信息,但是具有大量的用戶行為的系統(tǒng),一般適用于離線推薦,不適用于實時推薦。

第四種:基于樸素貝葉斯分類的推薦方法

1.計算原理

推薦問題可以被看成分類問題,因此可以使用一些機(jī)器學(xué)習(xí)領(lǐng)域中的分類算法對推薦問題加以解決。樸素貝葉斯的基本思想顯而易見:對于給出的帶分類物品和既定的類別,計算該物品在各個類別中出現(xiàn)的概率,哪個類別出現(xiàn)的概率最大就將待分類的物品分到哪個類別。

2.算法流程

?? 算法輸入:已知目標(biāo)用戶對物品ix之外的物品的評分情況,以及其他用戶對各物品的評分情況。

?? 算法輸出:確定目標(biāo)用戶對i新的評分。

3.適用場景

樸素貝葉斯分類實現(xiàn)起來比較簡單,準(zhǔn)確率比較高,但是分類的時候需要學(xué)習(xí)全部樣本的信息,因此,更適用于數(shù)據(jù)量不大,類別較少的分類問題。

基于內(nèi)容的推薦方法

名詞解釋:

? ? 用戶畫像與物品畫像——將用戶行為與物品內(nèi)容數(shù)據(jù)根據(jù)業(yè)務(wù)需求結(jié)構(gòu)化的表達(dá)形式,不展開贅述。

? ? 特征向量:用于表示對象特征的一組屬性和屬性值,其中每個屬性都是這個屬性合集的一個向量分量。

第一種:基礎(chǔ)CB推薦方法

1.算法原理

該方法不考慮非結(jié)構(gòu)化特征,不考慮反饋,單純基于物品內(nèi)容固有屬性和用戶偏好內(nèi)容進(jìn)行相似度計算來實現(xiàn)推薦,通過分析用戶已經(jīng)瀏覽過的內(nèi)容,生成用戶的偏好內(nèi)容,然后推薦與用戶感興趣的物品內(nèi)容相似度高的其他物品。

2.算法流程

?? 算法輸入:物品信息,用戶行為日志。

?? 算法輸出:初始推薦結(jié)果。

3.適用場景

適用于基礎(chǔ)CB架構(gòu)的搭建,尤其是對新上線物品會馬上被推薦非常有效,被推薦的機(jī)會與老的物品是相同的。

第二種:其他CB推薦方法

基礎(chǔ)CB推薦方法重點針對結(jié)構(gòu)化特征處理推薦,對于非結(jié)構(gòu)化的特征,則需要其他推薦方法進(jìn)行補充。前者是CB推薦中的基礎(chǔ),后者則是在基礎(chǔ)CB方法上的深入或者拓展。

以下對幾種推薦方法做簡單介紹。

2.1基于TF-IDF的CB推薦算法

推薦經(jīng)常用到物品非結(jié)構(gòu)話數(shù)據(jù),例如評論、詳情等信息,需要從冗長的文字中提取關(guān)鍵詞,TF-IDF技術(shù)被引入。

TF-IDF是自然語言處理領(lǐng)域中計算文檔中詞或短語的權(quán)值的方法,是詞頻和逆文本頻率的乘積,TF指的是某一個給定的詞語在該文件中出現(xiàn)的次數(shù),IDF指的是一個詞語普遍重要性的度量,某一個特定詞語的IDF,可以由總文件數(shù)目除以包含改詞語之文件的數(shù)目,再將得到的商取對數(shù)得到。

2.2基于KNN的CB推薦算法

該方法其實是一種接近無反饋的方法。

KNN算法基于這樣的假設(shè):如果在特征空間中,一個樣本的k個最鄰近樣本中的大多數(shù)樣本屬于某一個類別,則該樣本也屬于這個類別。KNN算法通過計算樣本個體檢的距離或相似度來確定最近鄰,算法的時間復(fù)雜度跟樣本的個數(shù)直接相關(guān)。

在推薦系統(tǒng)中,KNN算法能夠與目標(biāo)物品的內(nèi)容的k個最相似物品推薦給用戶,由于內(nèi)容固有屬性一旦確立就不會頻繁變更,所以基于內(nèi)容固有屬性的KNN算法最近鄰計算不需要頻繁的重復(fù)刷新。

KNN算法在CB推薦算法中的應(yīng)用與在CF推薦算法中的應(yīng)用極為相似,他們都是首先要找到跟目標(biāo)物品相似的且已經(jīng)被用戶評價過的k個物品,然后根據(jù)用戶對著k個物品的評價來預(yù)測其對目標(biāo)物品的評價。他們的差別在于,CF推薦算法中的KNN是根據(jù)用戶對物品的評價預(yù)測其目標(biāo)物品的評分來計算物品間相似度的,而CB推薦算法中的KNN算法是根據(jù)物品畫像來計算物品間相似度的。

2.3基于決策樹的CB推薦算法

不同于其他算法,該算法會在訓(xùn)練階段生成一個顯式的決策模型,可以通過訓(xùn)練數(shù)據(jù)集構(gòu)建病有效判斷一個新的物品是否可能受到用戶喜歡。當(dāng)物品的特征屬性較少時采用決策樹算法能夠取得不錯的效果。

決策樹的內(nèi)部節(jié)點通常表示物品的特征屬性,這些節(jié)點用語區(qū)分物品合集。

2.4基于線性分類的CB推薦算法

將基于內(nèi)容的物品推薦問題視為分類問題時,多種機(jī)器學(xué)習(xí)的方法都可以被采用。

將物品數(shù)據(jù)用n維特征向量進(jìn)行表示,那么物品可用點在n維空間中表示,線性分類起試圖在給定的視頻特征數(shù)據(jù)空間中找出一個能夠?qū)⒁曨l正確分類的平面,一類點盡可能在平面的某一遍,另一類則在平面的另一邊,在物品推薦中,就是將物品分為用戶喜歡和不喜歡兩種。

2.5基于樸素貝葉斯的CB推薦算法

貝葉斯定理描述在一個隨機(jī)事件發(fā)生下另一個隨機(jī)事件發(fā)生的條件概率的定理。

基于樸素貝葉斯的推薦系統(tǒng)判斷用戶是否對某個物品有興趣的方法是將這個問題轉(zhuǎn)化為分類問題,例如將其分為兩類,一類為“喜歡”,另一類為“不喜歡”。樸素貝葉斯算法假設(shè)用戶和物品的特征向量中的各個分量相互之間條件獨立,計算分類概率。

基于知識的推薦方法

從概念上來講,知識表示是一組為現(xiàn)實知識形式化描述而做的約定,是把知識客體中的知識因子與知識關(guān)聯(lián)起來,便于人們的識別和對知識的理解,他是知識組織的前提和基礎(chǔ),任何知識組織方法都是建立在知識表示的基礎(chǔ)上。

這里講解兩種常見的基于知識推薦方法:

一種是約束知識,主要面向人工知識庫,構(gòu)建if-then推薦規(guī)則;

另外一種是關(guān)聯(lián)知識,利用數(shù)據(jù)挖掘理論構(gòu)建基于數(shù)據(jù)規(guī)律的自動學(xué)習(xí)的推薦規(guī)則。

第一種:約束推薦算法

1.舉例:“買過大型家電,例如電視機(jī)的用戶在一段時間內(nèi)都不會再購買同類型物品”

2.算法原理

?? ? ? 人們發(fā)現(xiàn)可以利用物品的參數(shù)特征等屬性形成約束知識,再將用戶對物品的特定需求刻畫為約束條件,然后經(jīng)過對物品集合的約束滿足問題的求解,就可以得到用戶所期望的物品了。

其中推薦任務(wù)以元祖(R,I)的形式表示,集合R表示目標(biāo)用戶對物品的特定需求,即對物品的約束條件,用集合I表示一個物品結(jié)合。推薦任務(wù)的完成目標(biāo)是從結(jié)合I中確定出能夠滿足集合R要求的物品。

第二種:關(guān)聯(lián)推薦算法

1.舉例:“尿布與啤酒問題”

2.算法原理

隨著研究者對大型數(shù)據(jù)庫所蘊含的物品間關(guān)聯(lián)性的分析,關(guān)聯(lián)規(guī)則的概念被提出來,人們借助它符號化和形式化的語言來對物品間關(guān)聯(lián)性進(jìn)行刻畫和描述,旨在從大量雜亂無章的數(shù)據(jù)中分析出少量易于理解的靜態(tài)數(shù)據(jù)。

3.算法流程

3.1 從系統(tǒng)中的n個用戶畫像中挖掘出所有的強(qiáng)關(guān)聯(lián)規(guī)則,建立集合以表示目標(biāo)用戶尚未查看但極有可能感興趣的物品。

3.2 再次使用置信度對集合中的物品進(jìn)行高低排序。

3.3 取出排序列表中的前n個物品構(gòu)成top-n推薦列表。

由于對系統(tǒng)中全體用戶的畫像進(jìn)行關(guān)聯(lián)規(guī)則挖掘意義不明顯且計算量大,所以基于關(guān)聯(lián)規(guī)則的推薦算法常與CF推薦算法混合使用。在這類混合方法中,使用了CF推薦算法中的最近鄰算法將用戶畫像數(shù)目n限定在目標(biāo)用戶的最近鄰范圍內(nèi),使得關(guān)聯(lián)規(guī)則挖掘算法所處理的數(shù)據(jù)規(guī)模被針對性地限制在一定范圍內(nèi)。

第四部分:推薦算法實際使用過程中多為混合推薦推薦算法

以上三種主流的推薦方法,實際上是分別利用四種信息源來完成的,包括用戶畫像、物品畫像、群體數(shù)據(jù)、知識模型。

其中CF推薦方法利用了群體數(shù)據(jù)信息源;CB推薦方法利用了用戶畫像和物品畫像這種類信息源;KB推薦方法利用了用戶畫像、物品畫像和知識模型三類信息源。

由此可見,沒有一類推薦方法可以同時利用四種信息源。同時三類推薦方法也各有優(yōu)缺點,可以說沒有任何單獨的一類方法可以解決所有局限性問題,因此,將多種推薦方法混合起來使用、各取其長的算法設(shè)計思路開始變得重要起來。

混合推薦方法只介紹算法設(shè)計層面的混合方法,可分為三大類,七小類。

1.并形式混合

?1.1 加權(quán)式

? ? ? ? ? ? 推薦系統(tǒng)對多種推薦算法的計算結(jié)果進(jìn)行加權(quán)平均處理,產(chǎn)生出單一的推薦結(jié)果

?1.2切換式

? ? ? ? ? ? 推薦系統(tǒng)在不同的推薦算法中進(jìn)行切換以適應(yīng)當(dāng)前的推薦情境。

?1.3混雜式

?? ? ? ? ? 推薦系統(tǒng)同時呈現(xiàn)出其上多種推薦算法的推薦結(jié)果。

2.整體式混合

?2.1 特征組合

?? ? ? ? ? ? 推薦系統(tǒng)從多種推薦數(shù)據(jù)源中獲取特征,將這些特征組合起來放入單一的推薦算法中

?2.2特征補充

? ? ? ? ? ? 推薦系統(tǒng)將一種推薦算法輸出的特征信息作為另一種推薦算法的輸入特征信息。

3.流水線式混合

?3.1層疊式

? ? ? ? ? ? 推薦系統(tǒng)中一種推薦算法對另一種推薦算法的推薦結(jié)果進(jìn)行提煉。

?3.2級聯(lián)式

? ? ? ? ? ? 推薦系統(tǒng)將一種推薦算法學(xué)習(xí)到的模型作為另一種推薦算法的輸入。



蕭飯飯,搜索推薦產(chǎn)品經(jīng)理,WX:xiao-xiao1991,歡迎大家一同探討,共同進(jìn)步~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容