假設您正在開發美食推薦應用程式 使用者輸入自己最愛的餐點,應用程式就會推薦類似餐點 他們可能會喜歡的您想開發機器學習 (ML) 模型 預測食物相似度,讓您的應用程式 推薦 (「既然你喜歡鬆餅,我們推薦個可麗餅」)。
如要訓練模型,您彙整了 5,000 個熱門資料集 餐點,包括 borscht、 「hot dog」 salad、 披薩 和 shawarma。
您會建立 meal
功能,其中包含
one-hot 編碼
代表資料集中每個餐飲項目的表示法。
稀疏資料表示法的問題
查看這些 one-hot 編碼,發現有兩項主要問題 這種表示法
- 權重數量。大型輸入向量代表
權重
類神經網路的結果
使用 one-hot 編碼的 M 項目,以及 N
輸入內容後,模型必須訓練
該圖層的 MxN 權重。大量權重會導致其他問題:
- 資料點數量。模型中的權重越多,資料就越豐富 需要有效訓練
- 運算量。權重越多,計算所需的運算就越多 訓練和使用模型如果效能比 硬體
- 記憶體容量。模型中的權重越多, 而用來訓練並提供服務的加速器擴充 相當困難
- 支援困難 裝置端機器學習 (ODML)。 如果您想在本機裝置上執行機器學習模型 也需著重縮小模型規模 減少權重數量
- 向量之間沒有有意義的關係。系統會將向量值 one-hot 編碼並未提供任何有關食物的有意義資訊 食物的相似性就數學上來說,索引 1 (「熱狗」) 是 較靠近索引 2 (「沙拉」) 和索引 4999 (「沙威瑪」) 比起沙拉,狗更像沙威瑪 (包括肉類和麵包) 更相似。
在本單元中,您將瞭解如何建立嵌入,但 才能解決這些問題。