微信大数据挑战赛决赛方案:微信视频号推荐算法
结束了深圳腾讯滨海大厦之行,回来忙完手头的工作,写一写这次参赛的解决方案。参加这次比赛,一方面是题目比较有意思,在微信视频号场景下的多目标预测(推荐)问题,跟真实工作场景比较匹配,另一方面,源于对清华大学刘强老师的无条件支持。这次故地重游,见到了老友,感慨颇多。
不废话了,接下来由我来分享一下我在微信大数据挑战赛中方案。
我将从赛题理解、模型设计、创新与实用、总结与思考等方面进行介绍。
那么,在我们看到赛题时,我们首先要搞清楚我们的模型是哪个场景之下,实现什么样的目标。
在视频号场景下,我们要实现对多个用户主动行为的预测,当我们仔细分析这几个目标时,我们能够发现,各个目标之间具有层次关系。
纵向来看,有两层,比如只有查看了评论才能发表评论。
横向来看,根据用户的左右手使用习惯,每个位置也都存在差异。
同时,在数据层面,我们从用户和视频两个角度去思考数据中少了些什么?
那么用户侧,我们发现用户缺少用户画像,同时用户行为表中缺少与视频对应的描述。
在视频侧,文字信息是经过脱敏的,且视频存在冷启动问题。
当然,有问题就会有对应的解决方案,用户画像我们可以通过聚合去构造,用户兴趣可以通过行为去挖掘。
因为考虑到数据量级和推理时间的限制,所以在模型设计时,我们就尽量减少对内存的过渡依赖,直接由<用户、视频、作者>3个ID各自组成长度为1的序列,将随机初始化改为利用预训练向量进行初始化,模型采用了构建多任务的方式,去挖掘用户不同目标之前的潜在联系。
MMOE模型等多任务模型的对比、分析,炼丹笔记之前写过好多篇了,有兴趣的同学可以搜一下,在这里就不赘述了。
由于之前的模型存在这各种问题,所以本着“不破不立,大破大立”,放弃了初赛模型,重写了并设计了上述模型之后,排行榜上的GAUC成绩来到了0.718+。
因为在设计时,我们没有使用传统意义上的特征工程,所以我们对3个ID使用了两种方式得到embedding层的初始化权重。
而在这3个ID中,作者又是其中较为特殊的一种存在,特殊的点有两个,
- 从数据逻辑层面,他可以理解为是对底层信息的聚合
- 从产品层面,作者可能是自然人账号、主题账号、甚至搬运工账号等。
因此,对于3ID中间的相互表示,我们使用了两种不同原理的方法。
整体框架确定之后,我们重点去优化其中的几个细节。
那么在前面数据理解时我们也提到了,赛题中存在视频冷启动和缺少用户画像的问题,那么这里我们通过内容的标签和关键词去描述用户感兴趣的内容、同时构造作者画像。
然后,我们将这些画像来初始化embedding层,有些人喜欢作者而评论,有些人喜欢内容而点赞,有些仅仅是因为喜欢背景音乐而点,因此,我们用注意力机制来捕捉这种关系,为每个人在模型中划上兴趣重点。
在理解整个业务场景时,我们思考了这么一个问题,什么指标可以很好的体现用户的兴趣呢?
从产品的角度,这个指标是停留时长,从单个视频的角度,这个指标是完播率。
因此,相比于把它做成特征,我们选择在7个目标之外构建第8个任务,更好的去利用mmoe在多任务框架下,通过学习不同任务的联系和差异,从而提高每个任务的学习效率和质量。
因为完播率不是最终的评价指标,所以我们给予辅助任务一个较小的权重。
因为在设计整个架构时,我们以落地为目标,所以多任务的框架可以在时间上保障了模型在训练和推理阶段的高效。
采用embedding+多样初始化的方式解决了内存空间在训练阶段的可能不足的问题。
最后多GPU并行推理去解决线上推理对时延的要求。
最终模型经过调参、优化之后,分数来到了0.721+。后续就是一些无关痛痒的小调整了,同时,由于只有一个模型,所以经过测试,使用多种子融合的方式,对模型的提升极其有限,大约有+0.001的提升。
业务角度:
进一步挖掘其它字段
- 文本类信息(配文、图像、语音识别信息)、用户停留时长、背景音乐等。
算法角度:
模型优化
- 在构建模型时,可以使用蒸馏、模型压缩等技术来进一步降低模型的资源使用情况。
感谢
感谢微信团队和清华大学刘强老师在大赛期间的组织与协调工作,一次非常棒的竞赛体验。
微信大数据挑战赛决赛方案:微信视频号推荐算法相关推荐
- [落选]2021微信大数据挑战赛_方案
目录 问题概述 baseline 改进-0 改进-1 改进-2 改进-3 改进-4 结果 参考 更新 问题概述 先来看看这冗长的赛题说明1 baseline 最早是参考麻婆豆腐AI2的baseline ...
- 2022微信大数据挑战赛复盘,rank60+菜鸟
2022微信大数据挑战赛复盘,rank60+菜鸟 说明 初赛 模型选择 trick implement details 复赛 模型选择 trick implement details 一些遗憾的地方 ...
- 2021微信大数据挑战赛—参赛总结
2021微信大数据挑战赛-参赛总结 目录 2021微信大数据挑战赛-参赛总结 摘要 赛题任务 数据处理 特征工程 特征筛选 模型选择 赛题得分 参考链接 推荐阅读 写在最后 摘要 比赛网址:https ...
- 微信视频号推荐算法上分技巧
躺平了一段时间之后,排行榜已经发生了翻天覆地的变化,emmm....不由的佩服年轻人的精力,作为老年选手,只能使用大局观了(此处内涵一下我大酒神,手动狗头).好久没写文章了,本文拿出 炼丹笔记 里的一 ...
- 2021微信大数据挑战赛-初赛-NN思路分享
总结 模型 该方案是基于Deepfm的baseline模型,线上加权在0.661左右.未进行调参,未进行多折,若后续想提分,可以从模型方面进行着手调试. 特征工程 主要是通过基础id做的embeddi ...
- 大数据的应用-UserCF和ItemCF推荐算法
一.推荐系统 1.1 推荐系统是大数据在互联网领域的典型应用,它可以通过分析用户的历史记录来了解用户的喜好,从而主动的为用户推荐其感兴趣的信息,满足用户的个性化推荐需求. 1.2 推荐系统是自动联系用 ...
- 2019大数据挑战赛TOP5方案总结
2019 BDC 比赛总结(图片完整版访问请访问github上的pdf文件) 图片完整版访问请访问github上的pdf文件!!!! 2019中国高校计算机大赛已正式结束.对于我个人而言,这是第一次进 ...
- 2021中国高校大数据挑战赛A题复盘+解题思路
引言 由于个人安排的原因,没有时间参加微信大数据挑战赛,倒是参加了2021年中国高校大数据挑战赛.这次比赛做的是中国电信提供数据集的A题,是一个异常检测的题目,一个人做的本科组二等奖,觉得还是不错的. ...
- 【大数据千人会微信群20140827期交流纪要】傅志华-大数据如何在企业落地
[大数据千人会微信群分享]20140827期:傅志华-大数据如何在企业落地 中国互联网协会大数据工作委员会(筹)推出"大数据千人会"论坛,每周三晚8点30分开始,在"中国 ...
- 【我的数据挖掘竞赛之旅(一)】快手活跃用户预测——2018中国高校计算机大赛第三届之大数据挑战赛(Big Data Challenge)
文章目录 大赛 全称 地址 前言 一.任务目标与数据分析 1.数据集介绍 2.数据集说明 3.读取数据并命名列名 4.查看每个数据集的前五行 (1)注册日志 注册日志说明 (2)APP启动日志 APP ...
最新文章
- RxJava+Retrofit+OkHttp深入浅出-终极封装四(多文件下载之断点续传)
- Java中的策略设计模式
- QML工作笔记-文本输入设置长度以及回显方式(TextInput与TextField通用)
- jsp篇 之 指令元素和动作元素
- Visual Studio Code 1.45 发布
- Python二:【ImageEnhance】+【PIL模块】如何利用python实现图像增强
- BZOJ 2006 NOI2010 超级钢琴 划分树+堆
- 转:能和LoadRunner匹敌的VS2010/2012Web负载测试
- 前端逼死强迫症系列之javascript
- Linux学习整理-网络防火墙iptables-实践篇2
- JSON 的 MIME 类型
- Sentaurus TCAD模型创建、激活电极等
- php字符串函数(1)长度计算、查找、截取
- 终于把所有的 Python 库都整理出来啦,赶紧收藏!!!
- 年终囍一批、愁一批......浮躁啊,眼红啊,这个真有
- 咋把计算机程序固定到任务栏中,win10我的电脑固定到任务栏如何操作_win10怎么把我的电脑放到任务栏...
- 微信小程序系列2——小程序页面渲染和逻辑的关系
- 好玩的手机淘宝社群,发单初体验
- 致创业新人,我网络创业的一些心得。
- isosurface matlab,[matlab][isosurface]画隐函数的等值曲线或曲面