點(diǎn)擊率CTR(click-through rate)和轉(zhuǎn)化率CVR(conversion rate)是衡量廣告流量的兩個關(guān)鍵指標(biāo)。準(zhǔn)確的估計(jì)CTR调卑、CVR對于提高流量的價值大咱,增加廣告收入有重要的指導(dǎo)作用。
預(yù)估CTR/CVR碴巾,業(yè)界常用的方法有
人工特征工程 + LR(Logistic Regression)
GBDT(Gradient Boosting Decision Tree) + LR(Logistic Regression)
FM(Factorization Machine)
FFM(Field-aware Factorization Machine)模型
DSP(Demand Side Platform)
1.首先介紹FM的原理
2.介紹FFM對FM的改進(jìn)
3.介紹FFM的實(shí)現(xiàn)細(xì)節(jié)
4.介紹模型在DSP場景的應(yīng)用
FM(Factorization Machine)
因式分解機(jī) 應(yīng)用范圍 解決稀疏數(shù)據(jù)下的特征組合問題
問題原因 :經(jīng)過One-Hot編碼之后餐抢,樣本的維度大幅增加,大部分樣本數(shù)據(jù)特征是比較稀疏的旷痕。
通過觀察大量的樣本數(shù)據(jù)可以發(fā)現(xiàn)欺抗,某些特征經(jīng)過關(guān)聯(lián)之后,與label之間的相關(guān)性就會提高绞呈。那么如何進(jìn)行特征組合就是問題的關(guān)鍵佃声。
多項(xiàng)式模型是包含特征組合的最直觀的模型。
對于二階多項(xiàng)式模型圾亏,兩個特征之間志鹃,假設(shè)參數(shù)相互獨(dú)立。
在數(shù)據(jù)稀疏性普遍存在的實(shí)際應(yīng)用場景中曹铃,二次項(xiàng)參數(shù)的訓(xùn)練是很困難的。其原因是秘血,每個參數(shù) wijwij 的訓(xùn)練需要大量 xixi 和 xjxj 都非零的樣本淳玩;由于樣本數(shù)據(jù)本來就比較稀疏,滿足“xixi 和 xjxj 都非零”的樣本將會非常少谋竖。訓(xùn)練樣本的不足承匣,很容易導(dǎo)致參數(shù) wijwij 不準(zhǔn)確,最終將嚴(yán)重影響模型的性能嘉抒。
解決二次項(xiàng)參數(shù)訓(xùn)練問題的辦法:
矩陣分解
對二階多項(xiàng)式參數(shù)進(jìn)行矩陣分解
即N * N = (Ni) * (iN)
把以前的高維度矩陣拆開成兩個低維度的矩陣就可以了
一個特征的隱變量應(yīng)該理解為這個特征的低維度向量表示
所有包含“xixi 的非零組合特征”(存在某個 j≠ij≠i袍暴,使得 xixj≠0xixj≠0)的樣本都可以用來學(xué)習(xí)隱向量 vivi隶症,這很大程度上避免了數(shù)據(jù)稀疏性造成的影響岗宣。
FM在樣本稀疏的情況下有優(yōu)勢胁住。
FM的訓(xùn)練/預(yù)測復(fù)雜度是線性的刊咳,而二項(xiàng)多項(xiàng)式核SVM需要計(jì)算核矩陣,核矩陣復(fù)雜度就是N平方余指。
FFM原理 : 相同性質(zhì)的特征歸于同一個field
同一個categorical特征經(jīng)過One-Hot編碼生成的數(shù)值特征都可以放到同一個field让蕾。
FFM的使用:所有的特征必須轉(zhuǎn)換成“field_id:feat_id:value”格式,field_id代表特征所屬field的編號探孝,feat_id是特征編號顿颅,value是特征的值
數(shù)值型的特征比較容易處理,只需分配單獨(dú)的field編號粱腻,如用戶評論得分、商品的歷史CTR/CVR等捞慌。categorical特征需要經(jīng)過One-Hot編碼成數(shù)值型柬批,編碼產(chǎn)生的所有特征同屬于一個field,而特征的值只能是0或1嗅虏,如用戶的性別上沐、年齡段,商品的品類id等龄广。除此之外,還有第三類特征择同,如用戶瀏覽/購買品類奠衔,有多個品類id且用一個數(shù)值衡量用戶瀏覽或購買每個品類商品的數(shù)量塘娶。這類特征按照categorical特征處理,不同的只是特征的值不是0或1脏里,而是代表用戶瀏覽或購買數(shù)量的數(shù)值虹曙。按前述方法得到field_id之后,再對轉(zhuǎn)換后特征順序編號酝碳,得到feat_id,特征的值也可以按照之前的方法獲得呛讲。
在訓(xùn)練FFM的過程中返奉,有許多小細(xì)節(jié)值得特別關(guān)注。
第一雷逆,樣本層面的數(shù)據(jù)是推薦進(jìn)行歸一化的污尉。
第二,特征歸一化等太。尤其是數(shù)值型特征歸一化蛮放。CTR/CVR模型采用了多種類型的源特征,包括數(shù)值型和categorical類型等瞻想。但是,categorical類編碼后的特征取值只有0或1蘑险,較大的數(shù)值型特征會造成樣本歸一化后categorical類生成特征的值非常小佃迄,沒有區(qū)分性泼差。例如,一條用戶-商品記錄呵俏,用戶為“男”性堆缘,商品的銷量是5000個(假設(shè)其它特征的值為零),那么歸一化后特征“sex=male”(性別為男)的值略小于0.0002普碎,而“volume”(銷量)的值近似為1吼肥。特征“sex=male”在這個樣本中的作用幾乎可以忽略不計(jì),這是相當(dāng)不合理的麻车。因此缀皱,將源數(shù)值型特征的值歸一化到 [0,1] 是非常必要的动猬。
第三啤斗,省略零值特征。從FFM模型的表達(dá)式(4)
可以看出争占,零值特征對模型完全沒有貢獻(xiàn)。包含零值特征的一次項(xiàng)和組合項(xiàng)均為零序目,對于訓(xùn)練模型參數(shù)或者目標(biāo)值預(yù)估是沒有作用的臂痕。因此,可以省去零值特征猿涨,提高FFM模型訓(xùn)練和預(yù)測的速度握童,這也是稀疏樣本采用FFM的顯著優(yōu)勢。