Absract

  • 在本文中,我們建立了FFM作為一種有效的方法來分類大型稀疏數據,包括來自CTR預測的數據。
  • 首先,我們提出了有效的FFM訓練方法。 然後我們全面分析FFM並將此方法與競爭模型(competing models)進行比較。 實驗表明,FFM對於某些分類問題非常有用。 最後,我們發布了一套供公眾使用的FFM。

1.Introduction

  • 如論文例子所示,關聯特徵對CTR預測至關重要,然而線性模型難以學習這些信息。
  • 基於FM的PITF方法被提出來用於個性化標籤推薦。在2012年KDD杯中,PITF的輪廓(被稱為「因子模型」)由「Team Opera Solutions」提出。 由於該術語過於籠統並且很容易與因子機混淆,因此本文將其稱為「場感知因子機」(FFM)。
  • PITF考慮三個特殊欄位:user、item、tag,FFM更加通用。PITF中有以下幾個結論:
    • 用SGD來優化,為避免過擬合,之訓練一個epoch
    • FFM在他們嘗試的六種模型中最好。

  • 本文成果
    • 將FFM與Poly2和FM進行比較,首先進行概念性的比較,再做實驗查看準確性和訓練時間的差異。
    • 提出了訓練FFM的計數,用於FFM的有效並行化演算法以及使用early stop來避免過擬合。
    • 發布了一個開源軟體。

2. POLY2 AND FM

  • POLY2:d=2的多項式映射通常可以有效地捕獲特徵組合連接信息。通過在d=2的顯式映射上使用線性模型,訓練和測試時間都比用核方法快得多。poly2模型會為每一個特徵對學習一個權重:

    • h(j1,j2)是一個把j1和j2編碼成一個自然數的函數
    • 公式的計算複雜度是O(n^2),n表示每個樣本的非0數目的平均。

  • FM:FMs是為每個特徵學習一個隱向量表示,每個隱向量包含k維,這樣特徵交互的影響就被建模成2個隱向量之間的內積:

    • 通過一些計算技巧可以把計算複雜度降到O(nk)

  • 在稀疏數據集上,FMs模型要比poly2模型好一些,比如對於論文的例子,對於pair(ESPN,Adidas)只有一個唯一的負樣本,通過poly2模型會學習到一個大的負向權重對於這個pair,然而對於FMs來說,因為它是學習ESPN和Adidas的隱向量表示,所有包含ESPN的樣本和所有Adidas的樣本都會被分別用來學習這2個隱向量,所以它的預測會更準確一些。

3.FFM

3.1模型

  • FFM的想法源於PITF[7],PITF用於具有個性化標籤的推薦系統。 在PITF中,它們假定三個可用欄位,包括user,item和tag,以及在單獨的隱空間中分解(user,item),(user,tag)和(item,tag)。 在[8]中,他們將PITF推廣到更多欄位(例如,AdID,AdvertiserID,UserID,QueryID),並將其有效地應用於CTR預測。 因為[7]的目標是推薦系統,並且僅限於三個特定域(user,item和tag),[8]缺乏關於FFM的詳細討論,在本節中我們提供了關於CTR預測的FFM的更全面的研究。 對於大多數CTR來說,特徵可以被group為field。 在上述例子中ESPN,Vogue,NBC可以被group成Publisher,而Nike,Gucci,Adidas屬於Advertiser,FFM會充分利用group的信息。
  • FM中每個特徵只有一個隱向量表示,這個隱向量被用來學習與其他任何特徵之間的影響。 考慮ESPN,w(ESPN)被用來學習與Nike的隱性影響w(ESPN)w(Nike),還被用來學習與Male的影響w(ESPN)w(Male),然而由於Nike和Male屬於不同的域,它們的隱性影響是不一樣的。 在FFMs裡面,每個特徵會有幾個不同的隱向量,上述例子的FFMs表示如下:

  • 我們看到,為了學習(ESPN,NIKE)的潛在影響,使用wESPN,A是因為Nike屬於廣告商場。使用了wNike,P是因為ESPN屬於欄位Publisher。

    再次,為了學習(EPSN,男性)的潛在影響,使用WESPN; G是因為男性屬於性別領域,而wMale; P被使用是因為ESPN屬於欄位Publisher。在數學上,

  • 公式:
    • f1、f2:是j1和j2的域
    • f:域的數目
    • nfk:FFM的變數數

  • 上式可以在線性時間O(非n^2k)內計算。由於FFM中每個隱變數通常只需要通過特定域來學習,通常有:kFFM<<kFM

3.2目標函數

  • 除了φLM(w; x)被φFFM(w; x)替換之外,該優化問題與LR相同。

3.3參數估計

  • 使用隨機梯度法(SGD)。
    • 因為x非常稀疏,所以只更新具有非零值的維度。
    • 使用AdaGrad [10],因為[12]已經證明了矩陣分解的有效性,矩陣分解是FFM的一個特例。
    • 演算法描述:
      • η:學習率
      • w:初始化從均勻分布[0,1/根號k]中取樣
      • G:

  • 將每個樣本標準化以具有單位長度使得測試精度稍微更好並且對參數不敏感。
  • 最近還提出了一些自適應學習速率調節表,如[10,11]所示,以促進SGD的訓練過程。
  • 並行化:用Hogwild [13],它允許每個線程獨立運行而不需要任何鎖定。
  • 輸入數據加入域信息:為每個特徵標明屬於那個域。
    • 離散特徵:通常轉換為onehot特徵
    • 數值型特徵:
    • 自己單獨一個域的特徵:

參考資料

  • 論文
  • blog.csdn.net/jediael_l

推薦閱讀:

相关文章