logo
Loading...

請問能推薦嵌入式編碼的文章嗎? - Cupoy

請問能推薦嵌入式編碼的文章嗎?

ml100-3,ml100-3-d26

請問能推薦嵌入式編碼的文章嗎?

2019/09/26 上午 08:13
機器學習共學討論版
Ma Chao Ting
觀看數:36
回答數:2
收藏數:0
ml100-3
ml100-3-d26

請問能推薦嵌入式編碼的文章嗎?

回答列表

  • 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 這個自由維度可供調整, 所以算是很實用的編碼方式

    這邊我們不教, 主要是因為這編碼需要用到深度學習, 

    但是教到深度學習後, 後續又有很多其他的內容

    因此只好捨棄不講, 請同學體諒