在自然語言辨識等問題上,可能會有多個稀疏的特徵向量,這些向量組成的高維向量空間,在機器學習上並不能很好的處理,此時就要透過嵌入(Embeddings)來將其映射到低維度的向量空間中
例如在做影片推薦時,我們需要判斷影片的相似性
此時每個用戶觀看哪個影片是個
非常高維(有很多影片)
但稀疏(大部分人看的影片通常占所有影片的很少部分),
這樣會有什麼問題呢?
特徵與其權重變得很多,要訓練好的模型所需要的資料就更多
特徵與其權重變得很多,訓練或使用模型就需要更多的計算量
而且這個題目中,每個特徵向量缺乏有意義的關係
所以這時候就要透過嵌入來將高維度資料映射到低維度空間中
簡單來說,就是先分類
將相似的特徵合併、相異分開,例如動畫片與真人秀分開
常見的嵌入分類方式,可以可以透過主成分分析或者將嵌入的方式作為神經網路學習的一部份來處理
如果要實作一個使用機器學習的產品時,除了實現機器學習的程式碼之外,還必須要考慮很多的事,其實從這幾天的學習過程中,大致也能夠想到。
比如最重要的資料就包含
就預測而言也可以大致分為兩種
一種是離線,先進行預測把結果存入表格,等待讀取。
一種是線上,根據輸入特徵及時演算結果。
再來就對資料的依賴關係進行管理
因為資料決定系統的行為
所以必須思考
如何驗證資料的可靠性
如何對資料進行版本控制
如何決定特徵對系統本身是否是必要的?
資料跟資料之間是否有相關性,是不是需要另外處理?
那些輸入會受到模型輸出的影響?
(最後一個比較不好想,可以想想例如管理水庫容量的決策系統,容量影響系統決策(輸出),系統的決策(輸出)又會影響容量)