国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于CVR建模的多任務聯合學習訓練方法——ESMM

深度學習自然語言處理 ? 來源:深度學習自然語言處理 ? 作者:阿澤 ? 2020-08-27 16:41 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

作者:阿澤(阿澤的學習筆記)

本文介紹阿里媽媽廣告算法團隊發表于 2018 年 SIGIR 一篇論文《Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conversion Rate》。

傳統的 CVR 通常會面臨樣本選擇偏差數據稀疏兩大的問題,從而使得模型訓練變得相當困難。本文作者提出 ESMM 算法,通過定義新型多任務聯合訓練的方式,以全新的視角對 CVR 進行建模。

通過淘寶推薦系統的實驗表明,ESMM 的性能明顯優于其他算法。

看到這里,大家可能有很多疑問:

CVR 預估任務中,樣本選擇偏差是什么問題?

ESMM 是怎樣多任務訓練的,又是如何聯合訓練的?

帶著問題,我們來閱讀以下內容。

Introduction

post-click conversion rate 翻譯過來就是:點擊后轉化率,也就是說 CVR 是建立在用戶點擊的基礎上的進行的。

作者將用戶的行為簡化為:曝光->點擊->轉換三個步驟,三者的區別如下圖所示:

傳統的 CVR 任務中,工程師通常將以點擊未購買的樣本作為負樣本,而點擊購買的樣本作為正樣本,并以此訓練模型,將其部署到線上使用。

但這樣的訓練方式有一個問題,模型是針對點擊的商品進行訓練的,而線上數據集大部分都是未點擊的,此時便會出現樣本選擇偏差(sample selection bias,SSB) 的問題。

此外,點擊商品本身就非常少,所以通過這種方式構建的數據集還會面臨數據稀疏(data sparsity,DS) 的問題。

SSB 問題會影響模型的泛化性能,而 DS 問題會影響模型的擬合。

現有的一些研究試圖去解決這些問題,比如說:建立基于不同特征的分層估計器,并將其與 LR 模型相結合來解決 DS 問題,或者利用對未曝光未點擊的樣本做采樣來緩解 SSB 問題。這些策略在一定程度上可以消除 SSB 和 DS 問題,但都顯得不夠優雅,并且也都不能真正解決 CVR 建模中的問題。

上述策略的一大關鍵在于沒有考慮到 CTR 和 CVR 的順序動作信息,而阿里媽媽的同學通過充分利用用戶操作的順序性提出了 ESMM 算法,該方法能夠同時解決 SSB 和 DS 問題。

ESMM 中引入了兩個輔助任務,分別是 CTR 和點擊后轉換的 CTCVR 任務。ESMM 并不是直接使用曝光樣本來訓練 CVR,而是利用 的關系,CTCVR 和 CTR 都可以通過曝光的樣本進行訓練,而 CVR 作為中間變量可以由 CTR 和 CTCVR 估算得到。因此,通過這種方法算出的 CVR 也適用于整個樣本空間(與線上分布一致),這便解決了 SSB 問題。此外,CVR 和 CTR 共享網絡表征,由于后者的訓練樣本更多,所以也可以減輕 DS 問題。

ESMM

接下來,我們來看 ESMM 的具體做法。

我們將上面的式子寫具體,對于給定的曝光樣本 x,我們可以得到 CTCVR 的概率:

基于這種關系,我們聯合 Embedding 和 MLP 網絡設計了 ESMM 架構:

ESMM 借鑒多任務學習的思想,將模型分為左右兩個模塊,左邊是我們需要的 CVR 模塊,右邊是 CTR 和 CTCVR 輔助訓練模塊,恰當的引入了用戶操作的順序性,同時消除了 CVR 建模出現的兩個問題。

值得注意的是,CVR 和 CTR 任務采用相同的特征輸入并共享 Embedding Layer,CTR 任務中由于具有大量訓練樣本,可以對模型進行充分訓練,這種參數共享的方式,可以降低數據稀疏帶來的影響。

另外,pCVR 只是一個中間變量,受到上面公式的約束,而 pCTR 和 pCTCVR 才是 ESMM 中實際訓練的主要因素。(可以這樣理解,CVR 模型是沒有監督信號的,而 CTR 和 CTCVR 都是有監督信號的,最后利用公式約束得到 CVR 模型。)

所以,對于給定曝光的樣本,我們同時可以得到 CVR、CTR 和 CTCVR。

可能有同學會有疑問,為什么要通過公式進行約束,而不直接通過 pCTCVR/pCTR 來得到 pCVR。作者也做了這樣的實驗,但是結果并不好,主要原因在于 pCTR 通常非常小,除以一個非常小的數會引起數值不穩定,所以 ESMM 采用了乘法公式進行約束,而不是直接通過除法得到結果。

我們來看下 ESMM 的損失函數,由具有監督信息的 CVR 和 CTCVR 任務組成:

其中, 和 分別是 CTR 和 CVR 網絡的參數; 為交叉熵損失函數。

Experiments

來看一下實驗部分:

所有數據集是從淘寶日志中整理抽取出來的生產環境的數據集(Product Dataset),并且從中進行隨機采樣(1%)作為公共數據集(Public Dataset),同時也開源了這部分公共數據集。兩個數據集的信息如下所示:

下圖為不同模型在公共數據集中的表現:

其中 ESMM-NS 為 ESMM 的精簡版,沒有 Embedding Layer 的參數共享。

可以看到兩個版本的 ESMM 在不同任務下的效果都取得了 SOTA 的成績。

再看一下不同模型在生產數據集上的表現:

ESMM 模型在不同大小的數據集上都是處于領先地位的。

Code

放上 ESMM 的核心代碼:

 1#-*-coding:UTF-8-*-
 2importtensorflowastf
 3fromtensorflow.python.estimator.cannedimportheadashead_lib
 4fromtensorflow.python.ops.lossesimportlosses
 5
 6defbuild_deep_layers(net,params):
 7#構建隱藏層
 8fornum_hidden_unitsinparams['hidden_units']:
 9net=tf.layers.dense(net,units=num_hidden_units,activation=tf.nn.relu,
10kernel_initializer=tf.glorot_uniform_initializer())
11returnnet
12
13defesmm_model_fn(features,labels,mode,params):
14net=tf.feature_column.input_layer(features,params['feature_columns'])
15last_ctr_layer=build_deep_layers(net,params)
16last_cvr_layer=build_deep_layers(net,params)
17
18head=head_lib._binary_logistic_or_multi_class_head(
19n_classes=2,weight_column=None,label_vocabulary=None,loss_reduction=losses.Reduction.SUM)
20ctr_logits=tf.layers.dense(last_ctr_layer,units=head.logits_dimension,
21kernel_initializer=tf.glorot_uniform_initializer())
22cvr_logits=tf.layers.dense(last_cvr_layer,units=head.logits_dimension,
23kernel_initializer=tf.glorot_uniform_initializer())
24#核心思想在這里:
25ctr_preds=tf.sigmoid(ctr_logits)
26cvr_preds=tf.sigmoid(cvr_logits)
27ctcvr_preds=tf.multiply(ctr_preds,cvr_preds)
28optimizer=tf.train.AdagradOptimizer(learning_rate=params['learning_rate'])
29ctr_label=labels['ctr_label']
30cvr_label=labels['cvr_label']
31
32user_id=features['user_id']
33click_label=features['label']
34conversion_label=features['is_conversion']
35
36
37ifmode==tf.estimator.ModeKeys.PREDICT:
38predictions={
39'ctr_preds':ctr_preds,
40'cvr_preds':cvr_preds,
41'ctcvr_preds':ctcvr_preds,
42'user_id':user_id,
43'click_label':click_label,
44'conversion_label':conversion_label
45}
46export_outputs={
47'regression':tf.estimator.export.RegressionOutput(predictions['cvr_preds'])
48}
49returntf.estimator.EstimatorSpec(mode,predictions=predictions,export_outputs=export_outputs)
50
51else:
52ctr_loss=tf.reduce_sum(tf.nn.sigmoid_cross_entropy_with_logits(labels=ctr_label,logits=ctr_logits))
53ctcvr_loss=tf.reduce_sum(tf.losses.log_loss(labels=cvr_label,predictions=ctcvr_preds))
54loss=ctr_loss+ctcvr_loss#loss這兒可以加一個參數,參考multi-task損失的方法
55
56train_op=optimizer.minimize(loss,global_step=tf.train.get_global_step())
57returntf.estimator.EstimatorSpec(mode,loss=loss,train_op=train_op)

Conclusion

一句話總結:作者提出了一種用于 CVR 建模的多任務聯合訓練方法——ESMM,其充分利用了用戶點擊、轉換的順序性,并借助 CTR 和 CTCVR 兩個輔助任務來訓練 ESMM 模型,并通過三者的關系約束得到 CVR 模型。ESMM 模型可以很好的解決傳統 CVR 建模中出現的樣本選擇偏差和數據稀疏的兩大難題,并在真實數據集中取得 SOTA 的優秀表現。

此外,ESMM 模型中子網絡也可以替換成其他更先進的模型,從而吸收其他模型的優勢,進一步提升學習效果。

Reference

Ma X, Zhao L, Huang G, et al. Entire space multi-task model: An effective approach for estimating post-click conversion rate[C]//The 41st International ACM SIGIR Conference on Research & Development in Information Retrieval. 2018: 1137-1140.

github:x-deeplearning

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 多任務
    +關注

    關注

    0

    文章

    18

    瀏覽量

    9328
  • CVR
    CVR
    +關注

    關注

    0

    文章

    4

    瀏覽量

    6625
  • CTR
    CTR
    +關注

    關注

    0

    文章

    39

    瀏覽量

    14523
  • ESMM
    +關注

    關注

    0

    文章

    2

    瀏覽量

    1016

原文標題:【CTR】ESMM:多任務聯合學習

文章出處:【微信號:zenRRan,微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    國產算力首證具身大腦模型訓練實力:摩爾線程聯合智源研究院完成RoboBrain 2.5全流程訓練

    智算集群 ,成功完成智源自研具身大腦模型 RoboBrain 2.5 的 全流程訓練 。 這是行業內首次驗證國產算力集群在具身智能大模型訓練中的可用性與高效性,標志著國產AI基礎設施在應對復雜多模態任務上邁出了關鍵一步。通過面向
    的頭像 發表于 01-14 09:05 ?504次閱讀
    國產算力首證具身大腦模型<b class='flag-5'>訓練</b>實力:摩爾線程<b class='flag-5'>聯合</b>智源研究院完成RoboBrain 2.5全流程<b class='flag-5'>訓練</b>

    一文說透了如何實現單片機的多任務并發!

    在嵌入式系統開發中,多任務并發是非常常見的,對于處理復雜的應用場景、提升系統的并發能力、提高系統的實時性等方面都有很大好處。在單片機中實現多任務并發是非常重要的,本文將為大家介紹如何在單片機中實現
    發表于 01-06 06:46

    Carling Technologies CVR-Series可變電阻開關:車輛照明控制的理想之選

    Carling Technologies CVR-Series可變電阻開關:車輛照明控制的理想之選 在車輛照明控制領域,一款性能可靠、配置靈活的開關至關重要。今天,我們就來深入了解一下Carling
    的頭像 發表于 12-16 10:15 ?328次閱讀

    多任務系統中,如何平衡任務調度以防止因高負載導致的再次進入低功耗模式的延遲?

    多任務系統中,如何平衡任務調度以防止因高負載導致的再次進入低功耗模式的延遲?
    發表于 12-04 06:37

    一句話,多個命令同時執行,AI語音模組也能多任務處理?

    、 Ai-WV02-32S ? 將語音識別、喚醒、語義理解等核心功能, 濃縮在一顆小小的模組中。 安信可AI語音模組支持 MCP 協議(Multi Command Processing,多命令并行處理) ,讓語音交互從“單線程”進化為真正的“多任務協同”! 一句話喚醒“多任務
    的頭像 發表于 10-31 14:45 ?523次閱讀
    一句話,多個命令同時執行,AI語音模組也能<b class='flag-5'>多任務</b>處理?

    愛普科技PSRAM加速wisun無線模塊多任務處理

    愛普科技256Mb PSRAM(如APS256XXN-OBR-BG)為WiSUN無線模塊提供高速數據緩存與臨時存儲解決方案,其166MHz速率、1.8V低功耗及小尺寸封裝顯著提升模塊在智能電網、工業自動化中的多任務處理能力和穩定性。
    的頭像 發表于 10-14 09:25 ?382次閱讀
    愛普科技PSRAM加速wisun無線模塊<b class='flag-5'>多任務</b>處理

    揭秘LuatOS Task:多任務管理的“智能中樞”

    Task任務作為LuatOS的核心組成部分,通過智能化的任務管理機制,實現任務的創建、調度與協同運行,讓復雜應用得以高效并行處理,滿足實時場景下的嚴苛需求。 sys核心庫是LuatOS運行框架庫
    的頭像 發表于 08-28 13:48 ?635次閱讀
    揭秘LuatOS Task:<b class='flag-5'>多任務</b>管理的“智能中樞”

    EASY EAl Orin Nano(RK3576) whisper語音識別訓練部署教程

    1Whisper簡介Whisper是OpenAI開源的,識別語音識別能力已達到人類水準自動語音識別系統。Whisper作為一個通用的語音識別模型,它使用了大量的多語言和多任務的監督數據來訓練,能夠在
    的頭像 發表于 07-25 15:21 ?851次閱讀
    EASY EAl Orin Nano(RK3576) whisper語音識別<b class='flag-5'>訓練</b>部署教程

    【Sipeed MaixCAM Pro開發板試用體驗】 + 04 + 機器學習YOLO體驗

    /maixhub_train.html 我認為在線訓練為數不多的缺點就是當訓練 人數過多時 ,訓練需要排隊,從而導致 訓練時長的增加 。 優點就是方便快捷簡單易用 。 2.離線
    發表于 07-24 21:35

    EASY EAl Orin Nano(RK3576) whisper語音識別訓練部署教程

    Whisper是OpenAI開源的,識別語音識別能力已達到人類水準自動語音識別系統。Whisper作為一個通用的語音識別模型,它使用了大量的多語言和多任務的監督數據來訓練,能夠在英語語音識別上達到接近人類水平的魯棒性和準確性。
    的頭像 發表于 07-17 14:55 ?1758次閱讀
    EASY EAl Orin Nano(RK3576) whisper語音識別<b class='flag-5'>訓練</b>部署教程

    NVIDIA Isaac Lab可用環境與強化學習腳本使用指南

    Lab 是一個適用于機器人學習的開源模塊化框架,其模塊化高保真仿真適用于各種訓練環境,Isaac Lab 同時支持模仿學習(模仿人類)和強化學習(在嘗試和錯誤中進行
    的頭像 發表于 07-14 15:29 ?2347次閱讀
    NVIDIA Isaac Lab可用環境與強化<b class='flag-5'>學習</b>腳本使用指南

    CPU密集型任務開發指導

    onmessage()方法接收Worker線程發送過來的消息,并通過調用postMessage()方法向Worker線程發送消息。例如向Worker線程發送訓練和預測的消息,同時接收Worker線程發送
    發表于 06-19 06:05

    VirtualLab Fusion應用:Herriott池的建模

    處的反射 ? 通過孔的傳播 ? 探測器 在我們的例子中,光束足夠窄,不會與整個孔相互作用,因此,函數方法就足夠了。 孔 第一反射鏡上的孔建模為一個理想的透射光柵,定義在一個圓形區域中,只有0級透射
    發表于 06-11 08:52

    快速入門——LuatOS:sys庫多任務管理實戰攻略!

    在嵌入式開發中,多任務管理是提升系統效率的關鍵。本教程專為快速入門設計,聚焦LuatOS的sys庫,通過實戰案例帶你快速掌握多任務創建、調度與同步技巧。無論你是零基礎新手還是希望快速提升開發效率
    的頭像 發表于 05-29 14:36 ?820次閱讀
    快速入門——LuatOS:sys庫<b class='flag-5'>多任務</b>管理實戰攻略!

    基于RK3576開發板的yolov11-track多目標跟蹤部署教程

    YOLO11是 Ultralytics YOLO系列實時物體檢測器的最新版本,重新定義了在尖端準確度、速度和效率方面的可能性。在前幾代 YOLO 版本的顯著進步基礎上,YOLO11 在架構和訓練方法上引入了重大改進,使其成為廣泛計算機視覺任務的靈活選擇。
    的頭像 發表于 05-24 15:07 ?2531次閱讀
    基于RK3576開發板的yolov11-track多目標跟蹤部署教程