眾所周知,ACM RecSys是推薦系統頂級國際會議,每年邀請該領域的著名學者及互聯網知名專家擔任主講嘉賓,議題涵蓋推薦算法、社會化推薦、用戶建模、機器學習和人機交互等前沿技術。
RecSys評委們對文章的篩選一向以“苛刻”著稱,每年只接受300篇左右,接受率約為20%。2012年,百度成為第一家參加RecSys的國內公司;2013年,發表了題為“計算廣告和推薦系統”的主題演講;2014年,又有多篇論文發布,不斷向世界展示推薦技術的最新發展。
本文基于在RecSys 2014上百度大數據實驗室發布的題為《智能因子分解機》的論文,深入解析了一種新型的智能因子分解機。它將因子自動學習算法納入因子模型,以智能學習特征,替代人工特征工程,極大提升了因子分解機的應用效率。經過真實數據和人造數據驗證,其有效性和效率皆優于現階段其他方法,是百度在推薦技術上的又一突破。
推薦系統技術綜述
推薦技術在過去十幾年中取得了巨大發展,當前業界的主流技術有兩種:傳統文本不感知方法和文本感知方法。
傳統的文本不感知方法,是在用戶物品評分矩陣基礎上建立模型,例如只考慮用戶與物品交互。其中,矩陣因子分解方法因其在處理相對較大數據集中的良好表現和有效性大受歡迎。這些方法利用低秩矩陣分解逼近用戶物品評分矩陣,并用它們來做更進一步的預測。
而在真實情境中,許多輔助信息是可獲取的,并被證明在大數據集中特別有效。舉例來說,對于微博中的名人推薦問題,用戶與名人元數據(包括年齡、性別等)、名人的受歡迎程度、最近的用戶表現,都能幫助系統做出更好的推薦。我們將輔助信息特征稱為文本感知推薦。文本感知因子分解機是目前最成功的文本感知推薦模型之一。因子分解機與所有特征兩兩互動,這樣,一個特定的特征隱向量被共享用來計算因式分解參數。
現有方法費時費力
至于利用輔助信息,目前的技術主流是因子分解機(FM)。FM是一個泛化的模型,一般采用雙向特征交互。在實際應用中,有幾十個文本特征不足為奇,并且不是所有的交互都對評分預測有效。需要注意的是,因子分解機對所有文本特征變量的兩兩交互建立模型,交互特征權重計算時所有變量的隱向量被共享。
因為并非所有交互都有效,所以在實際使用時通常通過人工指定交互的特征和特征交互的階數。也就是說,人工制定配置,指定特征的交互和階數,然后在給定的數據集上測試效果,必須通過嘗試大量的人工配置比較才能獲得較優的效果。
但可選配置的數量是特征數的指數量級,并且評估每次配置時需要花費大量時間訓練并測試模型,費時又費力。此外,對于不同應用,每次都需要重復這個過程,嚴重制約了使用FM的效率。
百度的“智能”在哪里
百度大數據實驗室提出了一種新型智能因子分解機(GBFM),有效地解決了傳統人工特征選擇過程中費時費力的難題。智能因子分解機去除了因子在每個被加項共享一個參數的約束,使得模型具有更強的擬合數據能力,并通過控制特征選擇過程避免模型的過擬合。
相對于因子分解機,它將因子的選擇過程嵌入算法求解過程中。算法每輪迭代,會自動根據當前模型,從所有特征中貪婪選擇一個最優的作為因子加入并更新模型。
解構智能因子分解機
在智能因子分解機中,特征因子的加入方式有兩種,一種是作為起始因子加項,另一種是作為加項中的一個乘積項,具體方式取決于模型對于交叉項的控制方式。
添加方式:因子添加方式不同,通過控制添加過程即可生成不同的因子分解機。
按照深度優先的方式,優先將加項的階數添加到指定最高階,然后生成一個新的加項,直到滿足一定事先指定的條件(擬合精度或者最大加項條件)。
按照寬度優先的方式,先生成初始(K=1)的加項,然后生成高一階(K=2)的加項,直到滿足一定事先指定的條件。
按照寬度和深度競爭的方式,每次添加特征嘗試深度和寬度方向,比較兩個方向添加的效果再決定。
窮舉選取最優特征:對于每個特征,通過計算其加入模型后帶來的增益來選擇,例如增益為訓練數據的擬合程度。通常,為了簡化計算,可固定已有模型,將特征加入后對其參數求解,獲得更新模型。在這種情況下,參數求解往往非常方便,在一些擬合目標下甚至有閉式解。
盡管每次選擇需要計算所有特征,但可通過一次掃描所有訓練數據來同時估算所有特征的相關統計量,根據這些統計量計算選擇最優特征。
可并行實現:智能因子分解機可以很容易地通過多線程和多個集群分布式來并行實現,從而大幅提升速度。由于特征的統計量可以并行計算,這樣就能通過多線程分布到一個集群計算機上便于計算。
FM和智能因子分解機
技術對比
智能因子分解機與FM的最大區別在于,前者只考慮其中部分交互特征,而FM則對文本特征間的所有交互特征建模。舉例來說,假設現在有三個文本特征:用戶、物品、心情。在智能因子分解機中,只考慮(用戶,物品)和(用戶,心情)交互。如果(物品,心情)交互特征無效,那么在FM中,(物品,心情)對應的隱向量的預估將會不準確,對預測函數來說就是引入噪音。
另一個區別在于,智能因子分解機是逐步地學習隱特征矩陣,不被共享以計算其他因子分解的權重。例如,在第一步中選取(用戶,物品),第二步選?。ㄓ脩?,心情),兩次用戶對應的隱特征矩陣不一樣。相較FM它可能失去推廣性的優勢,可將智能因子分解機當作一個特征選擇算法,只對選取的特征建模。GBFM-Opt是GBFM的變體,經過S步后訓練程序停止,得到S交互特征并充分優化。
最重要的區別是急劇降低了計算復雜度。傳統的FM每選一次特征的復雜度都為O(N),而特征選擇次數通常為指數級。智能因子分解機使用貪心特征篩選算法,計算復雜度為O(n · N),N為訓練數據大小,n是層數。在每一層中,增益函數可通過掃描訓練數據集來計算。按照增益計算方法,最優特征篩選也可通過訓練數據集一次運行得到。通常,這里n?N,在雙向因子分解機中,n=2。因此計算成本為O(N)。
實驗結果對比
我們將兩種模型在兩個數據集中展開實驗:一個是人造數據集,另一個是真實數據集,來自騰訊微博。
人造數據集:由于只有很小的公共數據集包含多種文本特征,我們創建了一個人造數據集進行比較。數據產生過程為:假設有m個文本特征,從中選取部分兩兩交互特征,其隱向量服從均值為0方差為0.5的高斯分布,然后按類似FM的預測函數生成評分值,評分值被映射到1~5。
騰訊微博數據集:騰訊微博是中國最大的社交網絡之一,該數據集是為2012年KDD Cup而設計的。其中包含了兩個月內230萬用戶的名人推薦記錄。系統在特定時間向用戶推薦一位名人,用戶的反饋為接受或拒絕。此數據集包含豐富文本信息,如用戶年齡、性別、物品屬性、時間信息等。此外,還能提取到會話信息,例如在此條推薦前的推薦記錄數量。將此數據集根據時間分成訓練數據和測試數據。測試數據再進一步被分為公開和非公開集合用來獨立評估。此數據集非常稀疏,平均每個用戶只有兩個正向記錄(接受推薦)。除此之外,測試數據中近70%的用戶在訓練數據中沒有出現過。
對人造數據集,我們使用兩個指標MAE和RMSE來衡量不同方法的預測質量,值越小說明效果越好。對于騰訊微博數據, MAP@k被用作指標,值越大說明效果越好。
在實驗中,我們比較了FM、PMF(只用“用戶,物品”矩陣做出推薦)和百度提出的GBFM和GBFM-Opt四種方法。
根據實驗結果,可得出以下結論。
運用附加信息的重要性。FM、GBFM和GBFM-Opt的表現大大優于PMF并不奇怪。它揭示了在文本感知推薦中運用附加信息的重要性。在騰訊微博數據中更為重要,因為測試數據集中的大部分用戶在訓練數據中并不存在,這意味著PMF根本無法處理它們。
GBFM能學習優質的交互特征,GBFM和GBFM-Opt模型均表現良好。在人造數據集中,就RMSE這個指標來說,FM相比PMF減法降低了0.066,GBFM相比FM進一步降低了0.026。由于人造數據是從部分雙向交互特征中產生的,這些結果表現了GBFM能學習優質的交互特征。
選取優質交互特征更好。對于騰訊微博的數據,就 MAP@3來說,相較PMF,FM提高了2.25%。GBFM還能進一步提高0.4%。此結果證實了選取優質交互特征比考慮所有雙向交互特征更好。
驗證被選取的交互特征對推薦是否有效。GBFM-Opt的表現可用來證明被選取的交互特征對推薦是否有效。在兩個數據集中,都比GBFM表現更好。相較GBFM-Opt,GBFM優化不充分,這可能是GBFM-Opt表現更優的原因。騰訊微博數據更稀疏,特征學習更重要,這也解釋了GBFM-Opt為什么只比GBFM稍有改善。
總結
智能因子分解機提出了一種高效的交互特征篩選算法,相較于因子分解機算法,它將特征選擇算法與因子分解機融合在統一的框架中, 可自動學習特征,替代人工特征工程,極大提升了因子分解機的應用效率。在人造數據和真實數據上的實驗結果都證明,此方法的有效性優于FM和現階段其他方法。
在今后的研究中,我們還有以下幾個有趣的方向值得討論:
- 在更多的數據集上嘗試智能分解機算法;
- 如何改進特征學習算法;
- 如何有效處理除了離散特征外的其他特征。
夏粉:百度科學家,就職于百度大數據實驗室(bdl.baidu.com),十年以上機器學習研究經驗,曾在機器學習頂級會議ICML、NIPS 等發表多篇論文。