天天看點

實體嵌入(向量化):用深度學習處理結構化資料

實體嵌入(向量化):用深度學習處理結構化資料

嵌入源自于NLP(word2vec)中的單詞學習,上圖來自Aylien

本博文将涉及機器學習中兩個重複出現的問題:第一個問題是深度學習在圖像和文本中都有較好的表現,我們又如何将其用于表格資料?其次,在建構機器學習模型時,你必須始終問自己一個問題:将如何處理資料集中的分類變量?令人驚訝的是,我們可以用相同的答案回答這兩個問題:實體嵌入。

現在,深度學習在許多方面都優于其他機器學習方法:圖像識别,音頻分類和自然語言處理隻是衆多應用中的一部分。這些研究領域都使用所謂的“非結構化資料”,即沒有預定義結構的資料。一般來說,這些資料也可以按照一定的順序(像素,使用者行為,文本)排列。深度學習已成為處理非結構化資料的标準。現在的問題是深度學習是否也可以在結構化資料上有較好的表現。結構化資料是以表格格式組織的資料,其中清單示不同的特征,而行表示不同的資料樣本。這與資料在Excel工作表中的表現形式類似。目前,結構化資料集的黃金标準是梯度提升樹GBT模型(Chen&Guestrin,2016)。他們在Kaggle比賽以及學術文獻中一直都有最好的表現。最近的深度學習已經表明它可以在結構化資料上比對這些增強樹模型。實體嵌入在此扮演着重要角色。

實體嵌入(向量化):用深度學習處理結構化資料

結構化資料與非結構化資料

<b>實體嵌入</b><b></b>

實體嵌入在結構化資料上拟合神經網絡這一方面已經取得成功,例如,Kaggle競賽中的獲勝方案使用實體嵌入來處理每次乘坐的分類中繼資料預測計程車車距(deBrébisson et al.,2015)。同樣,預測羅斯曼藥店商店銷售任務的第三個解決方案使用了比第一個和第二個解決方案更為簡單的方法。該團隊使用一個具有實體嵌入的簡單前饋神經網絡作為分類變量來實作,分類變量的種類超過1000個類别,如商店ID(Guo&Berkahn,2016)。

如果這是你第一次閱讀有關嵌入的内容,我建議你先閱讀本文。簡而言之,嵌入是指向量的類别表示。讓我們來示範一下下述這句話是如何工作的:

‘Deep learning is deep’

我們可以用向量來表示每個單詞,是以“deep”這個單詞變成類似[0.20,0.82,0.45,0.67]的東西。實際上,人們會用像1 2 3 1這樣的整數代替單詞,并使用查找表來查找連結到每個整數的矢量。這種做法在自然語言進行中非常常見,并且還用于包含行為序列的資料,如線上使用者的蹤迹。實體嵌入是指在分類變量上使用這一原則,其中分類變量的每個類别都由向量表示。

讓我們快速回顧下機器學習處理分類變量的兩種常用方法。

1. 熱編碼(One-hot encoding):建立二進制子特征,如word_deep,word_learning,word_is。屬于該資料點的類别值為1,其他值為0。是以,對于“deep”這個詞,特征word_deep為1,word_learning,word_is則為0。

2. 标簽編碼(Label encoding):像之前的例子那樣配置設定整數,是以“deep”為1,“learning”為2等等。這種方法比較适用于基于樹的方法,但不适用于線性模型,因為它意味着指派的順序。

實體嵌入基本上将标簽編碼方法上升了一個層次,不僅僅是将一個整數配置設定給一個類别,而是整個向量。這個向量可以是任意尺寸,并且必須由研究人員指定。你可能想知道這些實體嵌入的優點是什麼。

1.實體嵌入解決了獨熱編碼的缺點。具有許多類别的獨熱編碼變量會導緻非常稀疏的向量,這在計算上是無效的,并且難以優化。标簽編碼解決了這一問題,但隻能用于基于樹的模型。

2.嵌入提供有關不同類别之間距離的資訊。使用嵌入的優點在于,在神經網絡的訓練期間,也要訓練配置設定給每個類别的向量。是以,在訓練過程結束時,我們最終會得到一個代表每個類别的向量。這些訓練過的嵌入被可視化,為每個類别提供可視化。在Rossmann銷售預測任務中,即使沒有為模型提供地理位資訊,德國的可視化嵌入顯示了與各州地理位置相似的叢集。

3.訓練好的嵌入可以儲存并用于非深度學習模型。例如,每月訓練分類特征的嵌入并儲存。通過加載訓練好的分類特征嵌入,我們可以使用這些嵌入來訓練随機森林或梯度提升樹GBT模型。

<b>選擇嵌入尺寸</b><b></b>

嵌入尺寸是指代表每個類别的向量長度,并且可以為每個分類特征設定。 類似于神經網絡中超參數的微調(tuning),嵌入尺寸的選擇沒有硬性的規定。在計程車距離預測任務中,每個特征的嵌入尺寸為10。這些特征具有不同的次元,從7(一周的天數)到57106(用戶端ID)。為每個類别選擇相同的嵌入尺寸是一種簡單易行的方法,但可能不是最優的方法。

對于Rossmann商店銷售預測任務,研究人員選擇1和M之間的一個值(類别數量)-1,最大嵌入尺寸為10。例如,一周中的某天(7個值)的嵌入尺寸為6, 而商店ID(1115個值)的嵌入尺寸為10。但是,作者沒有明确的選擇1和M-1之間選擇的規則。

Jeremy Howard重建了Rossmann競賽的解決方案,并提出了以下解決方案來選擇嵌入尺寸:

實體嵌入(向量化):用深度學習處理結構化資料

<b>可視化嵌入</b><b></b>

嵌入的優點是可以将已經學習到的嵌入進行可視化處理,以顯示哪些類别彼此相似。最流行的方法是t-SNE,它是一種降維技術,特别适用于高維資料集的可視化處理。最後,讓我們列舉兩個簡單的可視化嵌入的例子。以下是家用産品的可視化嵌入及其所屬類别。類似的産品,如烤箱,冰箱和微波爐之間非常相似;充電器,電池和鑽頭等産品也是如此。

實體嵌入(向量化):用深度學習處理結構化資料

家用産品的學習嵌入

另一個例子是在本文前面提到的Rossmann銷售預測任務中德國各州的學習嵌入。嵌入中各州之間的鄰近性與其地理位置相似。 

實體嵌入(向量化):用深度學習處理結構化資料

德國各州學習嵌入示例

<b>參考資料</b>

[1]Chen, T., &amp; Guestrin, C. (2016, August). Xgboost: A scalable tree boosting system. In Proceedings of the 22nd acm sigkdd international conference on knowledge discovery and data mining (pp. 785–794). ACM.

[2]De Brébisson, A., Simon, É., Auvolat, A., Vincent, P., &amp; Bengio, Y. (2015). Artificial neural networks applied to taxi destination prediction. arXiv preprint arXiv:1508.00021.

[3]Guo, C., &amp; Berkhahn, F. (2016). Entity embeddings of categorical variables. arXiv preprint arXiv:1604.06737.

 以上為譯文。

<b>文章原标題《</b><b>Using Deep Learning for Structured Data with Entity Embeddings</b><b>》,</b><b></b>

<b>譯者:Mags,審校:袁虎。</b>

<b>文章為簡譯,更為詳細的内容,請檢視</b><b>附件</b><b>。</b> 

繼續閱讀