躺平了一段时间之后,排行榜已经发生了翻天覆地的变化,emmm....不由的佩服年轻人的精力,作为老年选手,只能使用大局观了(此处内涵一下我大酒神,手动狗头)。好久没写文章了,本文拿出 炼丹笔记 里的一波上分技巧分享一下。

之前写过的微信视频推荐算法大赛的两篇文章:

  • 乘风破浪的微信视频号推荐算法
  • 当推荐系统遇上多模态Embedding

在词里面,一个词可能会有多个不同的意思,这个时候我们会使用Multi-sense的embedding来处理此类情况,同样的,CTR/CVR任务随着上下文的不同也会有不同的意思,Operation-Aware的embedding可以帮助我们在不同的上下文中学习到不同的特征表示。

One-hot embedding是最早的embedding,它可以很好地表示类别信息,有就在特定位置标记为1,没有就是0,但是one-hot embedding却存在非常大的一个问题,在做关联操作的时候,我们会得到非常多的“不合理”的0。

比如有三种颜色:红|粉红|蓝;有两种性别:男|女,用one-hot表示二者的关系,假设满足男和红是1,那么其他的组合全部都会是0,很明显,这是不合理的,因为男和粉红以及男和蓝的关系肯定是不一样的,这类比到搜索推荐中也是一样,我们用one-hot表示用户和某个视频的关系,存在关联就是1,没有就是0。

现在来了一个视频,历史上用户没有和该视频有过明显的关联,那么我们的用户和该视频的关联性就会变为0,很明显这是有问题的。所有one-hot的形式是不足够的。

Normal embedding就是我们常说的embedding操作,我们将每个类别变量映射到一个低维度的dense向量上面,得到一个新的向量,后面再用该向量去做对应的操作。这么做相较于one-hot embedding的优势就较为明显了,同样的现在来了一个商品,历史上该用户没有和该商品有过明显的关联,但我们的用户和该商品的关联性在这个时候一般也不会是0。

Operation-aware embedding 故名思议就是和Operation相关的embedding,一个operation对应一个embedding(注:相同的操作在不同的特征上也被认为是不同的操作),我们发现原先我们的类别特征每次转化为一个embedding向量,想再是L个embedding向量,

如果直接将两个特征的关系拼接起来会得到非常稀疏的表示,并且会因为训练不充分导致效果不佳,FM等模型用积(内积/外积)的形式来表示两个潜在向量之间的关系。同时大量的实验也验证来这一点带来的好处。

  • LR
  • Poly2
  • FM
  • FFM
  • MLP
  • WDL(DLRS16)
  • DeepFM(IJCAI17)
  • NFM(IJCAI17)
  • AFM(IJCAI17)
  • xDeepFM(KDD19)
  • TFNET(SIGIR20)
  • ONN/NFFM(Arxiv19)
  • AoAFFM(AAAI20)
  • AutoFIS(KDD20)

上面所有的模型可以大致分为四个部分,特征embedding,特征低阶高阶显示交叉,特征隐式交叉,特征筛选。具体文章可以看 炼丹笔记 之前的文章《CTR神经网络特征交叉汇总》。

ONN和xDeepFM是目前在数据竞赛中经常用到的模型(据本人所知,2020年之前的CTR竞赛最多的处理categorical的特征还是这两类模型),19年的腾讯赛冠军也是用的NFFM模型,二者的对比如下(18年的腾讯数据),整体来看,NFFM的效果要略好于xDeepFM,但二者融合效果还是极棒的!

目前神经网络的特征交叉研究的方向主要是:

①.深化二阶特征的交叉(内积,element-wise,加入attention系数,加入张量细化);

②.探索显示的高阶交叉;

③.探讨噪音&冗余特征的处理;

④.探索embedding的合理性;

短视频推荐等问题中, 用户的满意程度很难衡量,我们需要从用户的点击,是否看完视频, 分享,喜欢,评论等角度来刻画,所以多任务学习在推荐领域已经成为主流的方法。但是在使用MTL建模时,在我们调整模型的时候经常会碰到下面的现象:

  • 跷跷板现象:某一个任务的指标上升,但是另外一个任务的指标会下降;

那么是否可以通过利用不同任务的信息共享做到多个任务的指标同时上升呢?

做深度多任务学习不可避免的都会碰到下面的几个问题:

  • 不同任务的loss设计问题(辅助loss设计);
  • 不同任务之间特征层的共享问题(如何避免负迁移);
  • 不同任务之间的loss权重设计(有些任务是MSE,有些是二分类)等;
  • 模型优化,不同任务如何优化;(不同任务不同梯度设计等)
  • 什么样的任务使用MTL任务是最好的, 能带来较大的帮助?(理论暂无)
  • 其他

如何做到MTL任务能帮助我们多个任务提升?在 炼丹笔记 文章《多任务学习如何做到你好我也好?》中介绍了在多任务loss固定的情况下很好地缓解了这些问题,并且给所有的任务带来了不错的提升。

做数据挖掘相关的朋友,大多数都听说过特征工程这个艺术的词汇,却鲜有人知道标签工程这个伟大的词汇,诶,为什么很少有人知道呢?因为这个是我们自己造出来的,轻喷......但是这个词却真的非常契合该章节的核心思路,大家都知道标签脏或者模糊的问题,这个是所有数据里面不可避免的,那么如何解决或者缓解此类的问题呢?让标签更加置信....

无论是显性反馈还是隐性反馈都能反映用户对商品的意见,这对于学习推荐中的用户偏好至关重要。然而,目前大多数推荐算法只关注隐式的正反馈(如follow),而忽略了其他信息丰富的用户行为。然而联合考虑显式/隐式和正/负反馈,才可以了解用户的无偏偏好。具体细节可以在《颤抖吧,标签工程》找到。

在推荐系统中,显式和隐式的反馈都是有价值的,许多工作使用特征mapping以及迁移学习的方式来构建显示和隐式反馈的关系,目前大多数算法使用多任务学习方式将显式和隐式反馈结合来联合处理ranking和rating的任务。

微信视频号推荐算法上分神技!

微信视频号推荐算法上分技巧相关推荐

  1. 机器学习高级篇:解密微信视频号推荐机制

    - 1 - 基于已关注视频号的推荐算法 当我关注一些视频号后的发现 ,又连续刷了几次视频做测试. 测试结果如下: 为什么是这些视频呢? 此时微信又多了一些数据 我关注的视频号,这个数据比我的朋友看过或 ...

  2. 解决微信视频号 当前浏览器不支持此视频格式 的错误消息

    我试图用电脑端的微信视频号助手,上传一个后缀为 mp4 的视频时,遇到如下错误消息:当前浏览器不支持此视频格式,建议上传 MP4 或 H.264 格式文件. 然而我能肯定,我是使用格式工厂这款软件,将 ...

  3. 白杨SEO:微信视频号怎么玩?推广、涨粉、上热门及赚钱技巧大全

    前言:这是白杨SEO公众号原创第192篇.为什么想到写这个,发现越来越多的朋友在做视频号了,但不知道怎么做,所以今天就来写写.如果看图片,请到公众号去看哈. 为什么要做微信视频号? 这个问题是不是你也 ...

  4. 微信视频号的实时推荐技术架构分享

    猜你喜欢 0.2021微信视频号生态洞察报告1.如何搭建一套个性化推荐系统?2.从零开始搭建创业公司后台技术栈3.全民K歌推荐系统算法.架构及后台实现4.微博推荐算法实践与机器学习平台演进5.腾讯PC ...

  5. 国仁网络资讯:微信视频号怎么变现赚钱;首先要了解平台的底层逻辑与算法原理。

    互联网,犹如浩瀚星空,里面的生态正如星际爆炸一样,在不断地肆虐扩张,但是如果单从内容这一条线的发展来看,其实脉络十分清晰. 每伴随着一次内容推荐算法的迭代与优化,就但是想玩转一个平台前,一定要先明白该 ...

  6. 【抓包教程】- 微信视频号下载教程,使用charles抓包工具,如何设置charles抓包工具,以及具体在某一个视频上如何抓包

    Reference Charles 功能介绍和使用教程 - 掘金 学完这篇Charles抓包教程,我直接把fiddler卸载了 - 知乎 一.下载微信视频号里的视频方法小结 1.1 抓包 例如char ...

  7. 微信视频号攻略:转发视频号的视频到自己的视频号上

    新手如何转发视频号的视频到自己的视频号上,需要创作还是直接发呢? 我相信你开通视频号,都想赚钱但是真的你知道怎么赚钱吗? 视频号背靠微信,而且拥有最多的用户现在微信官方一直投入大量资源使劲推,视频号重 ...

  8. 如何增加微信视频号播放量,点赞量及上热门?

    第一:视频质量要跟上. 视频剪辑的格式.清晰度.音频.内容,都非常重要,这是硬条件. 第二:发布时候文案.发布时候的文案要好,和抖音一样,文案十分重要,而且添加位置就会传播给同城/附近的用户,添加话题 ...

  9. 微信视频号运营技巧有哪些

    相信不少小伙伴都已经发现了吧?最近,微信又多出了一个新功能,叫做视频号,和传统的短视频平台一样,微信的视频号也是用来记录和创作短视频的一个平台.当然,这个平台除了可以发布个人短视频之外,也可以用来帮助 ...

最新文章

  1. python dataframe显示网格_python dataframe 输出结果整行显示的方法
  2. 层次聚类多维度matlab实现_第34集 python机器学习:凝聚聚类
  3. 6 个 K8s 日志系统建设中的典型问题,你遇到过几个?
  4. TCP客户端服务端编程模型
  5. SAP ABAP OData uri type为metadata的请求处理逻辑
  6. 做python开发要用多大的内存卡_编程用surface怎么样发(学python要多大内存)
  7. Thinking in ReactJS and Flux
  8. 修改linux系统时间的方法(date命令)
  9. 11 week blog
  10. mysql护眼参数,VS2013设置护眼背景颜色
  11. python 读取pdf图片_三种方法,Python轻松提取PDF中全部图片
  12. 【Excel】取消合并单元格后快速填充
  13. 在网络上面下载ts文件并且转换为mp4
  14. 通达信最新 行情服务器,通达信数据接收服务器地址及端口号
  15. Android实现校园新闻APP,基于android平台的校园新闻app的开发 大学毕业论文.doc
  16. 物理建模钢琴-Arturia Piano V2 v2.5.0.3410 MacOSX
  17. CentOS7.3下Zabbix3.5之微信报警配置
  18. 速学堂 JAVA 300集 第四章练习
  19. 【计算机网络】实验2:常见网络命令操作
  20. [笔记分享] [RPM] RPM debug log

热门文章

  1. python报错 TypeError: an integer is required
  2. SQLSERVER 的联接查询写法
  3. stand up meeting 12/25/2015 weekend 12/26/2015~12/27/2015
  4. 让思考成为一种习惯:一位软件工程专业学生的大学生涯规划
  5. oracle提高io,【转】Oracle性能优化调整--调整磁盘I/O
  6. element ui 图片上传_游民晚播报:PS5手柄续航情况测试 UI界面概览放出
  7. 疾病相关数据查找,Our world in data使用指南
  8. Java实现插入排序及其优化 insertion sort
  9. 蓝桥 算法训练 P0505
  10. 树莓派4b设置RTC时钟模块DS3231