本文為機器學習系統設計的好書 Machine Learning Design Patterns 中介紹的第四個模式:Multimodal Input pattern 的筆記。這個常見的技巧想要解決的問題是把數種不同類型的輸入合併在一起,比如說一張圖片及一些 metadata,或是一段文字與相關的 categorical 或 numerical 資料。
常見的解法是利用前文介紹的 Embedding 模式把 categorical 資料轉成 embedding 向量,再把所有的資料接在一起當成類神經網路模型的輸入。
其他要考慮的設計問題
1. Tabular 資料的多種表示法
文中舉的例子是將餐廳的評價一顆星至五顆星當成五個類別,但是我們也可以將五個類別合併成兩個類別,例如四顆星至五顆星為好餐廳,低於四顆星為不好的餐廳,這樣就將五個類別的向量轉變成兩個類別了。
2. 文字資料的多種表示法
除了前文提過的 Embedding 模式以外,bag of words (BOW) 也是一種常見的文字表示方法(註:BOW 也很常被用在圖片檢索,但這裡我們只呈現書中所述的內容)。但是 BOW 與 Embedding 在使用時有些不同的考量:
- BOW 可以表示出這段文字中哪些文字出現得特別多次,而 Embedding 的目標是找到文字之間的相互關係。
- 無論是 BOW 或 Embedding 都能用在多種語言的類神經網路模型。
- Embedding 需要訓練,BOW 不需要;因此 BOW 會用來搭配 linear regression 或 decision tree 相關的機器學習演算法。
3. 圖片的表示法
常見的方法是利用數個 convolution 層及 pooling 層,最後使用 flatten 層來產生一個特徵向量。產生特徵向量後就能與其他的 categorical 或 numerical 資料合併。
沒有留言:
張貼留言