CFM: Convolutional Factorization Machines for Context-Aware Recommendation
摘要
因子分解機是一種基於內積的感知推薦系統,通過內積建模二階交互特徵。但是,它仍然不足以捕獲高階非線性信號。最近很多工作都用神經網絡增強FM性能。這些方案假設嵌入層彼此獨立,並以隱式的方式建模高階交互。這篇論文,提出卷積因子分解機模型解決上述問題。CFM通過外積建模二階交互,產生圖像類數據,捕捉嵌入層之間的相關性。然後,所有生成圖像數據被堆疊起來,形成交互矩陣集合,在此基礎上,應用卷積學習高階交互信號。此外,論文還利用自我關注機制執行特徵(pooling)池化,減少時間複雜度,論文在三個數據集進行了實驗證明了方法有顯著改進。
介紹
描述用戶行爲數據時,除了用戶/項目ID,還提供了豐富的上下文信息。包括但不限於,人口描述,項目屬性,時間/地點信息,歷史記錄和最近交易信息。通用的方法是將他們轉化爲高維特徵向量,在特徵輸入上建立模型。
不同於圖像和音頻中自然發現的連續實值特徵,感知推薦系統輸入大多是離散的,就導致高維且稀疏的特徵向量。
現有特徵建模分爲兩類:
1手動構造交叉特徵。2自動學習特徵交互,將特徵學習爲嵌入,將特徵交互表示爲嵌入之上的函數。
論文爲了減少構造交叉特徵的工作量,提出CMF自動學習特徵交互。專業來說,特徵嵌入首先被送入self-attention池化(pooling)層,可以大大降低計算量,削弱了噪音特徵的影響,然後,用外積建模二階交互模型,生成了一個二維矩陣set.和內積相比,更容易捕獲嵌入層之間相關性,將生成的矩陣堆疊起來,得到一個三維矩陣---編碼了所有二階交互。爲了顯式學習高階信號。論文在三維矩陣上使用卷積,併疊加多層卷積神經網絡。
論文利用self-attention對特徵池化操作,降低計算量和時間複雜度。
Convolutional Factorization Machine
原始FM模型僅僅以線性方式,通過內積建模二階交互。CMF:
最後一項是核心交互組件,下面會介紹如何學習。
輸入和嵌入層
輸入感知向量x,包括用戶ID,歷史項目multi-hot features,然後,每個特徵,通過嵌入層映射到D維密集向量表示 。
Self-Attention Pooling Layer
對特徵進行池化(Pooling)操作對每一個field學習單個嵌入。以往的池化操作包括最大池化和平均池化,但是這樣不能有效捕獲不同特徵重要性。故論文提出注意力機制(通過MLP映射)
將隱藏層映射到注意力得分。
的重要性通過歸一化注意力得分函數實現:
上式計算的,就作爲的池化核函數(核函數代表特徵重要度):
Interaction Cube
池化層之後,論文使用交互矩陣集(3D立方)表示特徵交互,和由外積進行交互。
總結:
1MLP多層感知機獲取重要度矩陣(作爲池化基進行第一步池化)
2對特徵矩陣進行池化,獲得(多通道矩陣)
3和外積(特徵交互),作爲卷積操作。
多維數據交互的優點:
1外積更能捕獲維度相關性
2顯式方案模擬高階交互-立方體不同層之間交互。代表層,後的下標,代表層內元素。
3.卷積核是多維矩陣,故能將層數降維。
卷積操作:
1.卷積(3維卷積核)
2.偏差,激活函數RELU
3.第一層 卷積核形狀:[2,2,14] 步長[2,2,1] (對應寬高深)
後序卷積核和步長 形狀:[2,2,2]
三維卷積輸出的是一維向量,然後採用全連接層進行映射:
損失函數:
Top-k推薦
是對應的負採樣樣本,是激活函數。
首先採集 正樣本,(通過mini-batch),包括用戶上下文感知和項目屬性。然後對每一個特定的用戶,隨機採集負樣本。然後結合負樣本特徵建立負樣本和用戶的交互。最後,正的交互和負的交互都fed to訓練,得到損失。
Data
Dataset |
#users |
#items |
#transactions |
#fields |
Frappe |
957 |
4,082 |
96,203 |
10 |
Last.fm |
1,000 |
20,301 |
214,574 |
4 |
MovieLens |
6,040 |
3,665 |
939,809 |
4 |
Experiments
RQ1 Does CFM model outperform state-of-the-art methods
for CARS top-k recommendation?
RQ2 How do the special designs of CFM (i.e., interaction
cube and 3DCNN) affect the model performance?
RQ3 What’s the effect of the attention-based feature pooling?
Experimental Settings
Frappe
app推薦數據
數據包含96203app使用日誌,每個日誌包含10個上下文特徵域,包含用戶ID,項目ID,時間,其他信息。
Last.fm
音樂推薦數據集
提取了最新的1000用戶聽歌記錄
用戶上下文描述爲:用戶ID,用戶90分鐘內聽的音樂ID,項目屬性包括,音樂ID,藝術家ID(歌手)
MovieLens
評價指標
leave-one-out
對於last.fm和movielens數據,用戶最新交互取出做測試,剩下的做訓練集。對frappe,因爲沒時間戳信息,故任意選擇一個交互做測試,推薦性能指標HR、NDCG(它將更高的分數分配給排名靠前的項目)
參數設置
性能對比
Interaction Cube的性能評價(特徵外積)
爲證明立方有效性,論文將交互三維矩陣轉化爲二維矩陣/或在深度方向執行最大池化操作,結果不如CMF好。
CFM>平鋪>最大池化>FM 證明了CNN外積學習的有效性
Study of Feature Pooling(注意力部分)
自我關注機制執行池化。替換爲最大池化和均值池化進行對比。注意力池會爲不同特徵分配不同的重要性。保留了豐富的特徵信息,削弱了噪音的影響。
CMF和沒有特徵池的模型比較。發現:特徵池可以減少訓練時間,帶來好的推薦質量。
總結
新的上下文感知推薦算法,結合了FM和CNN,關鍵設計是,一個基於外積的交互立方體。