日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

深入理解FFM原理与实践

發(fā)布時間:2025/3/21 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深入理解FFM原理与实践 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

原文:http://tech.meituan.com/deep-understanding-of-ffm-principles-and-practices.html

深入理解FFM原理與實(shí)踐

del2z, 大龍2016-03-03 09:00

FM和FFM模型是最近幾年提出的模型,憑借其在數(shù)據(jù)量比較大并且特征稀疏的情況下,仍然能夠得到優(yōu)秀的性能和效果的特性,屢次在各大公司舉辦的CTR預(yù)估比賽中獲得不錯的戰(zhàn)績。美團(tuán)點(diǎn)評技術(shù)團(tuán)隊(duì)在搭建DSP的過程中,探索并使用了FM和FFM模型進(jìn)行CTR和CVR預(yù)估,并且取得了不錯的效果。本文旨在把我們對FM和FFM原理的探索和應(yīng)用的經(jīng)驗(yàn)介紹給有興趣的讀者。

前言

在計(jì)算廣告領(lǐng)域,點(diǎn)擊率CTR(click-through rate)和轉(zhuǎn)化率CVR(conversion rate)是衡量廣告流量的兩個關(guān)鍵指標(biāo)。準(zhǔn)確的估計(jì)CTR、CVR對于提高流量的價(jià)值,增加廣告收入有重要的指導(dǎo)作用。預(yù)估CTR/CVR,業(yè)界常用的方法有人工特征工程 + LR(Logistic Regression)、GBDT(Gradient Boosting Decision Tree) + LR[1][2][3]、FM(Factorization Machine)[2][7]和FFM(Field-aware Factorization Machine)[9]模型。在這些模型中,FM和FFM近年來表現(xiàn)突出,分別在由Criteo和Avazu舉辦的CTR預(yù)測競賽中奪得冠軍[4][5]。

考慮到FFM模型在CTR預(yù)估比賽中的不俗戰(zhàn)績,美團(tuán)點(diǎn)評技術(shù)團(tuán)隊(duì)在搭建DSP(Demand Side Platform)[6]平臺時,在站內(nèi)CTR/CVR的預(yù)估上使用了該模型,取得了不錯的效果。本文是基于對FFM模型的深度調(diào)研和使用經(jīng)驗(yàn),從原理、實(shí)現(xiàn)和應(yīng)用幾個方面對FFM進(jìn)行探討,希望能夠從原理上解釋FFM模型在點(diǎn)擊率預(yù)估上取得優(yōu)秀效果的原因。因?yàn)镕FM是在FM的基礎(chǔ)上改進(jìn)得來的,所以我們首先引入FM模型,本文章節(jié)組織方式如下:

  • 首先介紹FM的原理。
  • 其次介紹FFM對FM的改進(jìn)。
  • 然后介紹FFM的實(shí)現(xiàn)細(xì)節(jié)。
  • 最后介紹模型在DSP場景的應(yīng)用。
  • FM原理

    FM(Factorization Machine)是由Konstanz大學(xué)Steffen Rendle(現(xiàn)任職于Google)于2010年最早提出的,旨在解決稀疏數(shù)據(jù)下的特征組合問題[7]。下面以一個示例引入FM模型。假設(shè)一個廣告分類的問題,根據(jù)用戶和廣告位相關(guān)的特征,預(yù)測用戶是否點(diǎn)擊了廣告。源數(shù)據(jù)如下[8]

    Clicked?CountryDayAd_type
    1USA26/11/15Movie
    0China1/7/14Game
    1China19/2/15Game

    "Clicked?"是label,Country、Day、Ad_type是特征。由于三種特征都是categorical類型的,需要經(jīng)過獨(dú)熱編碼(One-Hot Encoding)轉(zhuǎn)換成數(shù)值型特征。

    Clicked?Country=USACountry=ChinaDay=26/11/15Day=1/7/14Day=19/2/15Ad_type=MovieAd_type=Game
    11010010
    00101001
    10100101

    由上表可以看出,經(jīng)過One-Hot編碼之后,大部分樣本數(shù)據(jù)特征是比較稀疏的。上面的樣例中,每個樣本有7維特征,但平均僅有3維特征具有非零值。實(shí)際上,這種情況并不是此例獨(dú)有的,在真實(shí)應(yīng)用場景中這種情況普遍存在。例如,CTR/CVR預(yù)測時,用戶的性別、職業(yè)、教育水平、品類偏好,商品的品類等,經(jīng)過One-Hot編碼轉(zhuǎn)換后都會導(dǎo)致樣本數(shù)據(jù)的稀疏性。特別是商品品類這種類型的特征,如商品的末級品類約有550個,采用One-Hot編碼生成550個數(shù)值特征,但每個樣本的這550個特征,有且僅有一個是有效的(非零)。由此可見,數(shù)據(jù)稀疏性是實(shí)際問題中不可避免的挑戰(zhàn)。

    One-Hot編碼的另一個特點(diǎn)就是導(dǎo)致特征空間大。例如,商品品類有550維特征,一個categorical特征轉(zhuǎn)換為550維數(shù)值特征,特征空間劇增。

    同時通過觀察大量的樣本數(shù)據(jù)可以發(fā)現(xiàn),某些特征經(jīng)過關(guān)聯(lián)之后,與label之間的相關(guān)性就會提高。例如,“USA”與“Thanksgiving”、“China”與“Chinese New Year”這樣的關(guān)聯(lián)特征,對用戶的點(diǎn)擊有著正向的影響。換句話說,來自“China”的用戶很可能會在“Chinese New Year”有大量的瀏覽、購買行為,而在“Thanksgiving”卻不會有特別的消費(fèi)行為。這種關(guān)聯(lián)特征與label的正向相關(guān)性在實(shí)際問題中是普遍存在的,如“化妝品”類商品與“女”性,“球類運(yùn)動配件”的商品與“男”性,“電影票”的商品與“電影”品類偏好等。因此,引入兩個特征的組合是非常有意義的。

    多項(xiàng)式模型是包含特征組合的最直觀的模型。在多項(xiàng)式模型中,特征?xixi?和?xjxj?的組合采用?xixjxixj?表示,即?xixi?和?xjxj?都非零時,組合特征?xixjxixj?才有意義。從對比的角度,本文只討論二階多項(xiàng)式模型。模型的表達(dá)式如下

    ?

    y(x)=w0+i=1nwixi+i=1nj=i+1nwijxixj(1)(1)y(x)=w0+∑i=1nwixi+∑i=1n∑j=i+1nwijxixj

    ?

    其中,nn?代表樣本的特征數(shù)量,xixi?是第?ii?個特征的值,w0w0、wiwi、wijwij?是模型參數(shù)。

    從公式(1)(1)可以看出,組合特征的參數(shù)一共有?n(n?1)2n(n?1)2?個,任意兩個參數(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)練問題呢?矩陣分解提供了一種解決思路。在model-based的協(xié)同過濾中,一個rating矩陣可以分解為user矩陣和item矩陣,每個user和item都可以采用一個隱向量表示[8]。比如在下圖中的例子中,我們把每個user表示成一個二維向量,同時把每個item表示成一個二維向量,兩個向量的點(diǎn)積就是矩陣中user對item的打分。

    類似地,所有二次項(xiàng)參數(shù)?wijwij?可以組成一個對稱陣?WW(為了方便說明FM的由來,對角元素可以設(shè)置為正實(shí)數(shù)),那么這個矩陣就可以分解為?W=VTVW=VTV,VV?的第?jj?列便是第?jj?維特征的隱向量。換句話說,每個參數(shù)?wij=?vi,vj?wij=?vi,vj?,這就是FM模型的核心思想。因此,FM的模型方程為(本文不討論FM的高階形式)

    ?

    y(x)=w0+i=1nwixi+i=1nj=i+1n?vi,vj?xixj(2)(2)y(x)=w0+∑i=1nwixi+∑i=1n∑j=i+1n?vi,vj?xixj

    ?

    其中,vivi?是第?ii?維特征的隱向量,??,????,???代表向量點(diǎn)積。隱向量的長度為?kk(k<<nk<<n),包含?kk?個描述特征的因子。根據(jù)公式(2)(2),二次項(xiàng)的參數(shù)數(shù)量減少為?knkn個,遠(yuǎn)少于多項(xiàng)式模型的參數(shù)數(shù)量。另外,參數(shù)因子化使得?xhxixhxi?的參數(shù)和?xixjxixj?的參數(shù)不再是相互獨(dú)立的,因此我們可以在樣本稀疏的情況下相對合理地估計(jì)FM的二次項(xiàng)參數(shù)。具體來說,xhxixhxi?和?xixjxixj?的系數(shù)分別為??vh,vi??vh,vi??和??vi,vj??vi,vj?,它們之間有共同項(xiàng)?vivi。也就是說,所有包含“xixi?的非零組合特征”(存在某個?jij≠i,使得?xixj0xixj≠0)的樣本都可以用來學(xué)習(xí)隱向量?vivi,這很大程度上避免了數(shù)據(jù)稀疏性造成的影響。而在多項(xiàng)式模型中,whiwhi?和?wijwij?是相互獨(dú)立的。

    顯而易見,公式(2)(2)是一個通用的擬合方程,可以采用不同的損失函數(shù)用于解決回歸、二元分類等問題,比如可以采用MSE(Mean Square Error)損失函數(shù)來求解回歸問題,也可以采用Hinge/Cross-Entropy損失來求解分類問題。當(dāng)然,在進(jìn)行二元分類時,FM的輸出需要經(jīng)過sigmoid變換,這與Logistic回歸是一樣的。直觀上看,FM的復(fù)雜度是?O(kn2)O(kn2)。但是,通過公式(3)(3)的等式,FM的二次項(xiàng)可以化簡,其復(fù)雜度可以優(yōu)化到?O(kn)O(kn)[7]。由此可見,FM可以在線性時間對新樣本作出預(yù)測。

    ?

    i=1nj=i+1n?vi,vj?xixj=12f=1k??(i=1nvi,fxi)2?i=1nv2i,fx2i??(3)(3)∑i=1n∑j=i+1n?vi,vj?xixj=12∑f=1k((∑i=1nvi,fxi)2?∑i=1nvi,f2xi2)

    ?

    我們再來看一下FM的訓(xùn)練復(fù)雜度,利用SGD(Stochastic Gradient Descent)訓(xùn)練模型。模型各個參數(shù)的梯度如下

    ?

    ??θy(x)=?????1,xi,xinj=1vj,fxj?vi,fx2i,ifθisw0ifθiswiifθisvi,f??θy(x)={1,ifθisw0xi,ifθiswixi∑j=1nvj,fxj?vi,fxi2,ifθisvi,f

    ?

    其中,vj,fvj,f?是隱向量?vjvj?的第?ff?個元素。由于?nj=1vj,fxj∑j=1nvj,fxj?只與?ff?有關(guān),而與?ii?無關(guān),在每次迭代過程中,只需計(jì)算一次所有?ff?的?nj=1vj,fxj∑j=1nvj,fxj,就能夠方便地得到所有?vi,fvi,f?的梯度。顯然,計(jì)算所有?ff?的?nj=1vj,fxj∑j=1nvj,fxj的復(fù)雜度是?O(kn)O(kn);已知?nj=1vj,fxj∑j=1nvj,fxj?時,計(jì)算每個參數(shù)梯度的復(fù)雜度是?O(1)O(1);得到梯度后,更新每個參數(shù)的復(fù)雜度是?O(1)O(1);模型參數(shù)一共有?nk+n+1nk+n+1?個。因此,FM參數(shù)訓(xùn)練的復(fù)雜度也是?O(kn)O(kn)。綜上可知,FM可以在線性時間訓(xùn)練和預(yù)測,是一種非常高效的模型。

    FM與其他模型的對比

    FM是一種比較靈活的模型,通過合適的特征變換方式,FM可以模擬二階多項(xiàng)式核的SVM模型、MF模型、SVD++模型等[7]。

    相比SVM的二階多項(xiàng)式核而言,FM在樣本稀疏的情況下是有優(yōu)勢的;而且,FM的訓(xùn)練/預(yù)測復(fù)雜度是線性的,而二項(xiàng)多項(xiàng)式核SVM需要計(jì)算核矩陣,核矩陣復(fù)雜度就是N平方。

    相比MF而言,我們把MF中每一項(xiàng)的rating分改寫為?ruiβu+γi+xTuyirui~βu+γi+xuTyi,從公式(2)(2)中可以看出,這相當(dāng)于只有兩類特征?uu?和?ii?的FM模型。對于FM而言,我們可以加任意多的特征,比如user的歷史購買平均值,item的歷史購買平均值等,但是MF只能局限在兩類特征。SVD++與MF類似,在特征的擴(kuò)展性上都不如FM,在此不再贅述。

    FFM原理

    FFM(Field-aware Factorization Machine)最初的概念來自Yu-Chin Juan(阮毓欽,畢業(yè)于中國臺灣大學(xué),現(xiàn)在美國Criteo工作)與其比賽隊(duì)員,是他們借鑒了來自Michael Jahrer的論文[14]中的field概念提出了FM的升級版模型。通過引入field的概念,FFM把相同性質(zhì)的特征歸于同一個field。以上面的廣告分類為例,“Day=26/11/15”、“Day=1/7/14”、“Day=19/2/15”這三個特征都是代表日期的,可以放到同一個field中。同理,商品的末級品類編碼生成了550個特征,這550個特征都是說明商品所屬的品類,因此它們也可以放到同一個field中。簡單來說,同一個categorical特征經(jīng)過One-Hot編碼生成的數(shù)值特征都可以放到同一個field,包括用戶性別、職業(yè)、品類偏好等。在FFM中,每一維特征?xixi,針對其它特征的每一種field?fjfj,都會學(xué)習(xí)一個隱向量?vi,fjvi,fj。因此,隱向量不僅與特征相關(guān),也與field相關(guān)。也就是說,“Day=26/11/15”這個特征與“Country”特征和“Ad_type"特征進(jìn)行關(guān)聯(lián)的時候使用不同的隱向量,這與“Country”和“Ad_type”的內(nèi)在差異相符,也是FFM中“field-aware”的由來。

    假設(shè)樣本的?nn?個特征屬于?ff?個field,那么FFM的二次項(xiàng)有?nfnf個隱向量。而在FM模型中,每一維特征的隱向量只有一個。FM可以看作FFM的特例,是把所有特征都?xì)w屬到一個field時的FFM模型。根據(jù)FFM的field敏感特性,可以導(dǎo)出其模型方程。

    ?

    y(x)=w0+i=1nwixi+i=1nj=i+1n?vi,fj,vj,fi?xixj(4)(4)y(x)=w0+∑i=1nwixi+∑i=1n∑j=i+1n?vi,fj,vj,fi?xixj

    ?

    其中,fjfj?是第?jj?個特征所屬的field。如果隱向量的長度為?kk,那么FFM的二次參數(shù)有?nfknfk?個,遠(yuǎn)多于FM模型的nknk?個。此外,由于隱向量與field相關(guān),FFM二次項(xiàng)并不能夠化簡,其預(yù)測復(fù)雜度是?O(kn2)O(kn2)。

    下面以一個例子簡單說明FFM的特征組合方式[9]。輸入記錄如下

    UserMovieGenrePrice
    YuChin3IdiotsComedy, Drama$9.99

    這條記錄可以編碼成5個特征,其中“Genre=Comedy”和“Genre=Drama”屬于同一個field,“Price”是數(shù)值型,不用One-Hot編碼轉(zhuǎn)換。為了方便說明FFM的樣本格式,我們將所有的特征和對應(yīng)的field映射成整數(shù)編號。

    Field nameField indexFeature nameFeature index
    User1User=YuChin1
    Movie2Movie=3Idiots2
    Genre3Genre=Comedy3
    Price4Genre=Drama4
    ??Price5

    那么,FFM的組合特征有10項(xiàng),如下圖所示。

    ?v1,2,v2,1??1?1+?v1,3,v3,1??1?1+?v1,3,v4,1??1?1+?v1,4,v5,1??1?9.99+?v2,3,v3,

    轉(zhuǎn)載于:https://www.cnblogs.com/zhizhan/p/5238415.html

    總結(jié)

    以上是生活随笔為你收集整理的深入理解FFM原理与实践的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 天天射天天干天天舔 | 人妻大战黑人白浆狂泄 | 欧美人与性动交a欧美精品 日韩免费高清视频 | av作品在线观看 | 中文国语毛片高清视频 | 亚洲高清一区二区三区 | 精品久久久久久久久久久久 | 特高潮videossexhd | 6080福利| 狠狠操天天干 | 国产大奶在线 | 淫片在线 | 加勒比视频在线观看 | 精品国产一区二区三区久久 | 午夜嘿嘿嘿 | 成年人网站在线 | 亚洲最大视频网站 | 四虎影裤 | wwwwww在线观看 | 中文字幕免费高清在线 | 一区二区免费播放 | 三上悠亚久久精品 | 91看片网站 | 欧美,日韩,国产精品免费观看 | 三年中文免费观看大全动漫 | 久久精品国产亚洲AV黑人 | 久草新在线 | 粉嫩av一区二区三区免费观看 | 青青网站| avtt香蕉久久 | 播色屋 | 鲁片一区二区三区 | a免费观看 | 影音先锋 日韩 | 国产内射一区二区 | 男人桶进美女尿囗 | 欧美激情喷水 | 黄色在线观看国产 | 亚洲乱码精品久久久久.. | 大粗鳮巴久久久久久久久 | 国产精品视频专区 | 日韩欧美福利视频 | 免费三片在线播放 | 久久国产精品无码一区二区 | 99精品热 | 久久久综合 | 性色av蜜臀av浪潮av老女人 | 国产精品一二区 | 国内露脸中年夫妇交换 | 又色又爽又黄18网站 | 小蝌蚪视频色 | 视频二区中文字幕 | 国产成人无码精品久久久电影 | 国产综合图区 | 免费国产一区 | 红桃av在线 | 激情综合网五月婷婷 | 福利网址在线 | 老司机成人网 | 爱色成人网 | 欧美一区二区三区久久久 | 三级黄色片网站 | jizz成人 | 免费看女生裸体视频 | 真人抽搐一进一出视频 | 大尺度在线观看 | 六月婷婷色 | 国产精品久久久久久亚洲毛片 | 曰女同女同中文字幕 | www.xxx.日本 | 亚洲精品一线 | 6080毛片| 国产一区欧美二区 | 日本韩国毛片 | 草逼视频网站 | 天天操综合 | 日韩av在线直播 | a点w片| 扒丝袜 | 激情网五月 | 一级黄色在线观看 | 黄网址在线 | 熟女人妻一区二区三区免费看 | 欧美色图俺去了 | 伊人色av | 国产午夜精品久久久久久久 | 亚洲色图综合 | 久久不射影院 | 亚洲国产精品成人无码区 | 国产999精品视频 | 伦理片久久 | 色骚综合| 日本人妻换人妻毛片 | 亚州中文 | 亚洲熟女综合一区二区三区 | 无码少妇一区二区三区芒果 | 69堂在线观看 | 亚洲一级免费视频 | 日本护士╳╳╳hd少妇 |