乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      搜狗深度學(xué)習(xí)技術(shù)在廣告推薦領(lǐng)域的應(yīng)用

       新用戶(hù)73848091 2020-05-04

      內(nèi)容來(lái)源:2017年4月17日,搜狗移動(dòng)搜索廣告策略研究組負(fù)責(zé)人舒鵬在七牛云和QCon聯(lián)合主辦的深度學(xué)習(xí)論壇“深度學(xué)習(xí)最新進(jìn)展與實(shí)踐”上進(jìn)行《搜狗深度學(xué)習(xí)技術(shù)在廣告推薦領(lǐng)域的應(yīng)用》演講分享。

      編者按

      近來(lái),深度學(xué)習(xí)成為一個(gè)流行詞。深度學(xué)習(xí)可以更好地通過(guò)增加數(shù)據(jù)集的規(guī)模來(lái)改善學(xué)習(xí)結(jié)果,與傳統(tǒng)的機(jī)器學(xué)習(xí)工具相比,深度學(xué)習(xí)挖掘了神經(jīng)網(wǎng)絡(luò)的潛力?;趶?qiáng)大的特征提取,它比其他工具更適合模式識(shí)別(圖像、文本、音頻)。深度學(xué)習(xí)應(yīng)用的范疇也越來(lái)越廣。這次搜狗移動(dòng)搜索廣告策略研究組負(fù)責(zé)人舒鵬用自身的經(jīng)驗(yàn)分享搜狗深度學(xué)習(xí)技術(shù)在廣告推薦領(lǐng)域的應(yīng)用,以下為此次演講內(nèi)容的整理。

      嘉賓演講視頻地址:http:///4G8CYm

      搜索廣告背景知識(shí)

      圖1

      大家對(duì)廣告多多少少都有一些了解,現(xiàn)在大家都用搜索引擎,從總體的覆蓋率看,大家應(yīng)該都會(huì)碰到廣告。大家對(duì)廣告多少會(huì)有些討厭,但中國(guó)互聯(lián)網(wǎng)領(lǐng)域的很多行業(yè),都靠廣告變現(xiàn)來(lái)生存,大家手機(jī)上有很多免費(fèi)APP,但天下沒(méi)有免費(fèi)的午餐,很多APP都靠廣告來(lái)盈利,廣告是互聯(lián)網(wǎng)商業(yè)的基石?,F(xiàn)在也有一些新的流量變現(xiàn)方式,如 O2O、電商,還有直播等。在這些商業(yè)模式出現(xiàn)之前,廣告為互聯(lián)網(wǎng)行業(yè)提供了商業(yè)基礎(chǔ)。

      如圖 1 是搜索廣告的流程圖,對(duì)于搜索廣告來(lái)說(shuō)一般有幾個(gè)處理步驟:首先是查詢(xún)理解,用戶(hù)當(dāng)前的查詢(xún)到底想干什么、他有什么目的?我們進(jìn)行分詞,以及查詢(xún)傾向的分析;然后做廣告召回,有很多的客戶(hù)會(huì)在搜索廣告中買(mǎi)一些他們感興趣的詞,這些詞代表了他們對(duì)不同流量的感興趣程度,系統(tǒng)要對(duì)這些詞進(jìn)行競(jìng)價(jià)排序,所以需要先做一個(gè)廣告召回,判定在當(dāng)前語(yǔ)境下面哪些客戶(hù)提供的廣告比較合適。這個(gè)量比較大,搜狗的廣告庫(kù)在幾十億的量級(jí),所以會(huì)做一定篩選,剩下幾千幾百個(gè)廣告,然后進(jìn)行詳細(xì)評(píng)估;同時(shí)我們還會(huì)做點(diǎn)擊率預(yù)估,即假定這個(gè)廣告能夠在用戶(hù)面前展示,實(shí)際的點(diǎn)擊比例會(huì)怎么樣,點(diǎn)擊率能夠反映出很多因素,包括廣告的質(zhì)量,以及廣告的價(jià)值等。此外,有的時(shí)候我們也需要花錢(qián)購(gòu)買(mǎi)流量,如何更有效的利用這些流量,通常都要靠這些來(lái)保證;而后會(huì)有排序計(jì)價(jià),挑選排名靠前的廣告來(lái)進(jìn)行結(jié)果展示;然后會(huì)有后續(xù)的日志收集功能,接下來(lái)會(huì)拿這個(gè)日志做各種各樣的處理,包括 CTR預(yù)估模型的線(xiàn)下實(shí)驗(yàn)以及各種各樣的事情,如此就完成了整個(gè)閉環(huán),這是廣告系統(tǒng)的介紹。

      深度學(xué)習(xí)在搜狗搜索廣告的一些應(yīng)用

      圖2

      下邊介紹一下搜狗深度學(xué)習(xí)在搜索廣告領(lǐng)域里面有哪些應(yīng)用。

      第一塊是文本相關(guān)性計(jì)算,簡(jiǎn)單來(lái)講就是一個(gè)廣告的標(biāo)題、描述等整個(gè)信息跟當(dāng)前的查詢(xún)?cè)~是否相關(guān),健康性有沒(méi)有問(wèn)題,是否會(huì)影響用戶(hù)體驗(yàn)?有時(shí)候一些客戶(hù)買(mǎi)詞不規(guī)矩,可能會(huì)買(mǎi)一些當(dāng)下流行的熱點(diǎn)詞,但最后填寫(xiě)的標(biāo)題、描述等創(chuàng)意信息跟這個(gè)熱點(diǎn)詞并沒(méi)有關(guān)系,如果展示出來(lái)就會(huì)引起大家的反感,因此我們需要圍繞相關(guān)性做一些工作,來(lái)避免這種情況。

      如圖2是去年做的一項(xiàng)工作,后來(lái)也是投了一篇論文發(fā)表在CIKM2016上面去,這個(gè)論文是關(guān)于 Question Answering的,解決如何選出和 Question 最合適答案的問(wèn)題,采用了典型的深度學(xué)習(xí)網(wǎng)絡(luò)結(jié)構(gòu)。這篇論文的主要?jiǎng)?chuàng)新點(diǎn)在于無(wú)需分詞,做一些傳統(tǒng)的文本相關(guān)性計(jì)算時(shí),一般會(huì)先做分詞,比如你會(huì)把論文進(jìn)行分詞,把廣告標(biāo)題進(jìn)行分詞等,分詞之后再做處理。這個(gè)分詞算法設(shè)計(jì)也有很多講究,你需要不斷的更新語(yǔ)料庫(kù),以及其它相關(guān)性工作,當(dāng)時(shí)就想能不能不做分詞,把這個(gè)繞開(kāi)直接搞定。就做了個(gè)實(shí)驗(yàn),簡(jiǎn)單來(lái)講就是把英文的 26 個(gè)小寫(xiě)字母,以及 26 個(gè)大寫(xiě)字母,還有 0-9這些數(shù)字,以及標(biāo)點(diǎn)符號(hào)等,每個(gè)字符都看成是一個(gè)標(biāo)記,每個(gè)標(biāo)記對(duì)應(yīng)一個(gè)向量,這個(gè)向量可以通過(guò)向量表查詢(xún)得到,并在訓(xùn)練中逐步更新,這樣每個(gè)句子就可以轉(zhuǎn)化為一個(gè)矩陣,矩陣得到之后可通過(guò)卷積和pooling等方法最終轉(zhuǎn)化成向量,這個(gè)向量通過(guò)全連接層形成一個(gè)輸出值,而后和樣本標(biāo)注結(jié)果( 1 還是 0)進(jìn)行比對(duì)和誤差回傳,從而形成一個(gè)網(wǎng)絡(luò)。有了這個(gè)網(wǎng)絡(luò)之后,就可以拿一些語(yǔ)料進(jìn)行訓(xùn)練,結(jié)束之后就會(huì)得到最終每個(gè)字符的vector,用以后續(xù)的處理。這樣做不需要分詞,可避免外部系統(tǒng)的干擾。最近我們依賴(lài)的一個(gè)分詞庫(kù)需要進(jìn)行升級(jí),很多事情都要重新做一遍,特別麻煩。如果這個(gè)架構(gòu)全面應(yīng)用的話(huà),將會(huì)避免這些問(wèn)題。

      圖3

      如圖 3 是廣告物料推薦,假設(shè)有一張圖片想知道含義,想知道跟這個(gè)圖片相關(guān)的文本有哪些。圖片采用 CNN 來(lái)處理,文本采用 LSTM 進(jìn)行處理,最后把兩者通過(guò)cosine的方式結(jié)合在一起訓(xùn)練以達(dá)到最終目的。

      圖4

      深度學(xué)習(xí)的應(yīng)用很廣泛,具體到廣告領(lǐng)域:如圖像理解,像剛才介紹的圖像物料推薦,這個(gè)是用 CNN 技術(shù)來(lái)做;還有文本相關(guān)性,通??梢詠?lái)做廣告召回,以及創(chuàng)意生成等事情,相關(guān)技術(shù)比如 LSTM,以及剛才提到的 CSR;還有CTR預(yù)估,深度學(xué)習(xí)可用來(lái)做廣告排序和相關(guān)的特征挖掘,相關(guān)技術(shù)如CNN、MxNet和TensorFlow等。圖 4 舉的例子是一個(gè)典型應(yīng)用,具體到這個(gè)廣告而言,蛋糕的小圖片是通過(guò)剛才的技術(shù)做上去的,有很多客戶(hù)是屬于中小客戶(hù),自己不具備強(qiáng)大的運(yùn)營(yíng)能力,他可能想為廣告配一些圖,但沒(méi)有精力做這件事情,我們就會(huì)幫他自動(dòng)匹配一些圖片,這會(huì)影響后續(xù)的很多東西,包括訂單轉(zhuǎn)化等事情。廣告下方的三行子標(biāo)題也是自動(dòng)生成,系統(tǒng)會(huì)判斷一下當(dāng)前有哪些東西用戶(hù)比較感興趣,而且和客戶(hù)有關(guān),就會(huì)放在這里,這部分涉及到文本相關(guān)性計(jì)算。這是主要介紹的三點(diǎn)深度學(xué)習(xí)在廣告中的應(yīng)用。

      基于多模型融合的CTR預(yù)估

      CTR預(yù)估流程

      圖5

      下邊我們重點(diǎn)介紹一下 CTR 預(yù)估模塊。通常單個(gè)模型的能力有限,每個(gè)模型都有自己的特點(diǎn),比如 LR 模型比較穩(wěn)定,DNN 模型擅長(zhǎng)做特征交叉。每個(gè)模型都有自己的特點(diǎn),需要根據(jù)模型的特點(diǎn)去最大化利用它。我就這個(gè)領(lǐng)域詳細(xì)介紹一下。

      首先介紹一下CTR預(yù)估的流程:首先搜集原始數(shù)據(jù),包括查詢(xún)請(qǐng)求和點(diǎn)擊信息,這兩項(xiàng)每天都會(huì)實(shí)時(shí)產(chǎn)生并且量級(jí)很大;有這些之后就可以做特征的抽取,比如查詢(xún)相關(guān)特征,用戶(hù)查詢(xún)?cè)~是什么?他所處哪個(gè)地域?今天是星期幾?還有廣告特征,廣告本身的標(biāo)題是什么?描述是什么?客戶(hù)購(gòu)買(mǎi)的關(guān)鍵詞是什么,以及這個(gè)廣告和查詢(xún)?cè)~之間的匹配相關(guān)性。有了特征之后會(huì)進(jìn)行線(xiàn)下模型訓(xùn)練。圖 5 中有兩類(lèi)模型,一個(gè)是線(xiàn)性模型,一個(gè)是非線(xiàn)性模型,線(xiàn)性模型主要指LR ,非線(xiàn)性模型主要是指 GBDT、DNN等。模型訓(xùn)練完畢之后會(huì)加載到線(xiàn)上,同時(shí)線(xiàn)上 Server 會(huì)把整個(gè)特征抽取流程在線(xiàn)完成,而后會(huì)進(jìn)行模型計(jì)算,然后形成 CTR 預(yù)估的完整結(jié)果。最后 Online 本身會(huì)產(chǎn)生實(shí)時(shí)日志,形成完整的流程。

      CTR預(yù)估涉及技術(shù)

      圖6

      大家知道,跟CTR預(yù)估有關(guān)的主要有三個(gè)因素,一個(gè)是數(shù)據(jù)、一個(gè)是特征、一個(gè)是模型。平臺(tái)是承載這三點(diǎn)的基礎(chǔ)。具體到平臺(tái)而言,我們通常會(huì)用多天的數(shù)據(jù)進(jìn)行訓(xùn)練,這種情況下單機(jī)是跑不完的,因此需要一個(gè)并行計(jì)算平臺(tái)來(lái)同時(shí)處理大數(shù)據(jù)量。如圖 6 左邊列出來(lái)的幾個(gè)平臺(tái)都是較為常用的平臺(tái):第一個(gè)是 MPI,如果做科學(xué)計(jì)算的話(huà)就會(huì)比較熟悉,這是比較早期的,這個(gè)平臺(tái)會(huì)偏底層一些,需要修改不少代碼才能實(shí)現(xiàn)工作,現(xiàn)在大家不大會(huì)用,因?yàn)樽銎饋?lái)比較繁瑣;第二種是XgBoost,主要是做 GBDT 相關(guān)的東西;然后是 MxNet,在深度學(xué)習(xí)中的應(yīng)用比較多,像亞馬遜就在利用這個(gè)平臺(tái)做些事情;最后是 TensorFlow,谷歌最近一兩年做出來(lái)的,主要是提供跨平臺(tái)的深度學(xué)習(xí)計(jì)算工具。

      在模型方面:首先有線(xiàn)性模型,LR 模型又有一些細(xì)分算法,實(shí)時(shí)(FTRL)和特征自動(dòng)組合(FM);非線(xiàn)性的模型是有GBDT,是決策樹(shù)的變體,可以看作多個(gè)決策樹(shù)的組合;然后是深度學(xué)習(xí)模型, 如DNN;

      以及模型融合,剛才講到怎么樣能把不同模型的優(yōu)點(diǎn)都集中在一起,具體的做法有多種:第一種是 Bagging,比較實(shí)用簡(jiǎn)單,就是有多個(gè)模型,每個(gè)模型都有個(gè)結(jié)果,怎么樣把多個(gè)結(jié)果放在一起呢?直接加權(quán)平均一下就可以了,這個(gè)方法很簡(jiǎn)單;其次是級(jí)聯(lián)模型,級(jí)聯(lián)模型相對(duì)復(fù)雜一些,這個(gè)做法不是把最終的評(píng)估結(jié)果放在一起,而是說(shuō)每一個(gè)模型中間產(chǎn)生的數(shù)據(jù)也可以送到另外一個(gè)模型中去,這樣做起來(lái)就比較麻煩,但操作空間比較大,而且可以有多種組合方法;最后一個(gè)是 Wide&Deep,這是谷歌去年提出的思路,它跟前面兩種都不一樣,前面兩種每個(gè)模型訓(xùn)練都是獨(dú)立的,即使有先后順序,但是 Wide&Deep 是針對(duì)兩個(gè)模型同時(shí)交互訓(xùn)練,我們認(rèn)為它相比其他兩個(gè)效果會(huì)更好一些。

      數(shù)據(jù)模塊:首先要有一個(gè)日志收集模塊,會(huì)收集到最原始的數(shù)據(jù),需要進(jìn)行去噪,是因?yàn)樵紨?shù)據(jù)也會(huì)有一些噪聲點(diǎn),比如同一個(gè)用戶(hù)同一個(gè)查詢(xún)?cè)~連續(xù)搜索兩次,第一次沒(méi)點(diǎn)廣告,但第二次點(diǎn)了,第一次沒(méi)點(diǎn)到底是因?yàn)閺V告出的不好,還是因?yàn)橛脩?hù)當(dāng)時(shí)不在狀態(tài),根本沒(méi)有看到廣告呢。

      其次是特征,在搜索廣告領(lǐng)域里面特征是非常重要的。有一個(gè)專(zhuān)有名詞叫特征工程,主要包括特征的設(shè)計(jì)、選擇、組合:所謂設(shè)計(jì),就是概率論,你認(rèn)為哪些因素對(duì)用戶(hù)選擇廣告有影響,這時(shí)你就要把它找到并設(shè)計(jì)一些新特征出來(lái);單單有這個(gè)還不夠,我們需要判斷這種新特征是否有效,這就涉及到特征選擇,特征選擇需要進(jìn)行仔細(xì)的分析,看看能不能用;最后是特征組合,也就是交叉特征,有的時(shí)候單個(gè)因素出現(xiàn)并不能說(shuō)明問(wèn)題,而兩個(gè)因素一塊出現(xiàn)時(shí),可能就代表了特殊的含義。

      特征設(shè)計(jì)

      圖7

      關(guān)于特征設(shè)計(jì)大體上可以分為兩類(lèi):一類(lèi)是離散特征,所謂離散特征是指,比如一天 24 個(gè)小時(shí),下午16 點(diǎn)整,我認(rèn)為 16 點(diǎn)整在一天 24 小時(shí)當(dāng)中會(huì)占據(jù)一個(gè)位置,把時(shí)間刻畫(huà)為長(zhǎng)度為24的向量,其中 16 點(diǎn)就會(huì)占據(jù)這個(gè)向量中的一個(gè)位置。這種設(shè)計(jì)方法有幾個(gè)特點(diǎn):首先比較容易設(shè)計(jì),不管什么樣的特征,只要它有一個(gè)取值就可以映射到系統(tǒng)里,實(shí)現(xiàn)特征的產(chǎn)生;還有一個(gè)特點(diǎn),就是特征空間非常大,百億或者上千億的量級(jí),但對(duì)于任何一個(gè)樣本最后只有幾百個(gè)特征是有效的,其他的特征都沒(méi)有取值,它的稀疏性非常明顯,特征空間非常大,這樣會(huì)導(dǎo)致模型復(fù)雜度比較受限制。如果模型過(guò)于復(fù)雜,比如你把每一個(gè)離散特征都連接到DNN輸入層的話(huà),參數(shù)就會(huì)非常多,訓(xùn)練時(shí)間會(huì)非常長(zhǎng),結(jié)果也不一定好。這是離散特征。

      其次是連續(xù)特征,跟離散特征反著過(guò)來(lái)的。像上邊那個(gè)時(shí)間的例子,如果說(shuō) 24 個(gè)小時(shí)刻畫(huà)成離散特征是 24 個(gè)點(diǎn)的話(huà),連續(xù)特征就是一個(gè)值,16 點(diǎn)就是 16,13 點(diǎn)就是 13,它只會(huì)占據(jù)一個(gè)位置,但是那個(gè)位置的取值范圍可以有 24 種,而不僅僅是0和1,跟離散特征正好反過(guò)來(lái)。像這種特征一般來(lái)說(shuō)需要做一個(gè)比較仔細(xì)的設(shè)計(jì)才行,大家都知道連續(xù)特征每一個(gè)特征只會(huì)占一個(gè)位置,不像離散特征那樣隨意占據(jù)大量的空間。它的特點(diǎn)是定長(zhǎng),每個(gè)特征取值只能有一個(gè),像離散特征中有個(gè)特征叫當(dāng)前查詢(xún)?cè)~分詞之后的term分布,如果這個(gè)查詢(xún)?cè)~比較長(zhǎng),它的term分布就長(zhǎng)一些,占據(jù)的位置就多一些;如果只是一個(gè)短的查詢(xún),占據(jù)的位置就比較少,是變長(zhǎng)的,這點(diǎn)和連續(xù)特征區(qū)別很大。此外,基本上每個(gè)連續(xù)特征都有值。有上面這幾個(gè)特點(diǎn),就會(huì)導(dǎo)致連續(xù)特征量相對(duì)小一些,差不多幾百維的向量就搞定了,它可以用比較復(fù)雜的模型進(jìn)行訓(xùn)練,像DNN 這種大概只有幾百個(gè)輸入節(jié)點(diǎn),相比圖像處理還是比較小兒科的。

      模型類(lèi)別

      圖8

      關(guān)于模型,剛才提到分為線(xiàn)性和非線(xiàn)性,線(xiàn)性模型中最典型的就是 LR,邏輯斯特回歸,這個(gè)模型比較簡(jiǎn)單,它的公式大概是一個(gè)權(quán)重分量×特征分量+偏置,而后再做一個(gè)變換得到最終結(jié)果,它比較簡(jiǎn)單,比較適合處理離散特征,而且穩(wěn)定性比較好。但它有一個(gè)缺點(diǎn),LR 本身沒(méi)法做特征交叉,只能通過(guò)線(xiàn)下分析,嘗試兩種特征的交叉是否可以改善線(xiàn)下指標(biāo),這樣才能得到比較好的結(jié)果。這件事情很多公司都有自動(dòng)化的學(xué)習(xí)平臺(tái),會(huì)自動(dòng)進(jìn)行特征的交叉并評(píng)估哪個(gè)特征比較好,盡管如此,這些工作還是比較耗時(shí)間的。

      非線(xiàn)性模型有特別明顯的優(yōu)點(diǎn),能夠自動(dòng)學(xué)習(xí)特征之間的交叉關(guān)系,如哪兩個(gè)特征交叉在一起比較好,模型會(huì)幫你實(shí)現(xiàn)。比如說(shuō) DNN 輸入 100 維特征,隱藏層中每層都有交叉關(guān)聯(lián)。如果兩個(gè)特征之間有很強(qiáng)的依賴(lài)關(guān)系,且對(duì)結(jié)果有影響的話(huà),在權(quán)重分量上會(huì)有相應(yīng)的側(cè)重,最后會(huì)達(dá)到特征自動(dòng)交叉的目的,這就是為什么 DNN 出來(lái)之后用戶(hù)非常廣泛的原因。像剛才 LR 這種特征組合,非常耗費(fèi)人力和精力,可能一個(gè)公司一個(gè)特征組有幾個(gè)人或十幾個(gè)人,都在做這件事情,大家都在研究哪些特征會(huì)好,或者交叉在一起會(huì)好。但如果用非線(xiàn)性模型的話(huà)就會(huì)相對(duì)規(guī)避這一點(diǎn),從這一點(diǎn)來(lái)看它比較適合做新領(lǐng)域的探索,可能效果會(huì)好一些。

      但因?yàn)橛猩厦鎯?yōu)點(diǎn)的存在,它就會(huì)有一些缺點(diǎn),模型比較復(fù)雜,計(jì)算比較耗時(shí)。這點(diǎn)對(duì)于在線(xiàn)計(jì)算任務(wù)就比較關(guān)鍵一些,像做廣告CTR預(yù)估,每天有幾億次查詢(xún),每次查詢(xún)有成百上千條廣告需要處理,查詢(xún)配對(duì)在千億量級(jí),對(duì)計(jì)算資源的要求非常高。如果模型太復(fù)雜的話(huà),就需要把計(jì)算資源擴(kuò)充一些,買(mǎi)機(jī)器這些都要考慮,最后收益怎么樣,到底值不值得,這是比較有風(fēng)險(xiǎn)的一點(diǎn)。

      模型融合

      圖9

      上邊提到,因?yàn)槊總€(gè)模型都有優(yōu)點(diǎn),比如說(shuō) LR 模型最突出的優(yōu)點(diǎn)是簡(jiǎn)單、可靠、文本類(lèi)特征處理比較好,但又不具備交叉能力;而DNN有這種能力,但沒(méi)有前邊說(shuō)的優(yōu)點(diǎn),怎么把它們?nèi)诤显谝黄鹉??因此?huì)用到模型融合:

      CTR bagging 將多個(gè)模型的輸出 CTR 加權(quán)平均,實(shí)現(xiàn)方法簡(jiǎn)單,模型之間不會(huì)產(chǎn)生耦合,但是可調(diào)參數(shù)有限,改進(jìn)空間相對(duì)較小。

      再有模型融合,每個(gè)模型中間的結(jié)果或者是輸出結(jié)果可以作為另外一個(gè)模型的輸入,這個(gè)模型會(huì)學(xué)習(xí)上一個(gè)模型哪個(gè)地方處理的好或者不好,自動(dòng)做出調(diào)整。實(shí)現(xiàn)的方法比較復(fù)雜,因?yàn)槟P椭g有依賴(lài)關(guān)系。但優(yōu)點(diǎn)是實(shí)現(xiàn)方案較多,改進(jìn)空間大一些。

      圖10

      由于第一種方式 (CTR bagging) 的空間有限,我們就選擇第二種。并針對(duì)性的做了一些設(shè)計(jì),這些跟工程設(shè)計(jì)的關(guān)系大一些。如何做這件事情?要定一個(gè)目標(biāo),要做成什么樣子來(lái)達(dá)成這個(gè)目的?首先希望這個(gè)東西能支持多個(gè)模型的加載的和計(jì)算;第二點(diǎn),可支持模型之間的交叉和 CTR 的 Bagging;第三點(diǎn),可通過(guò)配置項(xiàng)隨時(shí)調(diào)整模型融合方案;第四點(diǎn),避免不必要的重復(fù)操作,以降低時(shí)間復(fù)雜度。根據(jù)這 4 個(gè)要求我們做了個(gè)解決方案,核心理念是引入了ModelFeature 的概念,即把模型本身看做一個(gè)特征,模型通過(guò)計(jì)算得到新的特征,對(duì)于模型輸出可作為 CTR,也可以作為特征為其它模型使用。限定 ModelFeature 的計(jì)算順序,即可實(shí)現(xiàn) Bagging 和模型交叉等功能。

      但是必須要注意數(shù)據(jù)一致性,線(xiàn)上依賴(lài)的數(shù)據(jù)源是否跟線(xiàn)下完全一致,如果數(shù)據(jù)不一致,所有的結(jié)論和實(shí)驗(yàn)都是空中樓閣沒(méi)有根基。我們之前碰到過(guò)一個(gè)問(wèn)題,做了一個(gè)特征線(xiàn)下效果很好,但線(xiàn)上效果不怎么樣,可能就會(huì)有數(shù)據(jù)不一致的問(wèn)題。拿剛才時(shí)間的例子,如果線(xiàn)下計(jì)算離散值時(shí),比如說(shuō)是 0 點(diǎn)占到第一個(gè)位置,1 點(diǎn)占到第二個(gè)位置,24 點(diǎn)占到第 24 個(gè)位置,但是線(xiàn)上有一個(gè)錯(cuò)誤,0 點(diǎn)占到第 24 個(gè)位置,24 點(diǎn)占到第一個(gè)位置,就給它反過(guò)來(lái),雖然線(xiàn)下做的很好,但是線(xiàn)上的使用效果會(huì)很差。

      第二點(diǎn),流程的穩(wěn)定性,如果設(shè)計(jì)一個(gè)很復(fù)雜的流程,包括融合模型操作的話(huà),流程之間就會(huì)有很強(qiáng)的依賴(lài)性,任何一個(gè)前面的流程失敗,后面的流程就跑不下去,所以你的流程必須要穩(wěn)定,要有機(jī)制保證。

      圖11

      如圖 11 是一個(gè)流程圖,線(xiàn)下流程會(huì)把這些數(shù)據(jù)重組抽取特征進(jìn)行訓(xùn)練。在線(xiàn)下會(huì)訓(xùn)練一個(gè) LR 模型,這個(gè)結(jié)果反饋到 DNN 模型里再進(jìn)行訓(xùn)練。到了線(xiàn)上之后,針對(duì)每個(gè)查詢(xún)請(qǐng)求都會(huì)抽取這些特征,得到特征值后進(jìn)行 LR 模型計(jì)算,LR 模型產(chǎn)生的最終結(jié)果放在特征池里面,后續(xù)的 DNN 模型也會(huì)依賴(lài)這個(gè)東西計(jì)算。通過(guò)這套架構(gòu)設(shè)計(jì),基本上保證了剛才提到的要點(diǎn)。這套框架在線(xiàn)上跑了快一年時(shí)間,比較穩(wěn)定。

      模型效果評(píng)估

      圖12

      線(xiàn)下做實(shí)驗(yàn),以及線(xiàn)上上線(xiàn),必須要評(píng)價(jià)一下這套流程是好還是壞。所以有一套模型效果的評(píng)估方法,用來(lái)判定新特征到底是好還是壞?

      一、如圖 12的 AUC,這是搜索廣告領(lǐng)域以及現(xiàn)在的信息流推薦中常用的指標(biāo),只要涉及到排序結(jié)果通常都會(huì)用到 AUC,這個(gè)指標(biāo)表征排序能力,用于分析模型是不是把一些好的排在前面差的排在后面,它不一定能反映出數(shù)據(jù)的絕對(duì)值。AUC 還是比較穩(wěn)定的,據(jù)有些人講,只要這個(gè)指標(biāo)在線(xiàn)下提升到一定幅度,線(xiàn)上一定會(huì)有效果。如果線(xiàn)上沒(méi)有效果的話(huà),通常來(lái)講肯定是某一塊出了問(wèn)題,包括剛才講的線(xiàn)上線(xiàn)不一致等。

      二、最直接的評(píng)估方法,上線(xiàn)收益。如果線(xiàn)下發(fā)現(xiàn) AUC 是有提升的,要到線(xiàn)上去看最終收益有沒(méi)有漲,看到底多賺多少錢(qián)?這兩個(gè)指標(biāo)有一定的關(guān)聯(lián)性,AUC 比較高的話(huà)收益一定會(huì)漲,也有一些例外的情況。為什么線(xiàn)下效果很好,到了線(xiàn)上之后沒(méi)有變化?通常從兩個(gè)角度來(lái)看:特征的覆蓋率,你這個(gè)特征如果非常好,但覆蓋的東西很有限,線(xiàn)上 100 個(gè)指征只覆蓋了 2 個(gè),即使這兩個(gè)獲得很大的提升,最終的收益也比較有限;Survival Bias,線(xiàn)下訓(xùn)練時(shí)用到的數(shù)據(jù)都是自動(dòng)篩選過(guò)的結(jié)果,一般凡是能展現(xiàn)的廣告通常都是之前系統(tǒng)認(rèn)為比較好的廣告,在這個(gè)數(shù)據(jù)集上表現(xiàn)比較好,不代表你在真正放到線(xiàn)上之后表現(xiàn)好。因?yàn)檎嬲暇€(xiàn)之后你會(huì)對(duì)所有的廣告進(jìn)行掃描計(jì)算,這時(shí)把壞廣告干掉的能力就會(huì)顯得比較關(guān)鍵。這兩點(diǎn)可能會(huì)導(dǎo)致線(xiàn)上和線(xiàn)下不一致,其實(shí)做別的事情也會(huì)有同樣的問(wèn)題,一個(gè)是理論一個(gè)是實(shí)際,這兩個(gè)如果不一致時(shí),應(yīng)該想一想到底哪一塊出了問(wèn)題?

      并行化訓(xùn)練

      圖13

      此外,我們還需要并行化訓(xùn)練,因?yàn)閱螜C(jī)不可能處理這么大的數(shù)據(jù)量。

      數(shù)據(jù)量小的時(shí)候波動(dòng)很大,做的很多改進(jìn)沒(méi)有效果,一些小修改效果反而好。數(shù)據(jù)量變大之后,模型收益會(huì)更高而且比較可控。

      我們選擇的深度學(xué)習(xí)并行化訓(xùn)練方案是 MxNet,它支持多機(jī)多卡,使用成本比較低。我們每天都需要進(jìn)行模型更新,對(duì)時(shí)效性要求很高,如果把 MxNet 直接用過(guò)來(lái)的話(huà),效果不一定好,訓(xùn)練時(shí)間比較久,需要優(yōu)化,比如 怎么樣做調(diào)度來(lái)提升GPU的加速比等。

      現(xiàn)狀和計(jì)劃

      我們目前已經(jīng)實(shí)現(xiàn)了 LR+DNN 融合模型的上線(xiàn),收益比好。但是受限于線(xiàn)上計(jì)算資源,模型復(fù)雜度有限,線(xiàn)下訓(xùn)練流程有依賴(lài)關(guān)系,繁瑣易出錯(cuò)。

      我們針對(duì)這幾點(diǎn)情況做了個(gè)計(jì)劃。

      一、做一個(gè)線(xiàn)上服務(wù)拆分,跟深度學(xué)習(xí)的模塊獨(dú)立出來(lái),采用低功耗的 GPU 加速。這個(gè)現(xiàn)在做的差不多了,區(qū)別還是很明顯的。按目前線(xiàn)上 CPU 版本的服務(wù)器,其實(shí)它做這種工作時(shí)非常吃力,負(fù)載量不夠,但上了 GPU 之后,就能處理的很好。

      二、支撐更寬、更深、更復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu),GPU 在處理已有線(xiàn)上任務(wù)時(shí)的負(fù)載量在 5% 左右,利用率很低,未來(lái)能支撐更寬更深更復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu)。

      三、采用 Wide & Deep,線(xiàn)下訓(xùn)練流程解耦,因?yàn)橹暗脑诰€(xiàn)計(jì)算能力有限,如果GPU 運(yùn)轉(zhuǎn)良好的話(huà),可以采用 Wide&Deep 替換,使線(xiàn)下訓(xùn)練流程解耦。

      Wide Deep

      圖14

      這是接下來(lái)打算做的事情,大家如果感興趣可以看谷歌 2016 年 6 月份發(fā)表的相應(yīng)論文。大概的思路如圖 14所示, Wide 部分可以理解為 LR,Deep就是 DNN,這兩個(gè)模塊會(huì)把它的結(jié)果同時(shí)反饋到最終輸出節(jié)點(diǎn)上,來(lái)跟最終的結(jié)果進(jìn)行差值比對(duì),它的誤差都會(huì)同時(shí)回傳,回傳之后進(jìn)行同步更新。這樣有一個(gè)好處,:LR 跟 DNN 模型是同時(shí)訓(xùn)練出來(lái)的,線(xiàn)下維護(hù)一個(gè)流程實(shí)現(xiàn)兩個(gè)模型的訓(xùn)練,正確性包括各種錯(cuò)誤率都能得到很好的保證。

      該方法的優(yōu)點(diǎn)比較明顯,首先它比較穩(wěn)定,一次訓(xùn)練出兩個(gè)模型,如果兩個(gè)模型同時(shí)訓(xùn)練的話(huà),兩個(gè)模型會(huì)互相影響,兩個(gè)模型的權(quán)重分配會(huì)更好一些。大家現(xiàn)在都在朝這個(gè)方向發(fā)展,我們剛開(kāi)始做沒(méi)有多久,目前來(lái)看有好的效果,相比之前最好的效果再好一些,但因?yàn)楝F(xiàn)在的TensorFlow 平臺(tái)不支持大規(guī)模訓(xùn)練,接下來(lái)還需要在這一塊持續(xù)投入改進(jìn),如果有更新的結(jié)果會(huì)跟大家分享下。

      Q & A

      現(xiàn)場(chǎng)提問(wèn):論文中的方法(CSR)在英文語(yǔ)料上的效果怎么樣?

      舒鵬:效果差不多,比如說(shuō)英文單詞在幾十萬(wàn)百萬(wàn)的量級(jí),如果在線(xiàn)應(yīng)用的話(huà)要加載幾十萬(wàn)個(gè)字符和向量的映射關(guān)系,如果采用這種方法的話(huà),大概 幾十個(gè)字符,加載 幾十 個(gè)vector 就實(shí)現(xiàn)這個(gè)功能。

      現(xiàn)場(chǎng)提問(wèn):字的編碼怎么編的?

      舒鵬:總共 26 個(gè)字母加上大小寫(xiě)以及標(biāo)點(diǎn)符號(hào)和數(shù)字不到 100 種,每個(gè)對(duì)應(yīng)一個(gè)向量。漢字看哪個(gè)庫(kù),如果常用漢字大概幾千個(gè),其實(shí)這個(gè)矩陣并不大。

      現(xiàn)場(chǎng)提問(wèn):你剛才說(shuō)的 MxNet你能介紹一下調(diào)度的優(yōu)化嗎?

      舒鵬:我們這邊有一些工程團(tuán)隊(duì)支持,具體他們那邊熟悉一些。總體來(lái)講,首先I/O方面,我們的訓(xùn)練數(shù)量比較大,在幾十億量級(jí),首先多臺(tái)機(jī)器可以并行加載,怎么樣把I/O和后面的計(jì)算錯(cuò)開(kāi),這是關(guān)鍵的。還要看網(wǎng)絡(luò)結(jié)構(gòu)怎么設(shè)計(jì),深度學(xué)習(xí)訓(xùn)練也是每一個(gè)節(jié)點(diǎn)做完一輪BP之后會(huì)把系數(shù)拿在一起做個(gè)平均計(jì)算,怎么去設(shè)計(jì)機(jī)制來(lái)盡量縮短時(shí)間,主要是這些方面。

      現(xiàn)場(chǎng)提問(wèn):我想問(wèn)一下論文中使用的訓(xùn)練數(shù)據(jù)規(guī)模大概多少?

      舒鵬:我們當(dāng)時(shí)做論文時(shí)訓(xùn)練數(shù)據(jù)規(guī)模比較小,是基于公開(kāi)的庫(kù),大概不超過(guò)一百萬(wàn),比較小的庫(kù)。線(xiàn)上訓(xùn)練要看應(yīng)用場(chǎng)景,我們有好幾種數(shù)據(jù),有一種是人工標(biāo)注過(guò)的。除此之外,還有自動(dòng)數(shù)據(jù),例如用戶(hù)提交query之后,下面會(huì)出十條自然結(jié)果,點(diǎn)擊哪條結(jié)果能一定程度上表征query的一些屬性。query點(diǎn)擊的數(shù)據(jù)量很大,在百億量級(jí)。但第一種標(biāo)注數(shù)據(jù)的話(huà),量級(jí)比較小一些,主要取決于你的應(yīng)用。

      現(xiàn)場(chǎng)提問(wèn):請(qǐng)問(wèn)CTR預(yù)估模型效果評(píng)估中的準(zhǔn)確率度如何計(jì)算?

      舒鵬:剛才沒(méi)有列出來(lái),直觀想象下大概有個(gè)準(zhǔn)確率計(jì)算方法。假設(shè)每個(gè)廣告系統(tǒng)有個(gè)預(yù)估CTR,假如是 0.10,可以把所有預(yù)測(cè)CTR是 0.10 的廣告放在一起,這些廣告就會(huì)有實(shí)際的點(diǎn)擊率,這個(gè)實(shí)際的點(diǎn)擊率和 0.10 的差距會(huì)有個(gè)監(jiān)控,這個(gè)就是準(zhǔn)確率。

      現(xiàn)場(chǎng)提問(wèn):你剛剛在演講當(dāng)中提到有一個(gè) SurvivalBias 問(wèn)題,想問(wèn)一下具體怎么解決這個(gè)問(wèn)題的?

      舒鵬:這個(gè)主要是說(shuō)這個(gè)模型在碰到之前沒(méi)有見(jiàn)到的一些樣本時(shí)如何處理。關(guān)鍵點(diǎn)在于特征設(shè)計(jì),尤其是特征泛化性,所謂泛化性,比如說(shuō)一個(gè)新廣告,雖然廣告是新的,但廣告標(biāo)題和舊廣告差不多,只要你的特征能捕捉到這些經(jīng)常出現(xiàn)的東西,例如查詢(xún)?cè)~和廣告標(biāo)題的匹配度,這種泛化性能保證的話(huà),這個(gè) SurvivalBias 就不會(huì)很差。反過(guò)來(lái)講,如果你的模型中所有特征都跟跟通用性特征沒(méi)有關(guān)聯(lián),這個(gè)模型的 SurvivalBias 就會(huì)很差。舉個(gè)例子,如果你的模型訓(xùn)練時(shí)依賴(lài)的特征是昨天模型的預(yù)估點(diǎn)擊率,你的模型就會(huì)變得很簡(jiǎn)單,而且 AUC不會(huì)低,但實(shí)際上到了線(xiàn)上之后這個(gè)特征會(huì)缺失,然后效果就會(huì)很差,大概是這個(gè)意思。

      今天就介紹到這里,謝謝!

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶(hù) 評(píng)論公約

        類(lèi)似文章 更多