IJCAI (International Joint Conference on Artificial Intelligence,人工智能國際聯合大會) 是人工智能領域的頂級會議,每年接收來自學術界及工業界在機器學習和人工智能領域的最新研究進展,歷年在IJCAI發表的論文在機器學習和人工智能技術的發展上作出了積極的貢獻。
今年8月下旬,在澳大利亞墨爾本召開的IJCAI2017會議上,來自華為伏羲推薦團隊的專家發表了他們在深度學習推薦算法方面的最新成果。
伏羲推薦引擎是華為應用市場聯合華為諾亞方舟實驗室開發的一款推薦系統。針對華為應用市場的業務特點和數據特征,伏羲推薦算法團隊提出的端到端的深度學習推薦模型DeepFM,助力華為應用市場更加精準、個性化的推薦體驗。
華為諾亞方舟實驗室算法專家在IJCAI2017演講
特征工程(Feature Engineering)是影響推薦系統的重要因素。相比于其他機器學習系統,推薦系統更依賴于特征工程。
傳統的大規模線性模型(如邏輯回歸),通常依賴于人工方式設計特征。同時由于線性模型無法對特征間的非線性關系進行自動建模,通常依賴于特征組合(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取得了線上效果的提升。