與其比較手動合併的特徵資料,您可以將特徵資料減少為名為嵌入的表示法,然後比較這些嵌入。嵌入會透過在特徵資料上訓練受監督的深層類神經網路 (DNN) 來產生。嵌入功能會將嵌入資料對應至嵌入空間中的向量。一般來說,嵌入空間的尺寸會比特徵資料少,也就是擷取特徵資料集的一些隱含結構。嵌入範例的嵌入向量 (例如同一位使用者觀看的 YouTube 影片) 最終會嵌入嵌入空間。我們會查看相似度指標如何使用這個「相似度」來量化樣本組合的相似性。
別忘了,我們只是討論受監督模式,以建立相似度評估。演算法會使用這項相似度指標 (無論是手動或受監督) 執行不受監督的叢集。
手動與受監督措施的比較
下表按照您的需求,使用手動或監督式相似度測量的時機。
條件 | 手動 | 受監督的帳戶 |
---|---|---|
排除相關功能中的多餘資訊。 | 不行,您必須分別調查功能之間的關聯性。 | 是,DNN 會刪除多餘的資訊。 |
提供計算相似之處的深入分析。 | 是 | 不可以,嵌入內容無法解密。 |
適合只有少數功能的小型資料集。 | 可以,只要用幾項功能設計手動評估就行了。 | 否,小型資料集未提供足夠的 DNN 訓練資料。 |
適用於擁有多項特徵的大型資料集。 | 否,手動排除多項功能中的多餘資訊,然後又難以結合。 | 可以,DNN 會自動排除多餘資訊,並合併多項功能。 |
監督相似性措施的流程
下圖說明如何建立受監督的相似度測量結果:
您已瞭解第一個步驟。本頁面會說明後續步驟,後續頁面會說明其餘步驟。
根據訓練標籤選擇 DNN
訓練使用相同特徵資料 (即輸入和標籤) 的 DNN,將特徵資料減少為嵌入。例如,如果是內部資料,DNN 將使用價格、尺寸和郵遞區號等特徵來預測特徵。為了使用特徵資料來預測相同的特徵資料,系統會強制 DNN 減少輸入特徵資料至嵌入的內容。您將使用這些嵌入功能來計算相似程度。
用來預測輸入資料本身的內嵌 DNN 稱為 autoencoder。由於 Autoencoder 的隱藏層小於輸入和輸出層,所以自動編碼器會強制瞭解壓縮特徵資料的壓縮表示法。DNN 訓練完成後,您可以從最後一個隱藏層中擷取嵌入,以計算相似度。
如要產生嵌入內容,最簡單的方法就是自動編碼器。不過,如果某些功能在判斷相似度時比其他功能更重要,則自動編碼器並非最佳選擇。舉例來說,在內部資料中,我們假設「price」比「郵遞區號」更重要。在這種情況下,請只使用重要功能做為 DNN 的訓練標籤。由於這個 DNN 會預測特定輸入特徵,而非預測所有輸入特徵,因此稱為「預測者」DN。請參閱下列指南選擇特徵標籤:
建議將數字特徵視為類別特徵做為標籤,因為這樣更容易計算和解讀數值特徵。
請勿將類別功能設定為基數 \(\lesssim\) 100 做為標籤。這樣做時,系統不會強制 DNN 將輸入資料減少至嵌入,因為 DNN 能夠輕鬆預測低基數類別標籤。
從 DNN 的輸入項目,移除您做為標籤的功能,否則 DNN 將會完全預測輸出內容。
視您選用的標籤而定,產生的 DNN 可能是自動編碼器 DNN 或預測者 DNN。
DNN 遺失函式
如要訓練 DNN,您必須建立損失函式,步驟如下:
- 計算 DNN 每個輸出的損失。如為以下輸出內容:
- 將每次輸出的損失加總,計算出總損失。
加總損失時,請確保每個功能與損失的比例成比例。舉例來說,如果您將顏色資料轉換為 RGB 值,則會有三個輸出內容。但是,加總三個輸出內容的損失,代表對色彩損失的權重是其他功能的 3 倍。請改為將每個輸出內容乘以 1/3。
在線上系統中使用 DNN
線上機器學習系統會持續串流新的輸入資料。 你必須使用新資料訓練 DNN。不過,如果您從頭重新訓練 DNN,嵌入就會有所不同,因為 DNN 是透過隨機權重初始化的。請改為一律以現有權重啟動 DNN,並使用新資料更新 DNN。