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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

知乎推荐页Ranking构建历程和经验分享

發(fā)布時間:2025/4/5 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 知乎推荐页Ranking构建历程和经验分享 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本次分享主題主要從以下是三個方面展開:

  • 知乎推薦頁場景和Ranking歷程介紹;

  • 深度學(xué)習(xí)在Ranking中的嘗試和應(yīng)用現(xiàn)狀;

  • Ranking面臨的問題和未來研究方向。

首先大家看一下知乎APP的推薦頁的推薦結(jié)果,由于單厚智老師對機器學(xué)習(xí)比較感興趣,所以推薦內(nèi)容大部分和機器學(xué)習(xí)相關(guān)。

一、推薦頁請求流程

1、 召回:負責(zé)將用戶可能感興趣的內(nèi)容提取出來,重點是全。

  • 基于話題:獲取用戶的關(guān)注數(shù)據(jù),用戶行為挖掘;

  • 基于內(nèi)容:協(xié)同過濾的方式。

2、排序:負責(zé)對召回的內(nèi)容進行打分,可以理解為感興趣程度,重點是準。

  • 基于規(guī)則:時間順序,線性加權(quán);

  • 基于模型:GDBT,DNN。

3、重排序:出于產(chǎn)品或業(yè)務(wù)的考慮,對排序的內(nèi)容進行重排,最終展示給用戶。

  • 提權(quán):比如給視頻進行一定的提權(quán);

  • 隔離:相似內(nèi)容隔開;

  • 強插:高質(zhì)量的新內(nèi)容流通。

以上就是知乎推薦頁的整體架構(gòu)流程,下面針對Ranking模塊做詳細講解。

首先介紹一下推薦頁Ranking的演進歷程,如下圖所示,Ranking的演進主要經(jīng)歷了四個階段。

  • 按照時間排序
    • 按照用戶的行為,比如關(guān)注,動態(tài)等,并根據(jù)時間進行排序;

    • 它的問題是沒有考慮到親密度或者感興趣的程度。

  • EdgeRank算法
  • 該算法借鑒Facebook的EdgeRank算法,根據(jù)用戶親密度進行排序。

  • Feed Ranking
  • 采用GDBT模型。

  • Global Ranking
  • 深度學(xué)習(xí)模型,DNN等。

    模型的選擇主要有以下方面的考量:

    • 深度學(xué)習(xí)大趨勢;

    • 能處理更高維度特征,如幾十萬話題量級,GBDT 無法完成訓(xùn)練;

    • 非線性模型,不必做大量的特征組合;

    • 使用GPU + HDFS結(jié)構(gòu),可以訓(xùn)練更多的樣本。

    二、特征介紹

    我們的特征按照內(nèi)容進行劃,可分為如下分三類:

    1、用戶畫像特征

    • 用戶屬性特征:性別等;

    • 統(tǒng)計特征:用戶點贊數(shù)等。

    2、 內(nèi)容畫像

    • 固有特征:文章長度,關(guān)鍵詞等;

    • 統(tǒng)計特征:歷史點贊數(shù)等。

    3、交叉特征

    • 用戶與內(nèi)容的交叉特征:比如用用戶感興趣的話題和當前待推薦內(nèi)容的話題交叉。

    特征的形式主要有以下幾個方面:

    • 數(shù)值特征:文章長度,點贊數(shù);

    • Onehot:比如,內(nèi)容類型;

    • Multihot:內(nèi)容多個話題 id;

    • Onehot with value:用戶對單類型內(nèi)容的感興趣程度;

    • Multihot with value :用戶對各話題的感興趣程度。

    三、特征設(shè)計

    設(shè)計原則:

    • 特征盡量全:從現(xiàn)有的數(shù)據(jù)中提取盡可能多的特征;

    • 特征原始值全:比如加歷史CTR 特征的時候,可以把 pv 和 click 都帶上;

    • 覆蓋率大:去掉一些覆蓋率很低的特征,這些特征影響影響范圍小,大部分是缺失值;

    • 線上線下一致:覆蓋率和取值分布盡可能接近。

    新特征方向:

    • 顯式交叉特征:DNN 能學(xué)習(xí)特征的非線性能力,增加交叉特征可以降低模型搜索的空間,在訓(xùn)練數(shù)據(jù)一定的情況下可以提升效果,如用戶的話題興趣和當前話題的均值和最大值,效果提升明顯;

    • 出于業(yè)務(wù)考慮:需要對業(yè)務(wù)有一定的理解,把自己當做用戶,考慮什么情況下點擊率會大,什么樣的內(nèi)容更容易被用戶點,比如視頻在 wifi 下更容易被點,視頻點擊率高的人更喜歡視頻;

    • 數(shù)據(jù)挖掘特征:如內(nèi)容 Embedding 特征。

    3.1 內(nèi)容Embedding

    • Embedding 目的:把內(nèi)容映射到低緯空間,相似內(nèi)容距離較近,可以當做內(nèi)容特征;

    • 文本角度:tfidf,關(guān)鍵詞進行word2vec 等;

    • 行為角度:考慮用戶在知乎的行為,搜索內(nèi)容相關(guān)性較好,依據(jù)搜索點擊序列設(shè)計 Embedding。

    實現(xiàn)細節(jié)

    • 數(shù)據(jù):將搜索行為進行session切分,組織成類似于 sentence 序列;

    • 樣本:85億;

    • 模型:skip-gram;

    • loss:nce-loss。

    該方法借鑒word2vec的原理,通過“詞”去預(yù)測“上下文”,這里面的“詞”就是itemId,“上下文”就是指在點擊該Item事件前后,固定窗口下其他Item的Id信息。

    之所以通過搜索行為構(gòu)建序列,是因為搜索是屬于“強目的”的,并且搜索結(jié)果內(nèi)容相似。

    下圖是模型的訓(xùn)練結(jié)果,從結(jié)果可以看出,這些內(nèi)容大體相似。

    四、CTR模型

    選擇模型的原因:

    1、推薦頁排序目標是把用戶推薦感興趣的內(nèi)容排在前面,可有下面兩個學(xué)習(xí)目標:

    • 停留時長:適合用回歸問題來解決,最后會偏向于長文章;

    • 點擊率:二分類問題,知乎的問答一般不長,更加合適。

    2、分類問題相比回歸問題,目標類別少,相對準確率高;

    3、分類問題場景業(yè)界應(yīng)用較廣,可交流空間大;

    4、分類問題最后會輸出一個概率分,方便與多目標結(jié)合。

    損失函數(shù)采用交叉熵:

    4.1 最初DNN結(jié)構(gòu)

    • 將輸入特征分為用戶和內(nèi)容兩塊;

    • 經(jīng)過特征映射后分別通過全連接與兩個獨立的隱含層連接;

    • 兩個獨立的隱含層 cancat 后再經(jīng)過兩個全連接層;

    • 最后輸出 sigmoid 與交叉熵損失作為 loss。

    結(jié)果:這一版模型的AUC為0.7618

    4.2 優(yōu)化DNN結(jié)構(gòu)

    • 將用戶和內(nèi)容的特征,分別按照內(nèi)容的 field 分為不同的 block;

    • 每個 block 先經(jīng)過全連接到獨立的隱含層;

    • 將上面的隱含層 concat 再經(jīng)過后面的 DNN 模型。

    結(jié)果:AUC:0.7678,提升0.6%

    4.3 Deep FM

    • 增加了一階和 FM 模塊,FM 通過 block 之間的內(nèi)積實現(xiàn);

    • AUC 提升 0.2%。

    該DeepFM算法與華為設(shè)計的DeepFM不同,改模型將FM層的結(jié)果作為DNN的輸入。

    4.4 Last View + DIN

    • Last view topic 與當前內(nèi)容的幾個 topic 計算 Attention Score,再按權(quán)重進行 sum pooling;

    • AUC 提升約 0.2%。

    我們基于的考慮是用戶過去點擊的內(nèi)容肯定對他2將要點擊的內(nèi)容產(chǎn)生動態(tài)影響,這個模型參考了阿里的DIN模型,它會把用戶看過的東西Embedding,然后根據(jù)Attention Score再乘起來,我們的做法有所不同,我們是基于Topic,是過去用戶看過那些Topic下的內(nèi)容進行劃分。

    4.5 Last Display + GRU

    根據(jù)4.4的思想,過去點擊的行為對現(xiàn)在能夠產(chǎn)生影響,那么同理,過去展示的內(nèi)容中沒有點擊的內(nèi)容對當下的點擊行為同樣會產(chǎn)生影響,所以這里面增加了Last Display(包括點擊和沒點擊的所有數(shù)據(jù))。

    • Last Display 經(jīng)過 Embedding 后與是否點擊結(jié)合,再進入 GRU 模塊,最后狀態(tài)當做 DNN 輸入;

    • AUC 提升約 0.4%。

    4.6 多目標

    之前所有的模型都是基于CTR為導(dǎo)向來進行設(shè)計的,但是這樣用戶的負反饋可能會比較多一些,因為一些長尾的內(nèi)容,或者大眾化的內(nèi)容會比較多,影響用戶的體驗。

    后來考慮設(shè)計一個多目標模型,一個是基于點擊率的模型,一個是基于收藏率的模型,基于點贊率,基于評論率等等,一共設(shè)計8個目標。

    從性能方面的考慮,我們將底層權(quán)重設(shè)置成共享的,最后一層會根據(jù)不同的目標進行權(quán)重的訓(xùn)練。

    主要分為以下步驟:

    o 每個 task 共享前面的幾層權(quán)重,可以節(jié)省訓(xùn)練和預(yù)測的計算量;

    o Loss 可以是幾個 task 的 loss 做簡單線性加權(quán);

    o 上線仍然要確定各個 ctr 的加權(quán)值,經(jīng)驗比較重要;

    o 上線后線上表現(xiàn):點擊率基本不變,而其他的幾個指標,比如點贊,收藏大幅提升。

    4.7 最終模型結(jié)構(gòu)

    綜合以上模型的優(yōu)點,最終設(shè)計出如上圖所示的模型。

    五、經(jīng)驗分享

    1、對于隨時間變化的統(tǒng)計特征,比如用戶和內(nèi)容畫像的統(tǒng)計值,線上 service 應(yīng)當紀錄請求時的值,生成訓(xùn)練樣本時直接從紀錄的日志里獲取,避免特征穿越問題;

    2、如果發(fā)現(xiàn)線下效果好,比如 AUC 和 NDCG 提升明顯,但上線效果不顯著,很可能是特征不一致導(dǎo)致的,可重點排查;

    3、線上線下最好使用同一套特征抽取框架,只需使用的相同特征配置便可保證一致性,我們 Global Ranking 使用同一套 proto結(jié)構(gòu)和特征抽取模塊實現(xiàn);

    4、做特征歸一化操作,發(fā)現(xiàn)有特別大的值,比如幾萬或者幾十萬,要先取 log ,不然會導(dǎo)致這個特征大部分值都趨向0,相當于征失效;

    5、 輸入特征要做非法檢查,防止出現(xiàn) inf,nan,而導(dǎo)致模型訓(xùn)練出現(xiàn)異常的參數(shù);

    6、對于線上的每次請求,用戶特征都是一樣的,可以只計算一遍用戶特征相關(guān)的 block,避免冗余運算;

    7、訓(xùn)練數(shù)據(jù)量要盡可能大,可以使用 FlatBuffer 結(jié)構(gòu)把訓(xùn)練數(shù)據(jù)存放在 HDFS 上,訓(xùn)練時直接從 HDFS 讀取,邊讀取邊訓(xùn)練;

    8、線上模型要能自動更新,過老的模型效果下降嚴重。

    六、面臨問題

    1、推薦頁與搜索頁的特性不同

    • 搜索帶著 query 來的,結(jié)果與之相關(guān)性越高越好,不用太關(guān)心結(jié)果的多樣性;

    • 推薦頁用戶沒有明確的目的,但是有興趣偏好和對結(jié)果的多樣性需求,推薦既要準確又要多樣化。

    2、CTR 預(yù)估模型是 pointwise 模型,沒有考慮單個內(nèi)容與其他內(nèi)容同時出現(xiàn)的影響。

    3、用戶對感興趣的東西會出現(xiàn)審美疲勞,要及時抓住這種特點,比如一個算法工程師看完幾個機器學(xué)習(xí)文章后就不想再看了,這時候要能推薦一些其他話題的內(nèi)容。

    七、未來方向

    1、強化學(xué)習(xí)

    • Actor:根據(jù)用戶過去的瀏覽和點擊行為生成推薦頁整屏結(jié)果;

    • Critic:接收到點擊或者其他正向行為作為 reward,同時訓(xùn)練 Critic 和 Actor 網(wǎng)絡(luò)參數(shù)。

    2、優(yōu)點

    • 能及時捕捉用戶的反饋,從而避免對同一話題產(chǎn)生審美疲勞;

    • 推薦整屏幕內(nèi)容,避免 pointwise 方式下內(nèi)容較為集中問題。

    3、缺點

    • 模型結(jié)構(gòu)復(fù)雜,模型參數(shù)訓(xùn)練較困難。

    作者介紹

    單厚智,知乎推薦算法高級工程師,排序算法負責(zé)人**,碩士畢業(yè)于北京郵電大學(xué),曾在搜狗從事廣告點擊率預(yù)估工作,引入GBDT+LR模型;加入知乎后,主要負責(zé)推薦頁 ranking 工作,首次引入深度學(xué)習(xí)模型。

    本文來自單厚智在 DataFun 社區(qū)的演講,由 DataFun 編輯整理。

    總結(jié)

    以上是生活随笔為你收集整理的知乎推荐页Ranking构建历程和经验分享的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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