嵌入
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
假設您要開發一款提供食物建議的應用程式,使用者只要輸入喜歡的餐點,應用程式就會推薦與使用者喜好類似的餐點。您想開發可預測食物相似度的機器學習模型,讓應用程式提供貼近使用者需求的建議 (例如:「由於您喜歡鬆餅,在此提供可麗餅供您參考」)。
為訓練模型,您彙整了 5,000 種熱門餐點,包括羅宋湯、熱狗、沙拉、披薩和沙威瑪。
圖 1. 食物資料集中的餐點取樣資料。
您建立了 meal
功能,當中包含資料集中每種餐點的 one-hot 編碼表示法。編碼是指選擇要使用哪個初始數值表示法訓練模型的過程。
圖 2. 羅宋湯、熱狗和沙威瑪的 one-hot 編碼。每個 one-hot 編碼向量的長度為 5,000 (單筆資料代表資料集中的每個菜單品項)。圖表中的刪節號代表未顯示的 4,995 筆資料。
稀疏資料表示法相關問題
查看 one-hot 編碼時,就能注意到此資料表示法的幾個問題。
- 權重數量:大量輸入向量代表類神經網路要處理大量權重。輸入後,one-hot 編碼有 M 筆資料,而第一層網路有 N 個節點,則模型在該層需要訓練 M x N 個權重。
- 資料點數量:模型的權重越多,需要有效訓練的資料就越多。
- 運算作業量:權重越多,就必須進行越多運算才能訓練及使用模型。硬體功能很有可能無法負荷這種情況。
- 記憶體數量:模型的權重越多,用於訓練及執行模型的加速器就需要越多記憶體,而想要有效向上擴充記憶體並不容易。
- 支援裝置端機器學習 (ODML)十分困難:如果想在本機裝置執行機器學習模型 (相對於提供機器學習模型),必須著重於縮小模型,建議做法是減少權重的數量。
本單元將說明如何建立嵌入、稀疏資料的低維度表示法,以便解決上述問題。
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-05-19 (世界標準時間)。
[[["容易理解","easyToUnderstand","thumb-up"],["確實解決了我的問題","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["缺少我需要的資訊","missingTheInformationINeed","thumb-down"],["過於複雜/步驟過多","tooComplicatedTooManySteps","thumb-down"],["過時","outOfDate","thumb-down"],["翻譯問題","translationIssue","thumb-down"],["示例/程式碼問題","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["上次更新時間:2025-05-19 (世界標準時間)。"],[],[]]