推荐系统中所使用的混合技术介绍
from:http://blog.csdn.net/u010140338/article/details/45014307
推薦系統(tǒng)中所使用的混合技術介紹
?
在推薦系統(tǒng)實際運用中,各種混合技術是其中一項極為重要的核心技術。在工程實踐中我們發(fā)現(xiàn),混合技術對提升推薦效果、改進推薦系統(tǒng)的性能等都有重要意義,因此本文對該專題進行如下的一些總結和介紹。
引言
在這個信息爆炸的時代,消費者面臨眾多選擇、未知的領域、過載的信息時,往往無所適從;然而與此同時,內容的生產(chǎn)者(例如商家)也在苦苦尋覓合適的用戶,尋找最便捷的渠道,而解決這兩類矛盾的最好工具就是推薦系統(tǒng)。
推薦系統(tǒng)緣起于搜索系統(tǒng),在底層系統(tǒng)上兩者有大量相通的技術,但是在相應用戶需求和產(chǎn)生應用的場景上,推薦系統(tǒng)離用戶更進一步:當用戶的需求具體而明確時,他搜索;但當用戶需求不明確或難以表達時,他需要推薦。另一方面,當用戶需要找某個領域下公認的、熱門的內容時,他搜索;但當用戶需要找個性化的內容時,他需要推薦。很多場景下,用戶的個性化需求是很難轉化為簡短明確的查詢詞的,例如“今天中午想找個附近的、符合我口味的、消費不貴的餐館”這樣的需求,非常常見但很難用查詢詞來表達清楚。推薦系統(tǒng)恰好可以填補這個空白,根據(jù)挖掘用戶歷史行為來將個性化的需求深入挖掘清楚,實現(xiàn)用武之地。
目前在電商、視頻、文學、社交網(wǎng)絡等等各類網(wǎng)站或應用中,推薦系統(tǒng)都開始扮演起一個越來越重要的角色。但是無論應用于什么系統(tǒng),歸根結底最關鍵的是必須保證高質量的推薦效果。
撇開產(chǎn)品、交互設計、基礎數(shù)據(jù)等方面,如果從系統(tǒng)和算法的角度來看,混合推薦的思路是其中最為重要的部分。毫不夸張的說,在真實世界的應用中,無論產(chǎn)品規(guī)模的大或小、用戶的多與少,只要是想要追求推薦效果的高水準,那么混合推薦一定是必不可少的一門絕技。原因為何?——下面來作個解釋
為什么要有混合技術
推薦技術發(fā)展至今已經(jīng)歷了十余年,這期間眾多的算法被提出并在業(yè)界運用,經(jīng)過大量的實踐,人們發(fā)現(xiàn)似乎沒有任何一個方法可以獨領風騷、包打天下,每種推薦方法都有其局限性,下面舉些典型的例子說明:
基于物品的協(xié)同過濾(Item-based Collaborative Filtering)是推薦系統(tǒng)中知名度最高的方法,由亞馬遜(Amazon)公司最早提出并在電商行業(yè)內被廣泛使用。但基于物品的協(xié)同過濾在面對物品冷啟動,以及數(shù)據(jù)稀疏的情況下效果急劇下降。同時基于物品的協(xié)同過濾傾向于推薦用戶購買過商品的類似商品,往往會出現(xiàn)多樣性不足、推薦驚喜度低的問題。
基于用戶的協(xié)同過濾(User-based Collaborative Filtering)方法在推薦結果的新穎性方面有一定的優(yōu)勢,但是推薦結果的相關性較弱,且容易受潮流影響而傾向于推薦出大眾性物品。同時新用戶或低活躍用戶也會遇到冷啟動(Cold-Start)的棘手問題。
在多個推薦算法競賽中,我們發(fā)現(xiàn)隱語義與矩陣分解模型(Latent Factor Model)及其各種改進升級方法(包括SVD++等)是推薦精度最好的單一模型方法,但當數(shù)據(jù)規(guī)模大時其運算性能會明顯降低,同時基于MF的方法依賴全局進行計算信息,因而很難作增量更新,導致實際工程中會遇到不少困難。另外,隱語義模型還存在調整困難、可解釋性差等問題。
基于內容的推薦算法(Content-based Recommendation)是最直觀的推薦算法,這種方法實現(xiàn)簡單,不存在冷啟動問題,應對的場景豐富,屬于“萬金油”型打法。但在一些算法公開評測中,基于內容的方法效果都是墊底的之一。同時該算法依賴內容的描述程度,往往受限于對文本、圖像或音視頻內容進行分析的深度。
基于統(tǒng)計思想的一些方法,例如Slope One,關聯(lián)規(guī)則(Association Rules),或者分類熱門推薦等,計算速度快,但是對用戶個性化偏好的描述能力弱,實際應用時也存在各種各樣的問題,在此不多贅述。
怎樣混合是個問題
解決各種推薦方法“硬傷”的一條最好的解決途徑就是混合技術——它的思路非常明確,俗稱“三個臭皮匠頂個諸葛亮”——即綜合運用各種方法的優(yōu)勢、揚長避短,組合起來成為一個效果強大的系統(tǒng)。
道理雖然簡單,但是怎樣組合才能真正發(fā)揮威力?聯(lián)想到一個有趣的電影片段:周星馳的喜劇電影《國產(chǎn)零零漆》中,神志不清的特工達文西“發(fā)明”了一個“要你命3000”的武器,這個“超級武器霸王”把一堆街頭武器——“西瓜刀、鐵鏈、火藥、硫酸、毒藥、手槍、手榴彈、殺蟲劑”——用繩子綁在一起,但是完全沒有作用,被對手一槍擊斃。
在實際應用中,從系統(tǒng)、算法、結果、處理流程等不同的角度,都有一些具體的混合策略。下面依次從不同的角度來進行介紹。
多段組合混合推薦框架
推薦系統(tǒng)一方面要處理海量的用戶、物品的數(shù)據(jù),一方面要實時相應線上用戶的請求,迅速的生成結果并返回。在這里存在一個矛盾是,離線數(shù)據(jù)挖掘(例如常見的Hadoop系統(tǒng))雖然擅長處理大量數(shù)據(jù),但運算周期長(小時級或天級)、實時推薦能力差,而在線系統(tǒng)由于要迅速(例如幾十毫秒)計算出推薦結果,無法承擔過于消耗資源的算法。
圖1:Netflix的Online-Nearline-Offline混合推薦系統(tǒng)
在業(yè)界實際部署時,解決此類常見問題的流行方法是采用三段式混合系統(tǒng):即Online-Nearline-Offline Recommendation(在線-近線-離線)三層混合機制。曾經(jīng)舉辦過著名的國際推薦競賽的Netflix公司,在所公開的后臺推薦系統(tǒng)架構中,即采用了該混合系統(tǒng)(如圖1)。
其中Online系統(tǒng)直接面向用戶,是一個高性能和高可用性的推薦服務,在這里通常會設計有緩存(Cache)系統(tǒng),來處理熱門的請求(Query)重復計算的問題。而當Cache不命中的情況下,Online推薦運行一個運算簡單可靠的算法,及時生成結果。Online系統(tǒng)后是Nearline系統(tǒng),這個系統(tǒng)部署在服務端,一方面會接收Online系統(tǒng)發(fā)過來的請求,將Online計算的一些緩存結果,采用更復雜的算法重新計算并更新后更新緩存。另一方面Nearline是銜接Online和Offline系統(tǒng)的橋梁,因為Offline結果往往會挖掘長期的、海量的用戶行為日志,消耗的資源大、挖掘周期長,但是Offline推薦系統(tǒng)計算所得的結果質量往往是最高的,這些結果會通過Nearline系統(tǒng)輸送到線上,發(fā)揮作用。
另外一個不可忽視的問題是用戶反饋的及時收集,并及時用于調整推薦結果。挖掘用戶的反饋對調整推薦結果有莫大的幫助,但這個調整往往越及時越好,否則用戶很容易對結果不滿意而流失。這個點擊挖掘和反饋的功能往往由Nearline推薦系統(tǒng)來承擔,因為該系統(tǒng)收集前端反饋比較方便,又可以保證適當?shù)奶幚頃r長。
加權型混合推薦技術
上面介紹了從系統(tǒng)架構的角度如何進行混合。而從算法的角度來看,則最常用的是采用加權型的混合推薦技術,即將來自不同推薦算法生成的候選結果及結果的分數(shù),進一步進行組合(Ensemble)加權,生成最終的推薦排序結果。
具體來看,比較原始的加權型的方法是根據(jù)推薦效果,固定賦予各個子算法輸出結果的權重,然后得到最終結果。很顯然這種方法無法靈活處理不同的上下文場景,因為不同的算法的結果,可能在不同的場景下質量有高有低,固定加權系統(tǒng)無法各取所長。所以更好的思路是設置訓練樣本,然后比較用戶對推薦結果的評價、與系統(tǒng)的預測是否相符,根據(jù)訓練得到的結果生成加權的模型,動態(tài)的調整權重。
圖2:加權混合技術能明顯提高推薦精度
加權混合的模型有很多,除了簡單的線性模型外,常用的有回歸模型(Logistic Regression)、RBM(Restricted Boltzmann Machines)、GBDT(Gradient Boosted Decision Trees),這三種混合模型在推薦算法競賽中大放異彩,在2009年結束的Netflix百萬美元推薦競賽中,優(yōu)勝隊伍將充分運用和多種加權混合模型的優(yōu)勢,組合后的算法推薦精度非常高。獲勝隊的Yehuda Koren在論文The BellKor Solution to the Netflix Grand Prize中對此有非常詳細的介紹。另外值得一提的是臺灣大學推薦團隊,他們通過混合甚至二次混合的方式(如圖2),將眾多單獨推薦算法的結果進行最合理的加權組合,在最近幾屆的KDD Cup數(shù)據(jù)挖掘競賽中所向披靡,經(jīng)常取得極為優(yōu)異的推薦效果。
分級型混合推薦技術
盡管上述加權組合型混合推薦技術有非常高的精度,但系統(tǒng)復雜度和運算負載都較高。在工業(yè)界實際系統(tǒng)中,往往采用一些相對簡單的方案,其中分級型混合推薦技術就是一類思想簡單但效果也不錯的方法。這種混合推薦技術根據(jù)不同的推薦場景,將不同的推薦算法按照效果優(yōu)劣進行層次性劃分。在對應的推薦場景下,優(yōu)先采用高可信度的推薦算法生成的結果,然后依次采用后續(xù)方法生成結果。
在各種推薦場景中,Top-N推薦是最為常見的一類。這種推薦應用有時需要展示較多的推薦結果,而此時一種推薦算法的結果往往不夠豐富,通常會采用分級型的混合技術,通過事先的數(shù)據(jù)挖掘,優(yōu)先將推薦精度高的算法結果先列出,然后用依次用其他方法的結果遞補。不同的推薦算法往往在精度(Precision)和召回(Recall)之間有所折衷,因此優(yōu)先列出高精度結果,長尾部分則采用高召回的結果進行補足,能兼顧對推薦結果數(shù)量和質量的兩種需求。
交叉調和技術
交叉調和技術有些類似西方釀造威士忌(Whisky)酒的過程——將純麥威士忌、谷物威士忌、或者不同產(chǎn)地、口味的陳釀進行一定比例的調配后最終成品。交叉調和推薦技術(Blending Recommendation)的主要動機是保證最終推薦結果的多樣性。因為不同用戶對同一件物品的著眼點往往各不相同,而不同的推薦算法,生成的結果往往代表了一類不同的觀察角度所生成的結果,交叉調和技術將不同推薦算法的生成結果,按照一定的配比組合在一起,打包后集中呈現(xiàn)給用戶。
交叉調和技術需要注意的問題是結果組合時的沖突解決問題,通常會設置一些額外的約束條件來處理結果的組合展示問題。另外我們發(fā)現(xiàn)為了讓用戶更多的注意到結果的多樣性,對不同類型的推薦結果輔以展示不同的推薦理由,往往能獲得更多收益。
瀑布型混合方法
瀑布型(Waterfall Model)的混合方法采用了過濾(Filtering)的設計思想,將不同的推薦算法視為不同粒度的過濾器,尤其是面對待推薦對象(Item)和所需的推薦結果數(shù)量相差極為懸殊時,往往非常適用。
在瀑布型混合技術中,前一個推薦方法過濾的結果,將輸出給后一個推薦方法,層層遞進,候選結果在此過程中會被逐步遴選,最終得到一個高精確的結果。設計瀑布型混合系統(tǒng)中,通常會將運算速度快、區(qū)分度低的算法排在前列,逐步過渡為重量級的算法,這樣的優(yōu)點是充分運用不同算法的區(qū)分度,讓寶貴的運算資源集中在少量較高候選結果的運算上。
推薦基礎特征混合技術
數(shù)據(jù)是推薦系統(tǒng)的基礎,一個完善的推薦系統(tǒng),其數(shù)據(jù)來源也是多種多樣的。從這些數(shù)據(jù)來源中我們可以抽取出不同的基礎特征。以用戶興趣模型為例,我們既可以從用戶的實際購買行為中,挖掘出用戶的“顯式”興趣,又可以用用戶的點擊行為中,挖掘用戶“隱式”興趣;另外從用戶分類、人口統(tǒng)計學分析中,也可以計算出用戶興趣;如果有用戶的社交網(wǎng)絡,那么也可以了解周圍用戶對該用戶興趣的投射,等等。另一方面,從物品(Item)的角度來看,也可以挖掘出不同的特征。
不同的基礎特征可以預先進行組合或合并,為后續(xù)的推薦算法所使用。這樣處理的優(yōu)點是將推薦算法切分得比較清楚,這樣將一個整體的推薦問題,分解為特征的抽取、組合、使用等各個環(huán)節(jié)的優(yōu)化問題,在進行個性化推薦時較為適用。
推薦模型混合技術
和特征合并的技術不同,多模型的合并技術在模型計算階段,將整個模型作為第二種算法的輸入。這種組合方式,事實上形成了一種新的獨立的推薦模型。例如在進行基于用戶的協(xié)同過濾計算的時候,在計算相鄰用戶的距離的基礎上,可以進一步根據(jù)用戶的屬性內容(Content)信息、采用基于內容的推薦的思想,進一步生成相似用戶的候選結果;或者利用用戶的社交網(wǎng)絡信息(Social Network)來擴展相鄰用戶集合。這種在算法設計階段而不是特征利用或推薦結果合并階段的混合技術,被成為推薦模型混合技術。
這種技術往往適用于數(shù)據(jù)稀疏或質量較差時,單個推薦模型結果都比較差的情況。此時對多個較差的模型的最終結果進行合并無法獲得滿意的結果(因為候選結果都比較差),因此提前在模型計算階段進行算法思路的合并,這樣能提前召回好的結果,提升推薦效果。
整體式混合推薦框架
除了上述的系統(tǒng)架構、特征、算法、推薦結果等等角度的推薦融合技術,還有很多的內容是沒有包括的,例如從商業(yè)邏輯的角度來分析,商家往往有一些特定的推薦需求或者推薦規(guī)則,需要對算法生成的結果進行調整。亦或者從交互設計的角度來看,推薦結果的展示方式等都有所不同;一些特殊的應用場景可能需要強調地域、時間等信息,對應的推薦挖掘方法和展現(xiàn)都有特殊的要求,這個時候對結果的混合往往要從整個產(chǎn)品的角度來進行設計和處理,從而能夠滿足不同的需要,這些可以被納入整體式的混合推薦框架中考慮。
討論和小結
推薦效果是一個推薦系統(tǒng)是否能獲得成功的生命線,而混合推薦技術是其中最為重要的一個環(huán)節(jié)。在各種實際應用中,廣大的研發(fā)工程師在處理很多問題時,往往都從
總結
以上是生活随笔為你收集整理的推荐系统中所使用的混合技术介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 几款开源的数据挖掘工具
- 下一篇: Valgrind使用说明