色屁屁www影院免费观看入口,欧美性猛交ⅹxxx乱大交妖精,欧美激情第5页,欧美性猛交xxxx三人,欧美一a级做爰片大开眼界

達(dá)觀動態(tài)

達(dá)觀愿與業(yè)內(nèi)同行分享 助力各企業(yè)在大數(shù)據(jù)浪潮來臨之際一起破浪前行

達(dá)觀數(shù)據(jù):用好學(xué)習(xí)排序 (LTR) ,資訊信息流推薦效果翻倍
序言

 

達(dá)觀數(shù)據(jù)是一家基于文本語義理解為企業(yè)提供自動抽取、審核、糾錯、推薦、搜索、寫作等系統(tǒng)服務(wù)的人工智能企業(yè),其中在推薦場景上我們也服務(wù)了很多客戶企業(yè),客戶在要求推薦服務(wù)穩(wěn)定、需求響應(yīng)及時的基礎(chǔ)上,對系統(tǒng)的效果也提出了越來越高的期望,這對算法團(tuán)隊也是一個挑戰(zhàn)。本文將從資訊信息流這個場景入手,先簡單介紹達(dá)觀推薦引擎的架構(gòu)演化,同時盡可能詳細(xì)的介紹學(xué)習(xí)排序這個核心技術(shù)的實踐和落地經(jīng)驗。

?

達(dá)觀推薦引擎架構(gòu)

 

達(dá)觀推薦引擎采用在線-近線-離線三層系統(tǒng)架構(gòu),可以從性能和算法復(fù)雜度兩個維度來進(jìn)行區(qū)分。

?

在線:實時響應(yīng)客戶http api推薦請求,一般需要嚴(yán)格控制在100ms以內(nèi),最好在50ms。該模塊需要嚴(yán)格保證穩(wěn)定性,綜合考慮各個依賴模塊的異常兼容、流量的超時控制等。

?

近線:準(zhǔn)實時捕捉用戶實時行為并做出反饋,即近線模塊的輸出需要考慮用戶的實時行為反饋。該模塊一般處理延遲為秒級。

?

離線:基于分布式平臺離線挖掘,輸出包括item-base協(xié)同過濾結(jié)果、基于標(biāo)簽的召回結(jié)果、各維度熱門結(jié)果、用戶畫像等等。該模塊的處理延遲一般為小時級或者天級。

?

一個通用的資訊流推薦架構(gòu)如下:

a

圖1:online-nearline-offline三層架構(gòu)

 

hot rec模塊負(fù)責(zé)生成各個維度的熱門結(jié)果,如分類別熱門、分地域熱門;tagrec生成各個標(biāo)簽的召回結(jié)果,如 英超 -> (item1,item2,….);item rec生成每個資訊item的相關(guān)結(jié)果;user rec nearline根據(jù)用戶實時行為和離線畫像負(fù)責(zé)生成用戶的推薦結(jié)果;reconline響應(yīng)推薦請求;item cache返回資訊的信息;uhvreceiver負(fù)責(zé)接收用戶對item的行為反饋。關(guān)于架構(gòu)可參考更過之前達(dá)觀數(shù)據(jù)發(fā)布的推薦技術(shù)文章。

?

為什么需要學(xué)習(xí)排序

 

學(xué)習(xí)排序(LTR:learning to rank)是信息檢索領(lǐng)域的經(jīng)典問題,也是互聯(lián)網(wǎng)場景中ranking這個核心算法問題。推薦整個流程可以分為召回、排序、重排序這三個階段,通俗來說,召回就是找到用戶可能喜歡的幾百條資訊,排序就是對這幾百條資訊利用機(jī)器學(xué)習(xí)的方法預(yù)估用戶對每條資訊的偏好程度,一般以點擊率衡量,所以學(xué)習(xí)排序在很多情況下等同于點擊率預(yù)估,都是將用戶最可能點擊的資訊優(yōu)先推給用戶;重排序更多考慮業(yè)務(wù)邏輯,如在推薦結(jié)果的多樣性、時效性、新穎性等方面進(jìn)行控制。

 

在沒有學(xué)習(xí)排序之前,也可以單純使用協(xié)同過濾算法來進(jìn)行推薦。列如使用用戶最近點擊的資訊信息召回這些item的相關(guān)結(jié)果和偏好類別熱門結(jié)果組合后進(jìn)行返回。但是這對于資訊類推薦需要考慮一下問題:資訊類信息流屬于用戶消費型場景,item時效性要求高,item base cf容易召回較舊的內(nèi)容,而且容易導(dǎo)致推薦結(jié)果收斂。因此可以將item的相關(guān)結(jié)果保證時效性的基礎(chǔ)上,融合類別、標(biāo)簽熱門結(jié)果,對各個策略的召回結(jié)果按照線上總體反饋進(jìn)行排序,就可以作為用戶的推薦結(jié)果。但是這一融合過程比較復(fù)雜,一種簡單的方式就是看哪種召回策略總體收益越高就擴(kuò)大這個策略的曝光占比,對于個體而言卻顯得不是特別個性化,而且在規(guī)則調(diào)參上也比較困難。

 

LTR架構(gòu)

 

我們迅速在資訊信息流推薦場景上實踐ltr算法。Ltr一般分為point wise、pairwise、list wise,一般工程上使用pointwise較多,簡單,成本低,收益也可靠。簡單來說,Ltr即預(yù)測user對一個未消費item的預(yù)估點擊率,即:

?5

即這個預(yù)估的點擊率是和user、item、context相關(guān)的。我們使用邏輯回歸(logistic regression,lr)模型來搭建我們第一版的學(xué)習(xí)排序架構(gòu),lr模型簡單可解釋,缺點在于需要對業(yè)務(wù)特征有較深理解,特征工程比較費力,但從應(yīng)用角度出發(fā),無論是lr、ffm亦或是較新的wide& deep等模型,特征挖掘都是極其重要的一環(huán)。因此在首先基于lr模型的基礎(chǔ)上,核心工作就是基于業(yè)務(wù)理解并發(fā)掘特征。以下是排序模型的整體推薦架構(gòu)。

6

圖2:ltr整體架構(gòu)

 

1

日志過濾

推薦日志詳細(xì)打印了每次推薦請求的參數(shù)信息和返回信息,如屏數(shù)、請求個數(shù)、設(shè)備信息、位置信息、返回的推薦結(jié)果。推薦日志需要盡可能的考慮后期可能使用到的特征,并做好充分的記錄。將推薦日志與曝光日志進(jìn)行第一次join,過濾掉未曝光即用戶沒有看到的推薦item,這部分樣本沒有參考意義,可以省略;第一個join后的結(jié)果與點擊日志join,即可以得到每條樣本的label(0/1:未點擊/點擊)。兩次join需要根據(jù)請求時間、userid、itemid三者進(jìn)行inner join,確保數(shù)據(jù)準(zhǔn)確。日志過濾后生成的每條樣本信息如下:

?
[請求時間、曝光時間、點擊時間(如果有)、userid、最近的點擊item列表、最近曝光的item列表、itemid、召回策略、屏數(shù)、曝光順序位置、地理位置、設(shè)備信息] –> 點擊label。
2

特征工程

 

經(jīng)過1)的樣本缺少足夠的特征,我們需要補充user和item端的特征。該部分特征需要離線挖掘并提前入庫。總結(jié)后的可使用特征種類大致如下:

?

特征種類

?

User特征:手機(jī)型號、地域、圖文曝光/點擊總數(shù)、視頻曝光/點擊總數(shù)、圖文點擊率、視頻點擊率,最近1、2、3天圖文視頻點擊數(shù)、最近點擊時間、最近一次點擊是圖文還是視頻、一二級類別點擊率、標(biāo)簽偏好,類別偏好、最近16次點擊的素材分布、最近16次點擊item的平均標(biāo)題向量、曝光時間、點擊時間等;

?

item特征:itemid、類別、總體點擊率、最近一周點擊率、圖片個數(shù)、來源、類型(圖文還是視頻)、發(fā)布時間、標(biāo)題向量、召回策略、點擊反饋ctr等;

?

context特征:屏數(shù)、曝光順序位置、請求時間段等;

?

交叉特征:用戶對item類別的一二級類別點擊率、用戶對item標(biāo)簽的偏好、用戶對item素材類型的曝光、點擊次數(shù)和點擊率、最近16個點擊item與預(yù)測item標(biāo)題向量的余弦相似度、相似度最大值等。

?

交叉特征對于ranking特別重要,核心在于邏輯回歸函數(shù)中,如果與預(yù)測item無關(guān)的特征不會對item的排序產(chǎn)生影響,只有item特征或者與item交叉的特征才會對排序有實質(zhì)影響,因為其他特征對任何待預(yù)測item的打分貢獻(xiàn)是一樣的。7

我們沒有使用bagof word模型來表示標(biāo)題,因為這非常稀疏,而是采用標(biāo)題中關(guān)鍵詞的word2vec向量組合生成標(biāo)題表示,使用詞向量來表示標(biāo)題極大減少了特征規(guī)模,實現(xiàn)上比較方便。標(biāo)題向量同時需要歸一化成單位向量,單位向量的余弦相似度即兩個向量的內(nèi)積,這個優(yōu)化顯著提高了ltr在線模塊的性能。

 

我們將所有特征按類型劃分為離散型、連續(xù)型、向量型三種類型。如item類別就是一個離散型特征、item ctr就是一個連續(xù)性特征、標(biāo)題向量就是一個向量型特征。對于每種特征,其處理方式都會不太一樣,對于離散型一般直接根據(jù)離散值做feature name,對于連續(xù)值我們部分參考youtube wide & deep論文中的等頻歸一化方法,簡單來說加入ctr特征需要等屏成10個特征,即將ctr值按照分布取其10等分點,這10等分點就定義了10個區(qū)間,每個區(qū)間的樣本數(shù)都占10%。需要注意的是,ltr在線部分需要hardcode寫死這10個區(qū)間來提高特征離散化的效率。

?

由于離線和在線都會需要User和item端特征,我們在hive數(shù)倉和ssdb集群總中都存儲一份,離線負(fù)責(zé)join hive表,在線負(fù)責(zé)讀取ssdb。

?

3

模型訓(xùn)練與評估

 

經(jīng)過特征工程后,訓(xùn)練數(shù)據(jù)按照libsvm格式進(jìn)行打印。使用一天的訓(xùn)練數(shù)據(jù)的情況下,整個特征空間規(guī)模約為30萬維左右。模型訓(xùn)練采用sklearn的logistic regression模型進(jìn)行訓(xùn)練,方便dump和load模型,我們采用了lbfgs算法來進(jìn)行訓(xùn)練,lbfgs是一種擬牛頓法,不同于隨機(jī)梯度下降,lbfgs總是朝著最優(yōu)化梯度方向進(jìn)行迭代。

?

簡單起見,我們使用N-2天前的日志做訓(xùn)練,N-1天前的日志做評估,需保證兩部分日志的用戶群體是一致的,我們再做ab測試的過程中,不能訓(xùn)練數(shù)據(jù)用的是1號桶,評估數(shù)據(jù)用的是2號桶。

?

實際過程中,我們采用1500萬條樣本做訓(xùn)練,300萬條樣本做評估,訓(xùn)練完成后離線auc為0.79-0.8區(qū)間內(nèi),在線auc為0.75-0.76區(qū)間內(nèi),存在一定差距。關(guān)于auc可以自行參考技術(shù)文章,簡單來說auc就是衡量模型將正樣本排在負(fù)樣本前面的概率,即排序能力。

4

在線服務(wù)于評估

 

我們的最終目的是要在線上流程產(chǎn)生收益,我們采用rpc搭建了一個ltr在線服務(wù),負(fù)責(zé)接收online的ltr請求。推薦online在召回各個策略的結(jié)果后,會將userid、預(yù)測的itemid列表、context等信息傳給ltr online,ltr online打分后返回。我們對ltr online做了充足的優(yōu)化,包括標(biāo)題向量的單位化、ssdb性能優(yōu)化、特征離散化的優(yōu)化,顯著提高了性能,對200-300個item打分的平均響應(yīng)時間控制在100ms以內(nèi)。

模型不僅需要離線評估,還需要在線評估,在線評估即評估在線樣本的auc,recommend log中記錄了ltr score,因此可以方便的計算在線auc。計算在線auc的目的是為了驗證離線效果提升和在線效果提升的同步性。

5

業(yè)務(wù)效果的提升

 

我們在測試組上線ltr邏輯后,在點擊率指標(biāo)上相比原算法取得了明顯的提升。如下圖所示:

8

可以明顯看出上線后,基于點擊率目標(biāo)的ltr對于天級點擊率的提升是非常明顯的。

問題探討

 

1

單機(jī)訓(xùn)練大規(guī)模樣本

 

由于選取的樣本數(shù)較大,1000-2000萬的規(guī)模,簡單增大樣本數(shù)可以顯著提高auc,在我們的場景上在往上增加auc就似乎增加不明顯了。這么大的訓(xùn)練樣本單機(jī)訓(xùn)練的話顯然只能用稀疏矩陣的方式來存儲樣本。Scipy的cs_matrix就是非常好的選擇,由于sklearn的轉(zhuǎn)載cs_matrix時數(shù)組下表采用int,故最大空間只能到20億,顯然2000萬樣本* 每個樣本的平均特征數(shù)遠(yuǎn)遠(yuǎn)大于20億,因此我們探討了cs_matrix如何加載大規(guī)模數(shù)據(jù)的方法,最終我們參考liblinner工具包中加載libsvm格式數(shù)據(jù)的代碼,當(dāng)然libliner加載方式也存在問題,經(jīng)過修改調(diào)試后,成功的完成了訓(xùn)練數(shù)據(jù)的加載,具體問題和解決方式可以參考https://blog.csdn.net/wh_springer/article/details/85007921這篇文章。

2

樣本和特征的時間正交

 

樣本和特征數(shù)據(jù)的時間正交即兩者在時間上不應(yīng)該有交叉。舉個例子,前期我們在join用戶端特征時,用的是1號的訓(xùn)練樣本數(shù)據(jù),用戶離線特征用的也是1號的數(shù)據(jù),這樣兩者就會存在交叉,即user點擊了一篇英超新聞,同時user 畫像中也偏好英超標(biāo)簽(由1號的點擊生成),這樣就會導(dǎo)致auc偏高,當(dāng)然這種偏高就是虛假偏高,模型的泛化能力是很差的。在實際過程中,遇到過幾次auc突然偏高的情況,發(fā)現(xiàn)大部分都是由于沒有保證數(shù)據(jù)正交性導(dǎo)致的。

?

在整個流程中,數(shù)據(jù)的時間正交總是被不斷強調(diào)。無論是user、item特征還是樣本數(shù)據(jù),比如訓(xùn)練樣本中一個特定user的樣本按照時間排序是(s1,s2,s3,s4,s5,s6,s7,s8,s9,s10),使用s1-s8訓(xùn)練,s9,s10評估是合理的,而使用s3-s10訓(xùn)練,s1,s2則顯然是不合理的。

?

3

預(yù)估點擊率和實際點擊率的一致性

點擊率預(yù)估基本要求就是預(yù)估的點擊率要精準(zhǔn),如果只考慮位置的ranking,可以不用過分關(guān)心預(yù)估的絕對值,但實際情況下還是需要盡量保證預(yù)估分?jǐn)?shù)的合理性,往往預(yù)估精準(zhǔn)的ctr具有很大的參考價值。

?

前期我們預(yù)估的點擊率一直偏高,平均打分甚至達(dá)到了0.5,經(jīng)過排查在于訓(xùn)練模型的參數(shù)設(shè)置不合理,錯誤的將LogisticRegression的class_weight參數(shù)設(shè)置成balanced,導(dǎo)致?lián)p失函數(shù)中正樣本預(yù)測錯誤的代價增大,導(dǎo)致模型偏向正樣本,從而導(dǎo)致預(yù)估的點擊率極度偏高,修復(fù)成默認(rèn)值預(yù)估點擊率下降明顯,接近實際值。具體參考:https://scikitlearn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html。

同時為了保證訓(xùn)練數(shù)據(jù)和在線服務(wù)完全一致性,我們調(diào)整了推薦的整體架構(gòu),更多的直接在推薦online模塊負(fù)責(zé)召回和排序,這樣又可以進(jìn)一步保證預(yù)估點擊率和實際點擊率的一致。

?

4

重要特征和 case排查

 

lr模型可以方便debug每個樣本的各個特征和權(quán)重,權(quán)重高的特征顯然更加重要。如果你覺得重要的特征權(quán)重過低了或者不重要的特征權(quán)重過高了,也許就要思考為什么了。以下是一個樣本的debug信息。

9

例如我們發(fā)現(xiàn)ctr特征權(quán)重特別高,假設(shè)一個新item曝光了一次點擊了一次,點擊率是1.0,乘上ctr的權(quán)重上這個item極易被排到最前面,因此我們考慮ctr的置信度,考慮對ctr類特征做了平滑。

10

11值根據(jù)實際情況設(shè)定。

總結(jié)

本文詳細(xì)介紹了達(dá)觀數(shù)據(jù)的推薦引擎架構(gòu)和在資訊信息流推薦場景中利用ltr排序顯著提高業(yè)務(wù)指標(biāo)的實踐和經(jīng)驗。由于篇幅有限,關(guān)于非線性的ffm、wide & deep沒有做詳細(xì)介紹,而這也是算法團(tuán)隊一直繼續(xù)投入研究的重點。

A

BOUT

關(guān)于作者

文輝:達(dá)觀數(shù)據(jù)聯(lián)合創(chuàng)始人,主要負(fù)責(zé)達(dá)觀數(shù)據(jù)推薦系統(tǒng)、爬蟲系統(tǒng)等主要系統(tǒng)的研究和開發(fā)。同濟(jì)大學(xué)計算機(jī)應(yīng)用技術(shù)專業(yè)碩士,曾就職于盛大文學(xué)數(shù)據(jù)中心部門,負(fù)責(zé)爬蟲系統(tǒng)、推薦系統(tǒng)、數(shù)據(jù)挖掘和分析等大數(shù)據(jù)系統(tǒng)的研發(fā)工作,在爬蟲系統(tǒng)、Hadoop/Hive、數(shù)據(jù)挖掘等方面具備充足的研發(fā)和實踐經(jīng)驗。