作者:一元 公众号「炼丹笔记」

背景

本文的算法十分通用,在周围朋友诸多的实践中,基本都取得了一定的提升。虽然该论文未能发表,但是实践意义巨大,估价一个亿!废话不多说,直接学习!

电商平台的发展, 评估电商平台的好坏指标也会变多,所以我们的问题变成了多目标的。本文提出了DBTML(Deep Bayesian Multi-Target Learning), 通过事件发生的顺序进行建模, 目标事件被建模为Bayesian网络。在Taobao的实验中,作者发现该方法使用集成的因果结构可以使任务从其他任务那边收益,创造显著的协同效应,提高了所有预估的指标。

多目标学习的概率形式

目标变量分离

当我们有一个二元目标,那么该预测通常会被建模为LR问题,当我们有多个二元目标,那么我们就可以将其建立为多分类问题(可是随着二元任务变多,笛卡尔空间会呈指数爆炸),当目标数据的稀疏性很强时,预测结果很快就会恶化。因此,通常我们通过将联合分布分解为较小的联合分布或单个分布,并在一定的概率模型假设下,避免这种指数空间扩张。于是我们可以将其写为:

于是我们的 损失被划分为两个不同的项,label空间的维度诅咒就消失了。它对应的框架图如下:

我们发现上面独立性的假设是没有必要的, 使用Bayesian公式,我们可以将其重新写为:

而该对应的框架就如下图所示:

这是本文的框架,也是ESMM模型的框架,不同的是,此处我们直接用MLP从数据中自动学习

当目标事件之间的因果关系不明确时,使跨目标关系变得可学习更为重要,在这种情况下,

就不再重要,我们可以直接从数据中判断哪个更好学习。

此处的讨论也可以泛化到超过两个目标的场景

网络结构的选择

当我们有多个目标需要预测同时因果关系较为模糊的时候,那么这个时候targets之间的关系有O(n^2)个,同时所有的贝叶斯网络个数变为2^O(n^2), 那么如何解决这个问题呢?

  1. 增量&贪心地构建Bayesian网络: 增量的添加目标节点, 固定现有所有的边不变, 仅仅迭代和新节点相关的链接来确定最好的方向;
  2. 基于直觉和关于因果关系的先验知识构建网络结构, 同时使用在特定迭代的局部变化,保持好的变化和放弃坏的。带有因果关系的方向通常比反因果关系的要好。一般来说,使用分布更均匀的目标来预测分布不均匀的目标会更好。例如“Follow”按钮的点击率不如“Goods Bag”按钮的点击率均匀分布(Follow button click相对较少,而live room用户点击商品包按钮的比例相对接近1/2),因此,用follow事件作为原因比用goods bag click作为原因可以得到更糟糕的结果,这在我们的实验中得到了证实。

模型试验框架

模型试验的框架如下:

试验实现了下面的Bayesian公式:

它对应的负的log-likelihood就是:

实验中, 为了对不同目标的重要性进行控制,会加入权重,

实验

1. 实验比较

  • 多目标学习相较于单目标学习取得了最好的效果;
  • 在所有的任务上,DBMTL都要远好于其他模型;

2. 目标对效果

  • DBMTL在所有三个实验中都优于其他方法,证明了它在各种目标类型中的通用性;
  • ESMM和DBMTL在辅助目标建模方面都很成功,但在CTR-CGR(非稀疏)情况下的改进不如在CTR-CFR(稀疏)情况下显著;这可能是由于目标之间的相互联系在学习稀疏目标时会带来特殊的增益,因为稀疏目标可以利用非稀疏原始目标数据中的信息;
  • 在CTR-AST(实值)案例中,DBMTL相对于ESMM的改进更为显著,显示了DBMTL在处理连续值目标时的泛化能力。

3. 目标贝叶斯结构

和我们的直觉类似,因果式的方向CTR->others在指标上取得了最好的效果。正确的因果关系可以更好的建模和学习;

小结

本文提出的DBMTL框架,但从淘宝的实验数据集的效果来看,构建因果关系的网络确实能带来不错的提升。削弱了其他深层MTL结构用于潜在概率模型的许多假设。由于DBMTL框架对目标分布和类型不做具体的假设,所以它很容易将其推广到各种分布和值类型。在设计贝叶斯结构时,我们还提出了两个原则:尊重清晰的自然因果关系,以及倾向于多熵目标指向低熵目标。

参考文献

  • Deep Bayesian Multi-Target Learning for Recommender Systems(ArXiv2019)

论文地址(见文末):Deep Bayesian Multi-Target Learning for Recommender Systems

更多炼丹笔记干货,请关注微信公众号「炼丹笔记」

推荐算法炼丹笔记:Deep Bayesian的多目标推荐相关推荐

  1. 推荐算法炼丹笔记:排序模型CTR点击率预估系列

    微信公众号:炼丹笔记 ​CTR点击率预估系列家谱 炼丹之前,先放一张CTR预估系列的家谱,让脉络更加清晰. (一)FiBiNET:结合特征重要性和双线性特征交互进行CTR预估 1.1 背景 本文发表在 ...

  2. 推荐算法炼丹笔记:CTR点击率预估系列入门手册

    ​CTR点击率预估系列家谱 炼丹之前,先放一张CTR预估系列的家谱,让脉络更加清晰. (一)FiBiNET:结合特征重要性和双线性特征交互进行CTR预估 1.1 背景 本文发表在RecSys 2019 ...

  3. 推荐算法炼丹笔记:科学调参在模型优化中的意义

    作者:九羽 ,公众号:炼丹笔记 基于Embedding的推荐算法模型一直是近几年研究的热门,在各大国际会议期刊都能看到来自工业界研究与实践的成果.MF(Matrix Factorization)作为传 ...

  4. 推荐算法炼丹笔记:序列化推荐系统

    作者:一元 公众号:炼丹笔记 特约审稿:杰少 背景 序列推荐系统(SRS)不同于传统推荐系统(RSs)包括协同过滤和基于内容的过滤,SRSs试图理解和建模用户的连续行为.用户与物品之间的交互作用以及用 ...

  5. 推荐算法炼丹笔记:推荐系统采样评估指标及线上线下一致性问题

    本文对于推荐系统中的采样评估指标进行了讨论,内容略多, 还有一些数学推导, 有兴趣的可以去阅读文末给出的原始论文链接, 此处直接列出核心观点: 在评估推荐算法的效果时,能不采样就不采样! 除了AUC, ...

  6. 推荐算法炼丹笔记:如何让你的推荐系统具有可解释性?

    作者:一元, 公众号:炼丹笔记 可解释性和有效性是构建推荐系统的两大关键成份,之前的工作主要关注通过引入辅助信息来获得更好的推荐效果.但这些方法会存在下面的两个问题: 基于神经网络的embedding ...

  7. 推荐算法炼丹笔记:标签工程

    作者:一元 公众号:炼丹笔记 Deep Feedback Network for Recommendation(IJCAI20) 背景 做数据挖掘相关的朋友,大多数都听说过特征工程这个艺术的词汇,却鲜 ...

  8. 分级加权打分算法 java_推荐算法炼丹笔记:令人着迷的时间动态CF算法

    作 者:一元 公众号:炼丹笔记 背景 本文是一篇较老的文章,是Yahoo的研究员关于协同过滤中时间动态建模的最为细致的讨论. 顾客对产品的偏好随着时间的推移而变化.随着新选择的出现,产品的认知和受欢迎 ...

  9. 推荐算法炼丹笔记:序列化推荐算法Bert4Rec

    作者:一元 公众号:炼丹笔记 之前和海归博士朋友聊天,他说,这篇文章是他所有的复现算法中,处理序列最好的算法之一.原本以为Bert只常见于NLP中,本文我们一起详细地阅读学习一下如何使用Bert来做推 ...

最新文章

  1. 苹果 2020 iPhone 展望:相机大升级,5G 首次接入
  2. RxJava使用(三)Scheduler 线程控制
  3. keepalived(1)——准备
  4. Python自动化测试 (九)urllib2 发送HTTP Request
  5. 报错:failed to get the task for process XXX(解决方案)
  6. 推荐40个简单的 jQuery 导航插件和教程【下篇】
  7. springboot之rabbitmq
  8. marquee标签、插入百度地图
  9. 洛谷P1182 数列分段 Section II(二分+贪心)
  10. 7. 敏捷软件开发框架 - 极限编程XP
  11. Unity技术手册-UGUI零基础详细教程-Image图片
  12. android支付宝运动修改器,一键修改支付宝运动步数-修改支付宝运动步数工具下载不要root手机版-西西软件下载...
  13. 目标检测算法综述(近20年)
  14. 2017中国云计算评测报告 1
  15. iOS开发中动画之点赞图标放大效果
  16. 戴尔Precision 3630工作站重装Windows10 操作系统
  17. android视频解码数据分辨率改变,Android实现任意分辨率视频编码的思考与实现
  18. 【面试题解】详解前端基石-CSS选择器
  19. 几行代码就能实现复杂的 Excel 导入导出,这个工具类真心强大!
  20. bugku-游戏过关

热门文章

  1. Coprime Conundrum 容斥原理
  2. ActiveReports中如何在后台导出运行时绑定数据源报表
  3. hdu_2227_Find the nondecreasing subsequences_树状数组,离散化
  4. Remove Duplicates from Sorted List 去除链表中重复值节点
  5. C++字符串的格式化
  6. SDUT 2133 数据结构实验之栈三:后缀式求值
  7. 分享:几款代码混淆器(DotFuscator, .NET Reactor, xenocode)
  8. aws终止实例后还收费吗_因 AWS 数据中心断电,1TB 数据丢失了
  9. printf输出颜色和ANSI控制码(高亮,下划线,闪烁,光标位置,清屏等)
  10. git 如何清理操作日志_git如何清空所有的commit记录