請問能推薦嵌入式編碼的文章嗎?
請問能推薦嵌入式編碼的文章嗎?
回答列表
-
2019/09/26 下午 04:17張維元 (WeiYuan)贊同數:0不贊同數:0留言數:1
你這邊講的「嵌入式編碼」是指什麼?是哪一段教材看到的嗎?
-
2019/09/26 下午 05:53陳明佑 (Ming You Chen)贊同數:不贊同數:留言數:
嵌入式編碼可以參考下列 Kernel
https://www.kaggle.com/lystdo/beat-kkbox-benchmark-without-using-metadata-0-62
至於說明, 則建議體參考林軒田老師"機器學習技法第15講:矩陣分解(Matrix Factorization)
https://www.youtube.com/watch?v=2pX76iH_irw&list=PLXVfgk9fNX2IQOYPmqjqWsNUFl2kpk1U2&index=58
基本上是由矩陣分解(Matrix Factorization)轉化過來, 而這類問題又是推薦系統的基礎
他要處理的, 是兩個超多類別的配對矩陣問題
比如 : 電影推薦的"電影編號"vs"觀眾編號", 或自然語言處理的"上一個字"vs"下一個字"
要妥善訓練出這樣的關係, 矩陣m*n兩邊的維度 m 與 n 都相當巨大
(你可以想像有多少相異文字)
所以實際上會以 m*k 與 k*n 兩個矩陣的乘積去模擬原始的 m*n 矩陣
k 的選擇, 需要同時考慮資料量與計算力
但在 GPU 取得相對不難的現在(至少有colab能用),
使用 Keras 的 Embedding 層模擬(參考上述程式),
速度通常遠快於 sklearn 原始的矩陣分解
sklearn.decomposition
.NMF (因為只用CPU)所以實際通常都用 Embedding 跑這些權重
跑出的結果, 可以視為原始特徵的一種 k 維編碼
這樣的結果, 維度遠小於 Onehot 的結果, 又能比 Label Encoder 表現出更多的特徵
又還有 k 這個自由維度可供調整, 所以算是很實用的編碼方式
這邊我們不教, 主要是因為這編碼需要用到深度學習,
但是教到深度學習後, 後續又有很多其他的內容
因此只好捨棄不講, 請同學體諒