多模型融合推薦算法——從原理到實踐
2016-04-20 16:04:58 來源:紀達麒 評論:0 點擊:
1 研發(fā)背景
互聯(lián)網時代也是信息爆炸的時代,內容太多,而用戶的時間太少,如何選擇成了難題。電商平臺里的商品、媒體網站里的新聞、小說網站里的作品、招聘網站里的職位……當數量超過用戶可以遍歷的上限時,用戶就無所適從了。
對海量信息進行篩選、過濾,將用戶最關注最感興趣的信息展現(xiàn)在用戶面前,能大大增加這些內容的轉化率,對各類應用系統(tǒng)都有非常巨大的價值。
搜索引擎的出現(xiàn)在一定程度上解決了信息篩選問題,但還遠遠不夠,其存在的兩個主要弊端是:第一搜索引擎需要用戶主動提供關鍵詞來對海量信息進行篩選。當用戶無法準確描述自己的需求時,搜索引擎的篩選效果將大打折扣,而用戶將自己的需求和意圖轉化成關鍵詞的過程有時非常困難(例如“找家附近步行不太遠就可以到的餐廳,別太辣的”)。更何況用戶是懶惰的,很多時候都不愿意打字。第二是搜索結果往往會照顧大多數用戶的點擊習慣,以熱門結果為主,很難充分體現(xiàn)出個性化需求。
解決這個問題的最好工具就是——推薦系統(tǒng)(Recommendation System)。
推薦系統(tǒng)的效果好壞,體現(xiàn)在推薦結果的用戶滿意度上,按不同的應用場景,其量化的評價指標包括點擊率、成交轉化率、停留時間增幅等。為了實現(xiàn)優(yōu)秀的推薦效果,眾多的推薦算法被提出,并在業(yè)界使用。但是其中一類方法非常特殊,我們稱為多模型融合算法。融合算法的意思是,將多個推薦算法通過特定的方式組合的方法。融合在推薦系統(tǒng)中扮演著極為重要的作用,本文結合達觀數據的實踐經驗為大家進行系統(tǒng)性的介紹。
為什么需要融合推薦算法
推薦系統(tǒng)需要面對的應用場景往往存在非常大的差異,例如熱門/冷門的內容、新/老用戶,時效性強/弱的結果等,這些不同的上下文環(huán)境中,不同推薦算法往往都存在不同的適用場景。不存在一個推薦算法,在所有情況下都勝過其他的算法。而融合方法的思想就自然而然出現(xiàn)了,就是充分運用不同分類算法各種的優(yōu)勢,取長補短,組合形成一個強大的推薦框架。俗話說就叫“三個臭皮匠頂個諸葛亮”。
在介紹融合方法前,先簡單介紹幾類常見推薦算法的優(yōu)缺點
基于物品的協(xié)同過濾(Item-based Collaborative Filtering)是推薦系統(tǒng)中知名度最高的方法,由亞馬遜(Amazon)公司最早提出并在電商行業(yè)內被廣泛使用。
基于物品的協(xié)同過濾在面對物品冷啟動(例如新上架物品),或行為數據稀疏的情況下效果急劇下降。另外,基于物品的協(xié)同過濾傾向于為用戶推薦曾購買過的類似商品,通常會出現(xiàn)多樣性不足、推薦驚喜度低的問題。
而另一類協(xié)同過濾方法,基于用戶的協(xié)同過濾(User-based Collaborative Filtering)方法,其公式略有不同:
基于用戶的協(xié)同過濾在推薦結果的新穎性方面有一定的優(yōu)勢,但是推薦結果的相關性較弱,而且容易受潮流影響,推薦大眾熱門物品。同時新用戶或低活躍用戶也會遇到用戶冷啟動的棘手問題。
還有一類方法稱為基于模型的方法。常見的有隱語義與矩陣分解模型(Latent Factor Model),LFM對評分矩陣通過迭代的方法進行矩陣分解,原來評分矩陣中的missing value可以通過分解后的矩陣求得。
在達觀數據的實踐經驗里,LFM通常是推薦精度較好的一類計算模型。但當數據規(guī)模大時其運算性能會明顯降低,同時計算依賴全局信息,因而很難作增量更新,導致實際工程中會遇到不少困難。而且隱語義模型還存在調整困難、可解釋性差等問題。
基于內容的推薦算法(Content-based Recommendation)是最直觀的推薦算法,這個方法實現(xiàn)簡單方便,不存在冷啟動問題,應對的場景豐富,屬于“萬金油”型打法。例如按同類別、同標簽等進行推薦。但在一些算法公開評測中,基于內容的方法效果都是效果較差的。原因時基于內容的方法缺少用戶行為的分析,存在“結果相關但是不是用戶想要的”這樣難以克服的問題。同時該算法往往受限于對文本、圖像或音視頻內容分析的技術深度,很難準確把握住用戶真正關注的“內容點”。
基于統(tǒng)計思想的一些方法,例如Slope One,關聯(lián)規(guī)則(Association Rules),或者分類熱門推薦等,計算速度快,但是對用戶個性化偏好的描述能力弱,實際應用時也存在各種各樣的問題,在此不多贅述。
即使相同的算法,當使用不同數據源時也會產生不同的推薦結果。比如協(xié)同過濾,使用瀏覽數據和使用交易數據得到的結果就不一樣。使用瀏覽數據的覆蓋面比較廣,而使用交易數據的偏好精度比較高。
常見的多模型融合算法
達觀數據的眾多實踐發(fā)現(xiàn),多模型融合算法可以比單一模型算法有極為明顯的效果提升。但是怎樣進行有效的融合,充分發(fā)揮各個算法的長處?這里總結一些常見的融合方法:
1)線性加權融合法
線性加權是最簡單易用的融合算法,工程實現(xiàn)非常方便,只需要匯總單一模型的結果,然后按不同算法賦予不同的權重,將多個推薦算法的結果進行加權,即可得到結果:
是給用戶(user)推薦商品(item)的得分, 是算法K的權重,是算法k得到的用戶(user)對商品item的推薦得分。這種融合方式實現(xiàn)簡單,但效果較差。因為線性加權的參數是固定的,實踐中參數的選取通常依賴對全局結果升降的總結,一旦設定后,無法靈活的按照不同的推薦場景來自動變換。比如如果某個場景用算法A效果較好,另外一種場景用算法B效果較好,線性融合的方式在這種情況下不能取得好的效果。為了解決這個問題,達觀數據進行了改進,通過引入動態(tài)參數的機制,通過訓練用戶對推薦結果的評價、與系統(tǒng)的預測是否相符生成加權模型,動態(tài)的調整權重使得效果大幅提升。
2) 交叉融合法
交叉融合常被稱為Blending方法,其思路是在推薦結果中,穿插不同推薦模型的結果,以確保結果的多樣性。
這種方式將不同算法的結果組合在一起推薦給用戶
交叉融合法的思路是“各花入各眼”,不同算法的結果著眼點不同,能滿足不同用戶的需求,直接穿插在一起進行展示。這種融合方式適用于同時能夠展示較多條結果的推薦場景,并且往往用于算法間區(qū)別較大,如分別基于用戶長期興趣和短期興趣計算獲得的結果。
3)瀑布融合法
瀑布型(Waterfall Model)融合方法采用了將多個模型串聯(lián)的方法。每個推薦算法被視為一個過濾器,通過將不同粒度的過濾器前后銜接的方法來進行:
在瀑布型混合技術中,前一個推薦方法過濾的結果,將作為后一個推薦方法的候選集合輸入,層層遞進,候選結果在此過程中會被逐步遴選,最終得到一個量少質高的結果集合。這樣設計通常用于存在大量候選集合的推薦場景上。
設計瀑布型混合系統(tǒng)中,通常會將運算速度快、區(qū)分度低的算法排在前列,逐步過渡為重量級的算法,讓寶貴的運算資源集中在少量較高候選結果的運算上。在面對候選推薦對象(Item)數量龐大,而可曝光的推薦結果較少,要求精度較高、且運算時間有限的場景下,往往非常適用。
4)特征融合法
不同的原始數據質量,對推薦計算的結果有很大的影響。以用戶興趣模型為例,我們既可以從用戶的實際購買行為中,挖掘出用戶的“顯式”興趣,又可以用用戶的點擊行為中,挖掘用戶“隱式”興趣;另外從用戶分類、人口統(tǒng)計學分析中,也可以推測用戶偏好;如果有用戶的社交網絡,那么也可以了解周圍用戶對該用戶興趣的影響。
所以通過使用不同的數據來源,抽取不同的特征,輸入到推薦模型中進行訓練,然后將結果合并。這種思路能解決現(xiàn)實中經常遇到的數據缺失的問題,因為并非所有用戶都有齊全的各類數據,例如有些用戶就缺少交易信息,有些則沒有社交關系數據等。通過特征融合的方法能確保模型不挑食,擴大適用面。
5)預測融合法
推薦算法也可以被視為一種“預測算法”,即我們?yōu)槊總€用戶來預測他接下來最有可能喜歡的商品。而預測融合法的思想是,我們可以對每個預測算法再進行一次預測,即不同的算法的預測結果,我們可以訓練第二層的預測算法去再次進行預測,并生成最終的預測結果。
如下圖所示,我們把各個推薦算法的預測結果作為特征,將用戶對商品的反饋數據作為訓練樣本,形成了第二層預測模型的訓練集合,具體流程如下
圖中的二層預測模型可以使用常用的分類算法,如SVM、隨機森林、最大熵等,但達觀實踐中,融合效果較好的是GBDT(Gradient Boosting Decision Tree)方法。
6)分類器Boosting思想
推薦問題有時也可以轉化為模式分類(Pattern Classification)問題去看待,我們將候選集合是否值得推薦劃分為幾個不同的集合,然后通過設計分類器的方法去解決。這樣一來我們就可以用到分類算法中的Boosting思想,即將若干個弱分類器,組合成一個強分類器的方法。Boosting的核心思想是每輪訓練后對預測錯誤的樣本賦以較大的權重,加入后續(xù)訓練集合,也就是讓學習算法在后續(xù)的訓練集中對較難的判例進行強化學習,從而得到一個帶權重的預測函數序列h,預測效果好的預測函數權重較大,反之較小。最終的預測函數H對分類問題采用有權重的投票方式,對回歸問題采用加權平均的方法對新示例進行判別。算法的流程如下:(參考自treeBoost論文)
通過模型進行融合往往效果最好,但實現(xiàn)代價和計算開銷也比較大。
達觀的多級融合技術
在達觀數據(http://datagrand.com)的實踐中,采用的多級融合架構如下:
Online系統(tǒng)
直接面向用戶,是一個高性能和高可用性的推薦服務,其中的Online Ensemble模塊會融合Nearline計算的推薦結果以及基于content Base的推薦結果。Online系統(tǒng)往往請求壓力比較大,需要在較短的時間內返回結果,所以這里往往使用最簡單的優(yōu)先級融合算法。
Nearline系統(tǒng)
這個系統(tǒng)部署在服務端,一方面會接收User Behavior Log,根據用戶最新的動作行為,生成推薦結果,并且和Offline Model進行融合,達觀這邊使用通過點擊反饋進行調整的線性融合方法,具體方法如下,
- Nearline獲取用戶的展現(xiàn)日志和點擊日志。展現(xiàn)日志包括了用戶展現(xiàn)的哪些item,以及這些item是通過什么算法推薦出來,推薦的位置,以及對應的權重
- 如果是展現(xiàn)日志,則減小推薦出item對應策略的權重,更新方式如下
是更新后的權重,是展現(xiàn)位置i的平均點擊率,是算法K對該item的得分。是該item的總得分。是位置點擊率的衰減常數、是算法點擊率的衰減常數,可以根據具體的業(yè)務場景設置不同的值。
- 如果是點擊日志,則增加推薦出item的對應策略的權重,更新方式如下
是更新后的權重,是算法K對該item的得分,是該item的總得分,是點擊衰減常數
- 根據更新后的權重,重新計算該用戶的推薦結果。
通過這種融合方式,會為每個用戶生成一個加權線性融合算法的Model,根據這個Model計算出對應的推薦結果。
Offline系統(tǒng)
挖掘長期的、海量的用戶行為日志。以優(yōu)化點擊率為例,我們可以把用戶的展現(xiàn)過的item,以及是否點擊形成訓練數據,我們就需要生成一個是否點擊的分類模型。我們的分類器分為兩個Level: L1層和L2層。L1層是基礎分類器,可以使用協(xié)同過濾、矩陣分解、contentbase等基礎算法;L2層基于L1層,將L1層的分類結果形成特征向量,再組合一些其他的特征后,形成L2層分類器(如GBDT)的輸入。
Ensemble的訓練過程稍微復雜,因為L1層模型和L2層模型要分別進行訓練后再組合。實踐中我們將訓練樣本按照特定比例切分開,分別簡稱為Train pig和Test Pig。基于劃分后的樣本,整個訓練過程步驟如下:
- 使用Train pig抽取特征,形成特征向量后訓練L1層模型
- 使用訓練好的L1層模型,預測Test pig,將預測結果形成L2層的輸入特征向量
- 結合其他特征后,形成L2層的特征向量,并使用Test pig訓練L2層模型
- 使用全部訓練樣本(Tain pig + Test pig)重新訓練L1層模型
- 將待測樣本Test抽取特征后先后使用上述訓練好的L1層模型生成預測結果,再把這些結果通過L2層Ensemble模型來生成最終的預測結果
達觀在使用過程中的一些心得如下
1)算法融合的特征除了算法預測值之外,也可以加入場景特征。比如在場景1算法A效果較好,場景2中算法B效果較好,當我們把場景也作為特征進行融合,就可以學習出這種特征
2)數據切分一定要干凈。往往容易犯的錯誤是基礎算法用的一些詞典使用了全部的數據,這會使得融合算法效果大打折扣,因為相當于基礎算法已經提前獲知了融合算法的測試數據
3)基礎算法的區(qū)分度越好,融合算法的效果越好,比較不容易出現(xiàn)過擬合
4)L2層也一樣可能出現(xiàn)過擬合(Overfitting),所以也可以加交叉驗證,L2層示意圖如下圖所示
總結和展望
推薦系統(tǒng)中的融合技術是非常重要的一個環(huán)節(jié),在實戰(zhàn)中,靈活運用融合技術可以發(fā)揮各個算法的長處,滿足多樣的用戶需求,大大提升推薦結果的質量,達觀數據在此方面將不懈努力,探索出更多更好的應用。
作者簡介
紀達麒,達觀數據聯(lián)合創(chuàng)始人&CTO,國際計算機學會(ACM)會員。曾服務于搜狗、盛大、騰訊幾家公司,任騰訊文學數據中心高級研究員、盛大文學技術總監(jiān)等職務,主要負責數據挖掘與分析團隊。在推薦系統(tǒng)、用戶建模、計算廣告等領域有較深入的理解和多年的實戰(zhàn)經驗,有6項推薦系統(tǒng)、數據挖掘相關的國家發(fā)明專利,多次圓滿完成公司重大緊急項目的開發(fā)工作,所開發(fā)的智能推薦系統(tǒng)曾創(chuàng)造了上線后點擊率提升300%的記錄。曾帶領團隊多次獲得國際數據挖掘競賽的大獎。如2012年ACM KDD-Cup國際大數據競賽亞軍、2014年ACM CIKM-Competition世界冠軍、EMI Hackathon音樂推薦算法競賽世界冠軍等。擁有北京郵電大學計算機碩士學位。
感謝杜小芳對本文的審校。
給InfoQ中文站投稿或者參與內容翻譯工作,請郵件至editors@cn.infoq.com。也歡迎大家通過新浪微博(@InfoQ,@丁曉昀),微信(微信號:InfoQChina)關注我們。
相關熱詞搜索:multi model fusion recommendation algorithm 架構 & 設計 語言 & 開發(fā) 最佳實踐 推薦系統(tǒng) 個性化推薦
上一篇:百度首席科學家Andrew Ng訪談:人工智能是下一次技術革命
下一篇:NGINX應用性能優(yōu)化指南(第四部分):負載均衡
