從FM到FFM自動特徵交叉的解決方案

2021-10-16 09:01:46 字數 1271 閱讀 2444

由於矩陣分解的缺陷:不方便加入使用者、物品、上下文環境等相關的特徵,使得矩陣分解喪失了利用很多有效資訊的機會。當缺乏使用者歷史行為的時候,無法進行有效推薦。

相比於協同過濾僅能利用使用者與物品的相互資訊進行推薦,邏輯回歸可以綜合利用使用者、物品、上下文等不同的特徵。它是將推薦問題看成乙個分類問題,通過**正樣本的概率對物品進行排序。

邏輯回歸雖然簡單、可解釋性好,但是模型不具備特徵組合(特徵交叉)的能力,只是對單一特徵做簡單加權,表達能力較差,有時會造成資訊損失,甚至還會得出錯誤的結論,所以我們要多維度的特徵交叉。

改造邏輯回歸只對單一特徵做簡單加權表達能力差的問題,該模型對所有特徵進行了兩兩交叉,並對所有的特徵組合賦予權重,一定程度上解決了特徵組合的問題。

poly2的缺陷

fm引入了隱向量,與矩陣分解中隱向量代表使用者和物品的做法異曲同工。也是在模型中加入二階特徵交叉,為每個特徵學習乙個隱權重向量,特徵交叉的時候,使用兩個特徵隱向量的內積作為交叉特徵的權重。和poly2的區別在於它是用兩個隱向量的內積 (wj

1⋅wj

2)(w_ \cdot w_)

(wj1​⋅

wj2​

)取代單一的權重係數 wh(

j1,j

2)w_wh

(j1​

,j2​

)​通過隱權重向量的引入,直接把poly2模型n(n

+1)2

\frac

2n(n+1

)​級別的權重引數數量減少到了nk級別,並且也可以解決資料稀疏問題,泛化能力大大提高。

ffm在fm的基礎上,加入了特徵域的概念,使每個特徵在與不同域的特徵交叉時採用不同的隱向量,也就是說在特徵交叉時,每個特徵選擇與對方域對應的隱向量做內積運算,得到交叉特徵的權重,進一步加強了特徵交叉的能力,同時訓練開銷也大了。

從特徵表示到深度學習

最近一直在學習特徵表達和學習的理論基礎,從稀疏編碼到卷積神經網路,直到最近很火的深度學習,感覺有那麼些啟發。特此記錄一下學習新得。影象特徵的表達從開始的畫素表示,到後來畫素特徵組成的特徵描述子 sift,surf,hog等 都是為了尋找最有效的資訊表達,如何將特徵進行加工和處理得到更加深入層次的表示...

PHP從手動匯入到自動載入

在php開發過程中,如果希望從外部引入乙個 class,通常會使用 include 和 require 方法,去把定義這個 class 的檔案包含進來。這個在小規模開發的時候,沒什麼大問題。但在大型的開發專案中,使用這種方式會帶來一些隱含的問題 如果乙個 php 檔案需要使用很多其它類,那麼就需要很...

從自動化測試到持續部署,你需要了解這些

在網際網路的產品開發時代,產品迭代越來越頻繁,從功能開發完成直到成功部署 這一階段被稱為軟體開發 最後一公里 很多開發團隊也越來越認識到,自動化測試和持續部署可幫助開發團隊提高迭代效率和質量。那麼,如何更好地解決 最後一公里 這一問題呢?一切從自動化測試開始,讓自動化測試貫穿在整個專案開發 整合 部...