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

摘要: 本文詳細闡述了深度學習如何來實現處理結構化數據的方法。

原文:click.aliyun.com/m/4289

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

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

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

結構化數據與非結構化數據

實體嵌入

實體嵌入在結構化數據上擬合神經網路這一方面已經取得成功,例如,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模型。

選擇嵌入尺寸

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

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

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

可視化嵌入

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

家用產品的學習嵌入

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

德國各州學習嵌入示例

參考資料

[1]Chen, T., & 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., & Bengio, Y. (2015). Artificial neural networks applied to taxi destination prediction. arXiv preprint arXiv:1508.00021.

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

以上為譯文。

本文由阿里云云棲社區組織翻譯。

文章原標題《Using Deep Learning for Structured Data with Entity Embeddings》,

譯者:Mags,審校:袁虎。

更多技術乾貨敬請關注云棲社區知乎機構號:阿里云云棲社區 - 知乎


推薦閱讀:

Learning Explanatory Rules from Noisy Data 閱讀筆記4
TextGAN 代碼閱讀筆記
關於語音交互的不得不知的技術知識
DeepPath 閱讀筆記
學習筆記CB004:提問、檢索、回答、NLPIR

TAG:解決方案 | 自然語言處理 | 神經網路 |