嵌入:取得嵌入

您可以透過多種方式取得嵌入,包括在 Google 中建立的最先進演算法。

標準維度縮減技巧

目前有很多現有的數學技巧可擷取低維度空間中的高維度空間的重要結構。理論上,這些技巧都能用來為機器學習系統建立嵌入。

舉例來說,主要元件分析 (PCA) 則用於建立字詞嵌入。以一組執行個體 (例如字詞向量) 來說,PCA 會嘗試尋找可收合至單一維度的高度相關維度。

Word2vec

Word2vec 是 Google 用來訓練嵌入文字的演算法。Word2vec 仰賴分佈式假設,將語意相似的字詞對應至地理上封閉的向量。

分佈式假設假設經常相同字詞的字詞通常在語意上相似。「dog」和「cat」通常經常出現在「veterinarian」一詞中,而這也反映了其語意相似度。也就是語言學家 John Firth 於 1957 年所說的話。」

Word2Vec 會訓練類神經網路來區分實際共存的隨機字詞群組,藉此利用這類脈絡資訊。輸入層會合併目標字詞和一或多個情境字詞。這個輸入內容會連結至較小的隱藏層。

在其中一個版本的演算法中,系統會以目標字詞的隨機雜音取代一個隨機範例。以正的例子來說,「飛機飛蠅」,系統可能會將「慢跑」改為「慢跑」,而形成對比的負面範例也可能是「慢跑飛行」。

另一個版本的演算法會將真實目標字詞與隨機選擇的情境字詞配對,以建立負值範例。因此,可能會使用正範例 (the、飛機)、(飛機、平面) 和負面範例 (已編譯、平面)、(誰、平面) 並瞭解如何識別哪些文字組合會實際顯示在文字中。

不過,該分類器並非任一系統版本的真正目標。訓練模型後,就會有嵌入。您可以使用將輸入層與隱藏層連接的權重,將稀疏字詞的表示對應到較小的向量。此嵌入可在其他分類器中重複使用。

如要進一步瞭解 word2vec,請參閱 tensorflow.org 教學課程

在更大型的模型中訓練嵌入

此外,您還能瞭解目標工作在類神經網路中的嵌入作業。這種方法可以針對特定系統自訂完善的嵌入功能,但可能需要較長的時間訓練嵌入作業。

一般而言,如果您有稀疏資料 (或您想嵌入的密集資料),您可以建立嵌入單元,其類型只有 d 大小的隱藏單位。這個嵌入層可與任何其他功能和隱藏圖層搭配使用。如同任何 DNN,最終層都會是最佳化的損失。例如,假設我們嘗試執行協作篩選,目標是預測其他使用者的興趣。因此,我們可以隨機將一些觀看過的電影 (正為) 放在正片中,然後將其視為正值標籤,然後加以最佳化,將這類行為視為受監督的學習問題。

圖 5. DNN 架構範例,說明如何從合作的篩選資料學習電影嵌入。

再舉一個例子,假設您想為房地產廣告建立 DNN 字詞的嵌入層做為 DNN 的一部分,藉此預測房源價格,就請使用訓練資料中已知的房屋銷售價格做為標籤,盡可能提高 L2 的損失。

學習 d 維度嵌入時,每個項目都會對應至 d 維度空間中的一個點,讓類似項目位於這個空間附近。圖 6 可協助您說明嵌入圖層中學到的權重與幾何圖形檢視畫面之間的關係。輸入節點和 d 維度嵌入層中的節點之間的邊緣權重對應於每個 d 軸的座標值。

嵌入圖層權重與嵌入式幾何圖形檢視畫面之間的關係。

圖 6. 嵌入圖層權重的幾何圖形檢視畫面。