深度學習推薦模型DeepFM技術剖析:助力華為應用市場APP推薦
IJCAI(International Joint Conferenceon Artificial Intelligence,人工智慧國際聯合大會)是人工智慧領域的頂級會議,每年接收來自學術界及工業界在機器學習和人工智慧領域的最新研究進展,歷年在IJCAI發表的論文在機器學習和人工智慧技術的發展上作出了積極的貢獻。
今年8月下旬,在澳大利亞墨爾本召開的IJCAI2017會議上,來自華為伏羲推薦團隊的專家發表了他們在深度學習推薦演算法方面的最新成果。伏羲推薦引擎是華為應用市場聯合華為諾亞方舟實驗室開發的一款推薦系統。針對華為應用市場的業務特點和資料特徵,伏羲推薦演算法團隊提出的端到端的深度學習推薦模型DeepFM,助力華為應用市場更加精準、個性化的推薦體驗。
華為諾亞方舟實驗室演算法專家在IJCAI2017演講
特徵工程(FeatureEngineering)是影響推薦系統的重要因素。相比於其他機器學習系統,推薦系統更依賴於特徵工程。傳統的大規模線性模型(如邏輯迴歸),通常依賴於人工方式設計特徵。同時由於線性模型無法對特徵間的非線性關係進行自動建模,通常依賴於特徵組合(Feature combination)來實現二階或高階特徵的構造。例如,在應用市場場景下:
一些流行的應用比較容易被使用者下載,說明應用的標識會影響使用者下載 (一階特徵)
吃飯時間一些外賣類的應用比較容易被使用者下載,說明應用的型別和時間綜合起來會影響使用者下載(二階特徵)
年輕男性喜歡下載射擊類和角色扮演類的遊戲,說明應用型別、使用者年齡和使用者性別綜合起來會影響使用者下載 (三階特徵
人工方式的特徵工程,通常有兩個問題:一個是特徵爆炸。以通常使用的Poly-2模型為例,該模型採用直接對2階特徵組合建模來學習它們的權重,這種方式構造的特徵數量跟特徵個數乘積相關,例如:加入某類特徵有1萬個可能的取值(如APP),另一類特徵也有1萬個可能的取值(如使用者),那麼理論上這兩個特徵組合就會產生1億個可能的特徵項,引起特徵爆炸的問題;如果要考慮更高階的特徵,如3階特徵,則會引入更高的特徵維度,比如第三個特徵也有1萬個(如使用者最近一次下載記錄),則三個特徵的組合可能產生10000億個可能的特徵項,這樣高階特徵基本上無法有效學習。另一個問題是大量重要的特徵組合都隱藏在資料中,無法被專家識別和設計 (關於這個的一個有名的例子是啤酒和尿片的故事)。依賴人工方式進行特徵設計,存在大量有效的特徵組合無法被專家識別的問題。實現特徵的自動組合的挖掘,就成為推薦系統技術的一個熱點研究方向,深度學習作為一種先進的非線性模型技術在特徵組合挖掘方面具有很大的優勢。
針對上述兩個問題,廣度模型和深度模型提供了不同的解決思路。其中廣度模型包括FM/FFM等大規模低秩(Low-Rank)模型,FM/FFM通過對特徵的低秩展開,為每個特徵構建隱式向量,並通過隱式向量的點乘結果來建模兩個特徵的組合關係實現對二階特徵組合的自動學習。作為另外一種模型,Poly-2模型則直接對2階特徵組合建模來學習它們的權重。FM/FFM相比於Poly-2模型,優勢為以下兩點。第一,FM/FFM模型所需要的引數個數遠少於Poly-2模型:FM/FFM模型為每個特徵構建一個隱式向量,所需要的引數個數為O(km),其中k為隱式向量維度,m為特徵個數;Poly-2模型為每個2階特徵組合設定一個引數來表示這個2階特徵組合的權重,所需要的引數個數為O(m^2)。第二,相比於Poly-2模型,FM/FFM模型能更有效地學習引數:當一個2階特徵組合沒有出現在訓練集時,Poly-2模型則無法學習該特徵組合的權重;但是FM/FFM卻依然可以學習,因為該特徵組合的權重是由這2個特徵的隱式向量點乘得到的,而這2個特徵的隱式向量可以由別的特徵組合學習得到。總體來說,FM/FFM是一種非常有效地對二階特徵組合進行自動學習的模型。
深度學習是通過神經網路結構和非線性啟用函式,自動學習特徵之間複雜的組合關係。目前在APP推薦領域中比較流行的深度模型有FNN/PNN/Wide & Deep。FNN模型是用FM模型來對Embedding層進行初始化的全連線神經網路。PNN模型則是在Embedding層和全連線層之間引入了內積/外積層,來學習特徵之間的互動關係。Wide & Deep模型由谷歌提出,將LR和DNN聯合訓練,在Google Play取得了線上效果的提升。
但目前的廣度模型和深度模型都有各自的侷限。廣度模型(LR/FM/FFM)一般只能學習1階和2階特徵組合;而深度模型(FNN/PNN)一般學習的是高階特徵組合。在之前的舉例中可以看到無論是低階特徵組合還是高階特徵組合,對推薦效果都是非常重要的。Wide & Deep模型依然需要人工特徵工程來為Wide模型選取輸入特徵。
DeepFM模型結合了廣度和深度模型的有點,聯合訓練FM模型和DNN模型,來同時學習低階特徵組合和高階特徵組合。此外,DeepFM模型的Deep component和FM component從Embedding層共享資料輸入,這樣做的好處是Embedding層的隱式向量在(殘差反向傳播)訓練時可以同時接受到Deep component和FM component的資訊,從而使Embedding層的資訊表達更加準確而最終提升推薦效果。DeepFM相對於現有的廣度模型、深度模型以及Wide & Deep模型的優勢在於:(1) DeepFM模型同時對低階特徵組合和高階特徵組合建模,從而能夠學習到各階特徵之間的組合關係;(2) DeepFM模型是一個端到端的模型,不需要任何的人工特徵工程。
DeepFM演算法架構
為了驗證DeepFM模型的精度,分別在Criteo Kaggle的競賽資料集和華為應用市場的資料集上進行了實驗。Criteo Kaggle的資料集按照9:1的比例劃分訓練集和測試集。華為應用市場資料集由8天連續資料構成:前7天資料為訓練集,後1天資料為測試集。實驗結果表明:相比較業界最新的推薦演算法,DeepFM模型在華為資料集上,AUC提升0.36%~0.86%,LogLoss提升0.34%~1.1%。
DeepFM演算法效果對比
DeepFM演算法是華為伏羲推薦演算法經過1年多的研究,並同業界深入合作的成果。團隊還在深度學習推薦演算法方面持續投入,研究更好的深度學習網路架構,實現更好的特徵表達和特徵互動方式,持續改進深度學習推薦模型,為華為應用市場和華為遊戲中心的使用者提供更好的個性化、精準化的使用者體驗,保持華為應用市場推薦系統的技術領先。