自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

圖文并茂!推薦算法架構(gòu)——粗排

開(kāi)發(fā) 架構(gòu) 人工智能
粗排是介于召回和精排之間的一個(gè)模塊,是典型的精度與性能之間trade-off的產(chǎn)物。理解粗排各技術(shù)細(xì)節(jié),一定要時(shí)刻把精度和性能放在心中。

一、總體架構(gòu)

粗排是介于召回和精排之間的一個(gè)模塊 。它從召回獲取上萬(wàn)的候選item,輸出幾百上千的item給精排,是典型的精度與性能之間trade-off的產(chǎn)物。對(duì)于推薦池不大的場(chǎng)景,粗排是非必選的。粗排 整體架構(gòu) 如下:

二、粗排基本框架:樣本、特征、模型

目前粗排一般模型化了,基本框架也是包括數(shù)據(jù)樣本、特征工程、深度模型三部分。

1.數(shù)據(jù)樣本

目前粗排一般也都模型化了,其訓(xùn)練樣本類(lèi)似于精排,選取曝光點(diǎn)擊為正樣本,曝光未點(diǎn)擊為負(fù)樣本。但由于粗排一般面向上萬(wàn)的候選集,而精排只有幾百上千,其解空間大很多。只使用曝光樣本作為訓(xùn)練,但卻要對(duì)曝光和非曝光同時(shí)預(yù)測(cè),存在嚴(yán)重的樣本選擇偏差(SSB問(wèn)題),導(dǎo)致訓(xùn)練與預(yù)測(cè)不一致。相比精排,顯然粗排的SSB問(wèn)題更嚴(yán)重。

2.特征工程

粗排的特征也可以類(lèi)似于精排,由于其計(jì)算延遲要求高,只有10ms~20ms,故一般可以粗分為兩類(lèi):

  • 普通特征:類(lèi)似精排,user、context、item三部分。有哪些特征,以及特征如何處理,可以參看精排的特征工程部分。
  • 交叉特征:user和item之間的交叉特征,對(duì)提升模型精度很有幫助。但由于交叉特征枚舉過(guò)多,難以離線(xiàn)計(jì)算和存儲(chǔ)。實(shí)時(shí)打分時(shí)又不像user特征只用計(jì)算一次,延遲較高。故對(duì)于交叉特征要謹(jǐn)慎使用。

3.深度模型

粗排目前已經(jīng)基本模型化,其發(fā)展歷程主要分為四個(gè)階段:

第一代 :人工規(guī)則策略,可以基于后驗(yàn)統(tǒng)計(jì),構(gòu)建一個(gè)人工規(guī)則。比如融合item的歷史CTR、CVR、類(lèi)目?jī)r(jià)格檔、銷(xiāo)量等比較核心的因子。人工規(guī)則準(zhǔn)確率低,也沒(méi)有個(gè)性化,也不可能實(shí)時(shí)更新。

第二代 :LR線(xiàn)性模型,有一定的個(gè)性化和實(shí)時(shí)性能力,但模型過(guò)于簡(jiǎn)單,表達(dá)能力偏弱。

第三代 :DSSM雙塔內(nèi)積深度模型。它將user和item進(jìn)行解耦合,分別通過(guò)兩個(gè)Tower獨(dú)立構(gòu)建。從而可以實(shí)現(xiàn)item向量離線(xiàn)存儲(chǔ),降低線(xiàn)上predict延遲。主要有兩種范式:

  • item和user均離線(xiàn)存儲(chǔ)。 這個(gè)方案只需要計(jì)算user和item的內(nèi)積即可,計(jì)算延遲低。 由于user是離線(xiàn)存儲(chǔ)的,故可以使用復(fù)雜的模型,提升表達(dá)能力。 但user側(cè)的實(shí)時(shí)性較差,對(duì)于用戶(hù)行為不能實(shí)時(shí)捕捉。
  • item離線(xiàn),user實(shí)時(shí)。 item相對(duì)user,實(shí)時(shí)性要求沒(méi)那么高。 由于一次打分是針對(duì)同一個(gè)用戶(hù)的,故user側(cè)只需要實(shí)時(shí)計(jì)算一次即可,速度也很快。 目前這個(gè)方案使用較多。

第四代 :item和user隔離,導(dǎo)致二者沒(méi)有特征交叉能力,模型表達(dá)能力弱。故又提出了以COLD為代表的第四代模型,輕量級(jí)MLP粗排模型。它通過(guò)SE block實(shí)現(xiàn)特征裁剪,并配合網(wǎng)絡(luò)剪枝和工程優(yōu)化,可以實(shí)現(xiàn)精度和性能之間的trade-off。

三、粗排優(yōu)化

粗排的幾個(gè)主要問(wèn)題:

  • 精度和特征交叉問(wèn)題:經(jīng)典的DSSM模型優(yōu)點(diǎn)很多,目前在粗排上廣泛應(yīng)用,其最核心的缺點(diǎn)就是缺乏特征交叉能力。正所謂成也蕭何敗蕭何,正是由于user和item分離,使得DSSM性能很高。但反過(guò)來(lái)也是由于二者缺乏交叉,導(dǎo)致模型表達(dá)能力不足,精度下降。典型的精度和性能之間的trade-off。
  • 低延遲要求:粗排延遲要求高,一般只有10ms~20ms,遠(yuǎn)低于精排的要求。
  • SSB 問(wèn)題: 粗排解空間比精排大很多,和精排一樣只使用曝光樣本,導(dǎo)致嚴(yán)重的樣本選擇偏差問(wèn)題。

1.精度提升

精度提升的方案主要有精排蒸餾和特征交叉,主要還是要優(yōu)化特征交叉問(wèn)題。

  • 精排蒸餾

精排模型作為teacher,對(duì)粗排模型進(jìn)行蒸餾學(xué)習(xí),從而提升粗排效果,這已經(jīng)成為了目前粗排訓(xùn)練基本范式

  • 特征交叉

特征交叉可以在特征層面,也可以在模型層面實(shí)現(xiàn)。特征層面就是手工構(gòu)造交叉特征,作為模型底層輸入,仍然可以在獨(dú)立的Tower中。模型層面則使用FM或者M(jìn)LP等實(shí)現(xiàn)自動(dòng)交叉。主要方法有:

特征蒸餾 :teacher和student使用相同的網(wǎng)絡(luò)結(jié)構(gòu),teacher模型使用普通特征和交叉特征,student則只使用普通特征。student從teacher中可以學(xué)到交叉特征的高階信息。

加入交叉特征 :特征層面構(gòu)建手工交叉特征,獨(dú)立的Tower中使用。由于交叉特征難以離線(xiàn)存儲(chǔ),實(shí)時(shí)計(jì)算空間也很大,故這個(gè)獨(dú)立的Tower不能過(guò)于復(fù)雜。那我們第一時(shí)間就想到了wide&deep模型。deep部分仍然使用DSSM雙塔,wide部分則為交叉特征。

輕量級(jí)MLP :模型層面實(shí)現(xiàn)特征交叉,不進(jìn)行獨(dú)立分塔。比如COLD,通過(guò)特征裁剪、網(wǎng)絡(luò)剪枝、工程優(yōu)化等方式降低時(shí)延,而不是靠獨(dú)立分塔。

2.延遲降低

精度和性能一直以來(lái)都是一個(gè)trade-off,很多方案都是在二者之間尋找平衡。粗排的性能要求更高,其延遲必須控制在10ms~20ms以?xún)?nèi)。性能優(yōu)化 有很多常見(jiàn)方法 。

主要有以下方法:

  • 特征裁剪:如COLD,不重要的特征先濾掉,自然就降低了整體延遲。這一層可以做在模型內(nèi),從而可以個(gè)性化和實(shí)時(shí)更新。
  • 量化和定點(diǎn)化:比如32bit降低為8bit,可以提升計(jì)算和存儲(chǔ)性能。
  • 網(wǎng)絡(luò)剪枝:network pruning,包括突觸剪枝、神經(jīng)元剪枝、權(quán)重矩陣剪枝等方法,不展開(kāi)了。
  • 模型蒸餾:model distillation,上文已經(jīng)提到了,不展開(kāi)了。

網(wǎng)絡(luò)結(jié)構(gòu)搜索NAS:使用更輕量級(jí),效果更好的模型。可以嘗試網(wǎng)絡(luò)結(jié)構(gòu)搜索NAS。

3.SSB問(wèn)題

粗排解空間比精排大很多,和精排一樣只使用曝光樣本,導(dǎo)致嚴(yán)重的樣本選擇偏差問(wèn)題??梢园盐雌毓鈽颖镜木糯蚍纸o利用起來(lái),緩解SSB問(wèn)題。

作者簡(jiǎn)介

謝楊易

騰訊應(yīng)用算法研究員

騰訊應(yīng)用算法研究員,畢業(yè)于中國(guó)科學(xué)院,目前在騰訊負(fù)責(zé)視頻推薦算法工作,有豐富的自然語(yǔ)言處理和搜索推薦算法經(jīng)驗(yàn)。

責(zé)任編輯:張燕妮 來(lái)源: 云加社區(qū)
相關(guān)推薦

2023-05-16 08:01:13

架構(gòu)網(wǎng)站演進(jìn)

2021-12-27 08:04:49

架構(gòu)網(wǎng)站高并發(fā)

2011-01-18 18:08:28

Thunderbird

2011-11-21 15:12:54

Java斷點(diǎn)Eclipse

2011-01-18 18:29:28

Thunderbird

2011-01-19 17:30:21

Postfix郵件投遞

2011-01-19 17:34:39

Postfix如何接收郵件

2012-07-23 14:39:27

移動(dòng)

2011-01-20 09:13:18

Postfix

2011-01-19 10:30:20

UbuntuThunderbird

2011-01-21 10:28:06

2022-07-18 14:33:05

PythonPDF報(bào)告

2011-08-03 15:21:23

ORM XCode 數(shù)據(jù)庫(kù)

2012-05-29 14:27:34

PHP

2012-07-27 10:27:19

OfficeWord

2009-07-15 14:49:16

2011-07-04 16:57:36

QT 布局 界面

2023-09-27 08:46:44

Java 技術(shù)編程語(yǔ)言

2011-07-20 12:49:49

XCode SnapShots SCM

2010-07-14 10:17:14

MyEclipse漢化
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)