盡管BERT為代表的預(yù)訓(xùn)練模型大肆流行,但是身處工業(yè)界才會知道它落地有多難,,尤其是QPS動輒幾百的在線推薦,、搜索系統(tǒng),哪怕在大廠也很難在線上系統(tǒng)見到它們,。 今天就想反其道而行之,,談?wù)劰I(yè)界搜索、推薦,、廣告這類核心場景中落地能力最強(qiáng)的算法(之一):因子分解機(jī)(FM),。我不敢說它是最簡單的(FM的確很簡單),但是作為一個(gè)推薦算法調(diào)參工程師,,掌握FM一定是性價(jià)比最高的,。我推崇FM算法的原因,有以下三點(diǎn): 功能齊全眾所周知,,推薦算法有三個(gè)應(yīng)用領(lǐng)域:召回,、粗排、精排,。推薦算法千千萬,,但是有的算法只能用于召回,有的算法只能用于排序,。像FM這樣實(shí)現(xiàn)三個(gè)領(lǐng)域全覆蓋的多面手,,目前為止,孤陋寡聞的我尚不知道有第二個(gè),。但是需要強(qiáng)調(diào)的是,,我們不能只訓(xùn)練一個(gè)FM排序模型 ,然后直接拿這個(gè)排序模型用于召回,。盡管都是基于FM算法,,但是FM召回與排序,有以下不同: 使用的特征不同
使用的樣本不同
使用的Loss不同
性能優(yōu)異推薦系統(tǒng)的兩大永恒主題,,“記憶”與“擴(kuò)展”,,F(xiàn)M也能實(shí)現(xiàn)全覆蓋。
便于上線現(xiàn)在深度學(xué)習(xí)是推薦領(lǐng)域的寵兒,,LR/FM/GBDT這樣的傳統(tǒng)機(jī)器學(xué)習(xí)算法,不招人待見,。 DNN雖然性能優(yōu)異,,但是它有一個(gè)致命缺點(diǎn),就是上線困難,。訓(xùn)練的時(shí)候,,各位調(diào)參俠,把各種酷炫的結(jié)構(gòu),,什么attention, transformer, capsule,,能加上的都給它加上,看著離線指標(biāo)一路上漲,,心里和臉上都樂開了花,,卻全然無視旁邊的后端工程師恨得咬緊了牙根。模型越復(fù)雜,,離線和線上指標(biāo)未必就更好,,但是線上的時(shí)間開銷肯定會增加,輕則影響算法與后端的同事關(guān)系(打工人何苦為難打工人),,重則你那離線指標(biāo)完美的模型壓根沒有上線的機(jī)會,。雖說,目前已經(jīng)有TF Serving這樣的線上serving框架,,但是它也不是開箱即用的,,也需要一系列的性能調(diào)優(yōu),才能滿足線上的實(shí)時(shí)性要求,。 所以,,如果你身處一個(gè)小團(tuán)隊(duì),后端工程人員的技術(shù)能力不強(qiáng),,DNN的線上實(shí)時(shí)預(yù)測,,就會成為一個(gè)難題,這個(gè)時(shí)候,,F(xiàn)M這樣的傳統(tǒng)機(jī)器學(xué)習(xí)算法,,就凸顯出其優(yōu)勢。 FM排序,,雖然理論上需要所有特征進(jìn)行二階交叉,,但是通過公式化簡,,可以在 O(n)的時(shí)間復(fù)雜度下完成。n是樣本中非零的特征數(shù)目,,由于推薦系統(tǒng)中的特征非常稀疏,,所以預(yù)測速度是非常快的,。 召回,,由于候選集巨大,對于實(shí)時(shí)性的要求更高,。很多基于DNN的召回算法,,由于無法滿足線上實(shí)時(shí)生成user embedding的需求,只能退而離線生成user embedding ,,對于用戶實(shí)時(shí)興趣的捕捉大打折扣,。FM召回,這時(shí)就顯現(xiàn)其巨大的優(yōu)勢,。事先把doc embedding計(jì)算好,,存入Faiss建立索引,user embedding只需要把一系列的feature embedding相加就可以得到,,再去faiss中進(jìn)行top-k近鄰搜索,。FM召回,可以實(shí)現(xiàn)基于用戶最新的實(shí)時(shí)興趣,,從千萬量級候選doc中完成實(shí)時(shí)召回,。 總結(jié)與參考由于以上優(yōu)點(diǎn),我心目中,,將FM視為推薦,、搜索領(lǐng)域的'瑞士軍刀'。風(fēng)頭上雖然不及DNN那么搶眼,,但是論在推薦系統(tǒng)中發(fā)揮的作用,,絲毫不比DNN遜色,有時(shí)還能更勝一籌,。FM有如此眾多的優(yōu)點(diǎn),,優(yōu)秀的調(diào)參俠+打工人,還等什么,,還不趕快學(xué)起來,。想迅速掌握FM,我推薦如下參考文獻(xiàn):
|
|