羅遠飛:自動特徵工程在推薦系統中的研究

第四範式資深研究員羅遠飛針對推薦系統中的高維稀疏數據,介紹瞭如何在指數級搜索空間中,高效地自動生成特徵和選擇算法;以及如何結合大規模分佈式機器學習系統,在顯著降低計算、存儲和通信代價的情況下,從數據中快速篩選出有效的組合特徵。

以下是羅遠飛的分享:

大家好!我是第四範式的羅遠飛!‍

很高興能有機會和大家一起交流關於自動機器學習方面的一些工作。‍我在第四範式的工作大都和自動機器學習相關,之前的精力主要集中在自動特徵工程。雖然模型改進能夠帶來穩定的收益,但是更爲困難。‍所以如果是在做一個新的業務,‍可以先嚐試從做特徵入手,特徵工程往往能夠帶來更明顯的收益。

AutoCross 的背景

‍本次報告所提及的自動機器學習,是針對表數據的自動機器學習。‍表數據是一個經典的數據格式,它一般包含多列,列可能對應離散特徵或者連續特徵。‍我們不能將用於圖像、語音或者 NLP 中的模型直接拿過來用,需要做特定的優化。‍

本次報告提及的特徵組合,特指 Feature Crossing,即兩個離散特徵的笛卡爾積。以 "去過的餐廳" 爲例,我經常去麥當勞,‍那麼我和麥當勞可以做爲一個組合特徵;再比如我去肯德基,則我和肯德基也可做爲一個組合特徵。

本次報告提及的自動特徵工程,是指‍自動從上表數據中發現這些有效的組合特徵。比如我是一位軟件工程師,是一個特徵;在第四範式工作,是另外一個特徵。這兩個特徵是分成兩列儲存的,我們可以把‍這兩列組合成一個新的特徵,‍這個特徵的指示性更強,更具有個性化。‍

爲什麼需要自動特徵工程呢?

首先,特徵對建模效果有着非常重要的作用。其次,客戶的場景遠比建模專家多,‍如我們的先薦業務有上千家媒體,我們不能給每個業務都配備一個專家,針對每一個場景人工去建模。最後,即使只有一個業務,數據也是多變的,面臨的場景也是不停變化的,‍所以我們要做自動特徵工程,‍不能讓人力和我們的業務量呈正比。

AutoCross 的相關研究

自動特徵工程主要分爲兩大類,一類是顯式特徵組合,‍另一類是隱式特徵組合。

① 顯式的特徵組合

顯式的特徵組合有兩個代表性工作,分別是 RMI [2] 和 CMI [3]。其中字母 "MI" 代表互信息 ( Mutual Information ),是一個經典的特徵選擇的方法。‍

640.jpeg

MI 是通過統計同一個數據中,兩列特徵的出現頻率和共現頻率計算得到。但是 RMI 的做法是在訓練集合統計一部分信息,在另外一部分成爲 reference 數據上統計另外一部分信息,這也是 "R" 的來源。上圖‍來自於 RMI 的論文[2],表示隨着不同的‍組合特徵加進去,然後 AUC 逐漸地上漲。CMI 是另外一個經典的工作,CMI 通過分析對率損失函數,結合牛頓法,計算出每個特徵的重要性。

它們都取得了不錯的效果。但一方面,它們只考慮二階特徵組合;另外,它們均爲串行算法,每次選擇一個組合特徵後,都需把其他特徵重新訓練一遍,是 O(n^2) 複雜度,其中 n 爲特徵數目。‍此外,MI 本身不允許一個特徵下同時出現多個取值。‍

② 隱式的特徵組合

640-1.jpeg

另外一類是隱式特徵組合,大家可能更熟悉一些。FM[4] 和 FFM[5] 是枚舉所有的‍二階特徵組合,它們組合方式是用低維空間中的內積去代表兩個特徵的組合,取得了很好的效果。‍隨着 DL 的興起,現在更流行基於 DNN 做隱式特徵組合。但是它的可解釋性不強,一直被大家詬病。

我們提出 AutoCross[1],它具有很強的可解釋性,能夠做到高階特徵組合,同時具有較高的 Inference 效率。

AutoCross 整體結構

640-2.jpeg

從左往右看,‍AutoCross 的輸入是數據和對應的特徵類型,然後經過 AutoCross 的 Flow,‍輸出一個特徵生成器,能夠把學到的特徵處理方式應用於新數據。

Flow 裏主要有三個部分,首先是預處理,‍然後是組合特徵生成和組合特徵選擇的迭代過程。‍針對數據預處理,我們提出了多粒度離散化;針對怎麼從指數級空間中有效的生成組合特徵,‍我們用了集束搜索 ( Beam Search );針對如何有效且低代價地特徵選擇,我們提出了逐域對數機率迴歸 ( Field-wise LR ) 和連續小批量梯度下降 ( Successive Mini-batch GD ) 兩種方法。‍

AutoCross 算法

下面我們看一下每個過程所涉及的算法。‍

‍首先是數據預處理,數據預處理的目的是補充缺失值,並將連續特徵離散化。我們觀察到‍,對於連續特徵,在離散化的時候,如果選擇的離散化粒度不一樣,其效果會差別非常大。‍甚至在一個數據集上觀察到 AUC 有10個百分點的差異。如果對每一個數據集都手動設置最優的離散化粒度,代價比較高,也不現實。

基於此我們提出了多粒度離散化方法,同時使用多種粒度去離散化同一個特徵,比如特徵 "年齡",我們按照年齡間隔爲5的離散化一次,年齡間隔爲10的離散化一次,‍年齡間隔爲20的再離散化一次,同時生成多個不同的離散化特徵,讓模型自動去選擇最適合它的特徵。

640-3.jpeg

① 集束搜索 ( Beam Search )

如前文所述,假設有 n 個原始特徵,‍那麼可能的 k 階特徵有 O(n^k) 個,這是‍一個指數級增長的過程。‍如何在這個空間中有效地去搜索、生成、組合特徵呢?如果都生成,在計算和存儲上都不太可行。‍

我們借鑑集束搜索 ( Beam Search ) 的方法來解決該問題。它的工作原理是,先生成一部分二階組合特徵,‍然後用效果好的二階組合特徵去衍生三階組合特徵,並非生成所有的三階組合特徵,相當於一種貪心的搜索方法。

② 逐域對數機率迴歸 ( Field-wise LR )

我們通過多粒度離散化對數據進行預處理,之後通過集束搜索縮減搜索空間。

但生成的特徵依然數量衆多,怎麼才能快速、低代價地從生成特徵中選出有效的特徵呢?對此,我們提出了逐域對數機率迴歸 ( Field-wise LR ) 算法,固定已選特徵對應的模型參數,‍然後計算候選特徵中哪個特徵‍加進來,能夠最大程度的提升模型效果。這樣做能夠顯著節約計算、通信和存儲上的開銷。‍

640-4.jpeg

③ ‍連續小批量梯度下降 ( Successive Mini-batch GD )

爲了進一步降低特徵評估成本,我們又提出了連續小批量梯度下降 ( Successive Mini-batch GD ) 方法。在小批量梯度下降的迭代過程中,逐漸淘汰不顯著的候選特徵,並給予較重要的特徵更多批的數據,以增加其評估準確性。

AutoCross-System 優化

下面介紹我們在系統上做的一些優化。

① 緩存特徵權重

從算法上來看,我們的‍系統是一個指數空間的搜索問題,即使能夠降低其複雜度,它的運算代價依然很大。因此我們會對數據採樣,並序列化壓縮存儲。

之後,當運行逐域對數機率迴歸時,系統會把已經計算過的特徵權重緩存下來。如果按照以前的方法,我們需要先從參數服務器上獲取已經生成特徵的權重,‍這一步會帶來網絡開銷;獲取之後要做運算,並生成該特徵及預測 ,這一步會產生計算開銷;‍生成特徵之後,再存儲到硬盤中,進一步會產生存儲成本。‍但是,我們把之前的那些特徵的權重都給緩存下來,通過直接查表,就能夠降低網絡、計算、存儲的開銷。‍

② 在線計算

除了緩存特徵權重之外,我們還進行了在線計算。我們在做特徵生成的同時,有獨立的線程去序列化數據和生成特徵。

③ 數據並行

此外,數據並行也是系統優化的常用方法。系統的每個進程中都有一份計算圖,並通過主節點,‍或者參數服務器,保證它們之間有序地在進行各個操作。‍

AutoCross 實驗

‍下圖是我們的實驗結果。‍

640-5.jpeg

這裏的 baseline 有兩個。‍我們首先看 AutoCross 產生的特徵對 LR 的幫助。當我們把 AutoCross 的特徵放進 LR 之後,其效果變化很明顯 ( 第1行和第2行 )。‍同時,我們對比了 AutoCross 和 CMI 兩種方法 ( 見第2行和第4行 )。經過對比後發現,AutoCross 始終優於 CMI。‍

爲驗證 AutoCross 產生的特徵是否會對深度模型有幫助,‍我們同樣把 AutoCross 的特徵和 W&D 模型結合 ( 見第3行 )。我們發現,當我們把特徵‍給 W&D 之後,‍W&D 模型也取得了‍很不錯的效果,在10個數據集上效果均能和當前最好的深度學習模型相媲美。

參考文獻

[1] Yuanfei, Luo, Wang Mengshuo, Zhou Hao, Yao Quanming, Tu WeiWei, Chen Yuqiang, Yang Qiang, and Dai Wenyuan. 2019. “AutoCross: Automatic Feature Crossing for Tabular Data in Real-World Applications.” KDD.

[2] Rómer Rosales, Haibin Cheng, and Eren Manavoglu. 2012. Post-click conversion modeling and analysis for non-guaranteed delivery display advertising. WSDM.

[3] Olivier Chapelle, Eren Manavoglu, and Romer Rosales. 2015. Simple and scalable response prediction for display advertising. TIST.

[4] Rendle, Steffen. “Factorization machines.” 2010. ICDM.

[5] Yuchin Juan, Yong Zhuang,Wei-Sheng Chin, and Chih-Jen Lin. 2016. Field-aware factorization machines for CTR prediction. In ACM Conference on Recommender Systems.

[6] Huifeng Guo, Ruiming Tang, Yunming Ye, Zhenguo Li, and Xiuqiang He. 2017. DeepFM: a factorization-machine based neural network for CTR prediction. IJCAI.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章