常用的幾種推薦算法介紹
今天給大家分享幾種常用的推薦算法及其各自優(yōu)缺點。
個性化推薦(推薦系統(tǒng))經(jīng)歷了多年的發(fā)展,已經(jīng)成為互聯(lián)網(wǎng)產(chǎn)品的標(biāo)配,也是 AI 成功落地的分支之一,在電商(淘寶/京東)、資訊(今日頭條/微博)、音樂(網(wǎng)易云音樂/QQ音樂)、短視頻(抖音/快手)等熱門應(yīng)用中,推薦系統(tǒng)都是核心組件之一。
推薦算法是整個推薦系統(tǒng)中最核心、最關(guān)鍵的部分,很大程度上決定了推薦系統(tǒng)性能的優(yōu)劣。目前,主要的推薦算法包括:
- 基于內(nèi)容推薦
- 基于行為協(xié)同過濾推薦
- 基于關(guān)聯(lián)規(guī)則推薦
- 基于效用推薦
- 基于知識推薦
- 基于上下文推薦
- 基于深度學(xué)習(xí)的推薦
- 組合推薦
基于內(nèi)容的推薦
基于內(nèi)容的推薦(Content-based Recommendation)是信息過濾技術(shù)的延續(xù)與發(fā)展,它是建立在項目的內(nèi)容信息上作出推薦的,而不需要依據(jù)用戶對項目的評價意見,更多地需要用機(jī)器學(xué)習(xí)的方法從關(guān)于內(nèi)容的特征描述的事例中得到用戶的興趣資料。
在基于內(nèi)容的推薦系統(tǒng)中,項目或?qū)ο笫峭ㄟ^相關(guān)的特征的屬性來定義,系統(tǒng)基于用戶評價對象 的特征,學(xué)習(xí)用戶的興趣,考察用戶資料與待預(yù)測項目的相匹配程度。用戶的資料模型取決于所用學(xué)習(xí)方法,常用的有決策樹、神經(jīng)網(wǎng)絡(luò)和基于向量的表示方法等?;趦?nèi)容的用戶資料是需要有用戶的歷史數(shù)據(jù),用戶資料模型可能隨著用戶的偏好改變而發(fā)生變化。
基于內(nèi)容推薦方法的優(yōu)點是:
1)不需要其它用戶的數(shù)據(jù),沒有冷開始問題和稀疏問題。
2)能為具有特殊興趣愛好的用戶進(jìn)行推薦。
3)能推薦新的或不是很流行的項目,沒有新項目問題。
4)通過列出推薦項目的內(nèi)容特征,可以解釋為什么推薦那些項目。
5)已有比較好的技術(shù),如關(guān)于分類學(xué)習(xí)方面的技術(shù)已相當(dāng)成熟。
缺點:
要求內(nèi)容能容易抽取成有意義的特征,要求特征內(nèi)容有良好的結(jié)構(gòu)性,并且用戶的口味必須能夠用內(nèi)容特征形式來表達(dá),不能顯式地得到其它用戶的判斷情況。
基于行為的協(xié)同過濾
協(xié)同過濾推薦(Collaborative Filtering Recommendation)技術(shù)是推薦系統(tǒng)中應(yīng)用最早和最為成功的技術(shù)之一。它一般采用最近鄰技術(shù),利用用戶的歷史喜好信息計算用戶之間的距離,然后利用目標(biāo)用戶的最近鄰居用戶對商品評價的加權(quán)評價值來預(yù)測目標(biāo)用戶對特定商品的喜好程度,系統(tǒng)從而根據(jù)這一喜好程度來對目標(biāo)用戶進(jìn)行推薦。
該算法分為基于用戶的協(xié)同推薦和基于項目的協(xié)同推薦?;谟脩舻膮f(xié)同過濾,將目標(biāo)用戶對項目的歷史評價與其他用戶匹配,找到相似用戶,再將相似用戶感興趣的項目推薦給目標(biāo)用戶。基于項目的協(xié)同過濾是指利用項目間的相似性,而非用戶間的相似性來計算預(yù)測值,從而實施推薦。
協(xié)同過濾最大優(yōu)點是對推薦對象沒有特殊的要求,能處理非結(jié)構(gòu)化的復(fù)雜對象,如音樂、電影。
和基于內(nèi)容的過濾方法相比,協(xié)同過濾具有如下的優(yōu)點:
1) 能夠過濾難以進(jìn)行機(jī)器自動內(nèi)容分析的信息,如藝術(shù)品,音樂等。
2) 共享其他人的經(jīng)驗,避免了內(nèi)容分析的不完全和不精確,并且能夠基于一些復(fù)雜的,難以表述的概念(如信息質(zhì)量、個人品味)進(jìn)行過濾。
3) 有推薦新信息的能力。可以發(fā)現(xiàn)內(nèi)容上完全不相似的信息,用戶對推薦信息的內(nèi)容事先是預(yù)料不到的。這也是協(xié)同過濾和基于內(nèi)容的過濾一個較大的差別,基于內(nèi)容的過濾推薦很多都是用戶本來就熟悉的內(nèi)容,而協(xié)同過濾可以發(fā)現(xiàn)用戶潛在的但自己尚未發(fā)現(xiàn)的興趣偏好。
4) 能夠有效的使用其他相似用戶的反饋信息,較少用戶的反饋量,加快個性化學(xué)習(xí)的速度。
雖然協(xié)同過濾作為一種典型的推薦技術(shù)有其相當(dāng)?shù)膽?yīng)用,但協(xié)同過濾仍有許多的問題需要解決。
缺點:
存在數(shù)據(jù)稀疏和冷啟動問題
(1)數(shù)據(jù)稀疏:不同用戶的行為交集還是非常小。如果考慮將用戶與項目之間已存在的行為關(guān)系占系統(tǒng)全部可存在的行為關(guān)系的比重來預(yù)估稀疏 性,那么據(jù)統(tǒng)計,Movielens 數(shù)據(jù)集的稀疏度是 4.5%,Netflix 是 1.2%,需要說明的是這就已經(jīng)算非常密的數(shù)據(jù)了。
(2)冷啟動問題就是指在沒有大量可參考的有用數(shù)據(jù)下,對用戶設(shè)計推薦系統(tǒng)。問題可細(xì)致劃分為三種:
1)用戶冷啟動:是指新用戶剛開始注冊使用,沒有可參考的歷史數(shù)據(jù)。
2)項目冷啟動:新上架的項目,沒有被消費的記錄。
3)系統(tǒng)冷啟動:系統(tǒng)剛開始發(fā)布運行,交易記錄中沒有任何數(shù)據(jù)信息。
為了有效解決冷啟動問題,匹茲堡大學(xué)有學(xué)者在基于協(xié)同過濾的算法上提出使用社區(qū)會員信息來改進(jìn)推薦系統(tǒng)。因為在線社區(qū)的存在就是以特定的相似興趣為基礎(chǔ),所以通過社區(qū)會員信息可以有效提取到用戶的興趣愛好信息,方便建立用戶畫像。
基于關(guān)聯(lián)規(guī)則推薦
基于關(guān)聯(lián)規(guī)則的推薦(Association Rule-based Recommendation)是以關(guān)聯(lián)規(guī)則為基礎(chǔ),把已購商品作為規(guī)則頭,規(guī)則體為推薦對象。關(guān)聯(lián)規(guī)則挖掘可以發(fā)現(xiàn)不同商品在銷售過程中的相關(guān)性,在零售業(yè)中已經(jīng)得到了成功的應(yīng)用。
核心思想是:從大量的用戶行為數(shù)據(jù)中抽取潛在有用的關(guān)聯(lián)規(guī)則,向用戶推薦其感興趣的項目。通俗地說,就是發(fā)現(xiàn)項目A和項目B具有的交易關(guān)系。比如購買牛奶的同時很多人也會購買面包。
算法的第一步關(guān)聯(lián)規(guī)則的發(fā)現(xiàn)最為關(guān)鍵且最耗時,是算法的瓶頸,但可以離線進(jìn)行。其次,商品名稱的同義性問題也是關(guān)聯(lián)規(guī)則的一個難點。
優(yōu)點:
- 能發(fā)現(xiàn)新興趣點;
- 不要領(lǐng)域知識。
缺點:
- 規(guī)則抽取難、耗時;
- 產(chǎn)品名同義性問題;
- 個性化程度低。
基于效用推薦
基于效用的推薦(Utility-based Recommendation)是建立在對用戶使用項目的效用情況上計算的。其核心問題是怎么樣為每一個用戶去創(chuàng)建一個效用函數(shù),因此,用戶資料模型很大 程度上是由系統(tǒng)所采用的效用函數(shù)決定的。
基于效用推薦的好處是它能把非產(chǎn)品的屬性,如提供商的可靠性(Vendor Reliability)和產(chǎn)品的可得性(Product Availability)等考慮到效用計算中。
優(yōu)點:
- 無冷開始和稀疏問題;
- 對用戶偏好變化敏感;
- 能考慮非產(chǎn)品特性。
缺點:
- 用戶必須輸入效用函數(shù);
- 推薦是靜態(tài)的,靈活性差;
- 屬性重疊問題。
基于知識推薦
基于知識的推薦技術(shù),首先要預(yù)置用戶知識和項目知識,然后在明確用戶需求的基礎(chǔ)上進(jìn) 行推薦。項目知識依靠于項目本身,所以不同項目的系統(tǒng),其知識庫區(qū)別也較大。基于知識的推薦最大好處就是擺脫了對評分?jǐn)?shù)據(jù)的依賴,且不存在冷啟動問題。
基于知識的推薦可以分為三類:基于KDD(KnowledgeDiscoveryinDatabase)的推薦、基于CBR(CaseBasedReasoning)的推薦和基于知識推理的推薦。
基于KDD的推薦系統(tǒng)是將數(shù)據(jù)挖據(jù)與傳統(tǒng)推薦系統(tǒng)相結(jié)合,挖掘數(shù)據(jù)中隱含的有價值知識和信息,以此向用戶做出推薦;
基于CBR的推薦系統(tǒng)以確定用戶需求為前提,再過濾和選擇已有案例,并根據(jù)推薦的反饋作出修正調(diào)整。
基于知識推理的推薦系統(tǒng)需要三部分知識:用戶知識、項目知識和功能知識,采用統(tǒng)一的 知識表示方式來表示用戶概要和項目,并采用各種知識推理方法在用戶概要和項目之間作出匹配,在此基礎(chǔ)上向用戶實施推薦。
優(yōu)點:
- 能把用戶需求映射到產(chǎn)品上;
- 能考慮非產(chǎn)品屬性。
- 不依賴于用戶偏好歷史記錄,能夠即時響應(yīng)用戶的推薦需求,不受用戶偏好改變的影響,也不存在冷啟動問題。
缺點:
- 知識難獲得,專業(yè)產(chǎn)品知識庫構(gòu)建難度大;
- 推薦是靜態(tài)的。
基于上下文的推薦
大多數(shù)推薦系統(tǒng)都是研究和處理用戶和項目之間的二元關(guān)系,而忽略了時間、地點、周圍 人等上下文信息。在推薦系統(tǒng)中引入上下文信息,可以有效地提高推薦精度。
將時間上下文信息添加到推薦系統(tǒng)中,可以有效的反映出用戶變化的興趣,也可以看出項目的生命周期以及季節(jié)效應(yīng)。在加入時間信息后,推薦系統(tǒng)從靜態(tài)演變?yōu)閯討B(tài),用戶的行為數(shù)據(jù)就變?yōu)闉橐唤M時間序列。
優(yōu)點:
提高推薦精度。
缺點:
- 數(shù)據(jù)量大,計算復(fù)雜,算法運行效率低。
- 稀疏性、冷啟動、隱私與安全方面都存在問題。
基于深度學(xué)習(xí)的推薦
基于深度學(xué)習(xí)的推薦是將深度學(xué)習(xí)技術(shù)糅雜在傳統(tǒng)的推薦算法(比如基于內(nèi)容的推薦、協(xié)同過濾推薦)之中,或使用無監(jiān)督學(xué)習(xí)方法對項目進(jìn)行聚類,或使用監(jiān)督學(xué)習(xí)方法對項目進(jìn)行分類,是使用多層感知器、卷積神經(jīng)網(wǎng)絡(luò)、循環(huán)神經(jīng)網(wǎng)絡(luò)、遞歸神經(jīng)網(wǎng)絡(luò)等對數(shù)據(jù)加工處理提取特征。
基于深度學(xué)習(xí)主要是體現(xiàn)出它使用機(jī)器學(xué)習(xí)的數(shù)據(jù)處理技術(shù),通過組合低層特征形成更加稠密的高層語義抽象,從而自動發(fā)現(xiàn)數(shù)據(jù)的分布式特征表示,解決了傳統(tǒng)機(jī)器學(xué)習(xí)中需要人工設(shè)計特征的問題。深度學(xué)習(xí)技術(shù)是要依托于傳統(tǒng)推薦技術(shù)中,可以說是對傳統(tǒng)推薦技術(shù)的增強(qiáng).
該類型推薦多用于處理圖像、文本、音頻等數(shù)據(jù)。比如電子商務(wù)平臺、電影售票系統(tǒng)等,主營項目都會附帶有明顯的圖片介紹,這就可以根據(jù)用戶當(dāng)前瀏覽或是歷史購買記錄,來獲取圖片信息,深度學(xué)習(xí)提取出圖像的特征表示,再以此從項目數(shù)據(jù)庫中比對類似特征的圖像,從而推薦;像亞馬遜這樣的網(wǎng)上書店或小說平臺,主營項目以文本信息為主。經(jīng)過深度學(xué)習(xí),也可以提取出文本的風(fēng)格、類型、特色等特征,從而匹配推薦;對于音樂播放器這類的以音頻為主系統(tǒng),先將音頻數(shù)據(jù)變?yōu)閿?shù)字信號,再進(jìn)行深度學(xué)習(xí),用數(shù)字信息抽象表示音頻特征(舒緩、嘻哈、古典等),從而可訓(xùn)練出用戶的聽曲風(fēng)格。
基于深度學(xué)習(xí)推薦的最優(yōu)勢點就是可針對多種類型的輸入數(shù)據(jù),都可以提取特征,并訓(xùn)練模型,可以實現(xiàn)多元化的推薦,但是要想得到更好的推薦效果,就需要更長的時間來訓(xùn)練模型。
基于深度學(xué)習(xí)的推薦系統(tǒng)中的常用神經(jīng)網(wǎng)絡(luò)如下:
卷積神經(jīng)網(wǎng)絡(luò):卷積神經(jīng)網(wǎng)絡(luò)多用于處理圖像數(shù)據(jù),所以經(jīng)常是通過處理分析用戶項目的歷史圖片信息來推薦類似風(fēng)格和顏色布局圖片的其他項目。
循環(huán)神經(jīng)網(wǎng)絡(luò):這種神經(jīng)網(wǎng)絡(luò)多用于處理序列數(shù)據(jù),比如語音識別,要想語義翻譯準(zhǔn)確,就要根據(jù)上文環(huán)境,所以循環(huán)神經(jīng)網(wǎng)絡(luò)在處理這類問題時就具有一定的優(yōu)勢。
優(yōu)點:
可跨平臺進(jìn)行信息融合,推薦效果較好。
缺點:
學(xué)習(xí)過程耗時,可解釋性差。
組合推薦
由于各種推薦方法都有優(yōu)缺點,所以在實際中,組合推薦(Hybrid Recommendation)經(jīng)常被采用。研究和應(yīng)用最多的是內(nèi)容推薦和協(xié)同過濾推薦的組合。最簡單的做法就是分別用基于內(nèi)容的方法和協(xié)同過濾推薦方法去產(chǎn)生一個推薦預(yù)測結(jié)果,然后用某方法組合其結(jié)果。盡管從理論上有很多種推薦組合方法,但在某一具體問題中并不見得都有效,組合推薦一個最重要原則就是通 過組合后要能避免或彌補各自推薦技術(shù)的弱點。
在組合方式上,有研究人員提出了七種組合思路:
1)加權(quán)(Weight):加權(quán)多種推薦技術(shù)結(jié)果。
2)變換(Switch):根據(jù)問題背景和實際情況或要求決定變換采用不同的推薦技術(shù)。
3)混合(Mixed):同時采用多種推薦技術(shù)給出多種推薦結(jié)果為用戶提供參考。
4)特征組合(Feature combination):組合來自不同推薦數(shù)據(jù)源的特征被另一種推薦算法所采用。
5)層疊(Cascade):先用一種推薦技術(shù)產(chǎn)生一種粗糙的推薦結(jié)果,第二種推薦技術(shù)在此推薦結(jié)果的基礎(chǔ)上進(jìn)一步作出更精確的推薦。
6)特征擴(kuò)充(Feature augmentation):一種技術(shù)產(chǎn)生附加的特征信息嵌入到另一種推薦技術(shù)的特征輸入中。
7)元級別(Meta-level):用一種推薦方法產(chǎn)生的模型作為另一種推薦方法的輸入。
推薦算法之用戶推薦(UserCF)和物品推薦(ItemCF)對比
一、定義
UserCF:推薦那些和他有共同興趣愛好的用戶喜歡的物品;
ItemCF:推薦那些和他之前喜歡的物品類似的物品;
根據(jù)用戶推薦重點是反應(yīng)和用戶興趣相似的小群體的熱點,根據(jù)物品推薦著重與用戶過去的歷史興趣,即:
UserCF是某個群體內(nèi)的物品熱門程度;
ItemCF是反應(yīng)本人的興趣愛好,更加個性化。
二、新聞類網(wǎng)站采用 UserCF 的原因:
用戶大都喜歡熱門新聞,特別細(xì)粒度的個性化可忽略不計;
個性化新聞推薦更強(qiáng)調(diào)熱點,熱門程度和實效性是推薦的重點,個性化重要性則可降低;
ItemCF需要維護(hù)一張物品相關(guān)度的表,當(dāng)物品量更新速度太快時,此表的維護(hù)在技術(shù)上有難度。新聞類網(wǎng)站對于新用戶可直接推薦熱門新聞即可。
對于電商、音樂、圖書等網(wǎng)站而言,ItemCF的優(yōu)勢更大:
用戶的興趣比較固定和持久;
不需要太過考慮流行度,只需要幫用戶發(fā)現(xiàn)他研究領(lǐng)域相關(guān)物品即可
技術(shù)角度考量:
UserCF需要維護(hù)一個用戶相似度矩陣;
ItemCF需要維護(hù)一個物品相似度矩陣。