作者:九羽,公众号:炼丹笔记

BERT等Transformer模型在自然语言处理领域大放异彩之后,将Transformer应用在各个领域变成了一种潮流,包括之前文章中介绍的Image Transformer和本文要介绍的,在搜索推荐领域排序算法阶段,利用高阶特征组合的AutoInt、对用户行为序列建模的BST、Transformer在工业界中的应用和Transformer在数据算法竞赛(2020年腾讯广告算法大赛)中惊人表现等。

CTR预估领域面临着诸多挑战,输入特征的稀疏高维问题,高阶特征的计算复杂度问题等本文将数值特征和类别特征映射到同一个低维空间,利用带残差连接的多头注意力机制显式的进行交叉特征获取,提出了一种能够自学习特征高阶交叉的方法。

Interacting Layer是本篇论文中最核心的创新点,借鉴了NLP问题中的Multi-head Self-Attention方法,利用Key-Value Attention,每个Attention Head对应三个转换矩阵,Query、Key、Value。

本文利用內积的方式计算每个特征与其他特征的相似度,然后通过计算softmax归一化注意力分布后,加权得到新特征。以上步骤为一层Attention,作者简单的拼接多个Attention head的输出,引入标准的残差连接作为最终输出,构造更高阶的组合特征。

在之前的文章中,我们多次聊到了阿里团队在用户行为序列上的工作。由于用户行为序列(User Behavior Sequence)所蕴含的丰富信息,同时随着 Transformer 在 自然语言处理相关任务中的表现超过RNN模型,利用Transformer替代RNN捕捉 序列信息中深层含义变得水到渠成。

Behavior Sequence Transformer 模型从模型网络结构图中我们可以发现,非常符合CTR预估模型中Embeding&MLP的典型结构,而其创新点在于如何使用Transformer Layer 对用户行为序列进行建模。

“Other Features”部分将用户、物品、上下文和交叉信息加入模型。

Transformer层引入位置相关的Position embedding,将带时序、位置信息的多头注意力机制Multi-Head Self-Attention用在用户历史点击Item序列上。

  • Self-attention layer
  • Point-wise Feed-Forward Networks
  • Stacking the self-attention bloc

以上3个模块通过捕捉行为序列中Item之间的关系来完成深层次的学习。

Transformer 在美团搜索排序上的实践主要分三个部分:特征工程,行为序列建模,重排序。特征工程部分借鉴 AutoInt的方法,使用Transformer Layer进行特征的高阶组合。模型结构参考 AutoInt结构,但在实践中根据美团搜索的数据特点,对模型结构做了一些调整。行为序列建模在Transformer 行为序列建模基础上进行了模型优化。

  • 保留将稠密特征和离散特征的 Embedding 送入到 MLP 网络,以隐式的方式学习其非线性表达。
  • Transformer Layer 部分,不是送入所有特征的 Embedding,而是基于人工经验选择了部分特征的 Embedding。
  • 考虑到 MLP 具有很强的隐式交叉能力,将所有特征的 Embedding 表示 concat 一起输入到 MLP。
  • 特征向量生成部分和重排序模型是一个整体,联合端到端训练。
  • 训练和预测阶段固定选择 TopK 进行重排,遇到某些请求曝光 item 集不够 TopK 的情况下,在末尾补零向量进行对齐。

在2020年腾讯广告算法大赛中,冠军团队利用Transformer模型赢得了最后的胜利,让人眼前一亮。

本届算法大赛的题目来源于一个重要且有趣的问题。众所周知,像用户年龄和性别这样的人口统计学特征是各类推荐系统的重要输入特征,其中自然也包括了广告平台。这背后的假设是,用户对广告的偏好会随着其年龄和性别的不同而有所区别。许多行业的实践者已经多次验证了这一假设。然而,大多数验证所采用的方式都是以人口统计学属性作为输入来产生推荐结果,然后离线或者在线地对比用与不用这些输入的情况下的推荐性能。

本届大赛的题目尝试从另一个方向来验证这个假设,即以用户在广告系统中的交互行为作为输入来预测用户的人口统计学属性。赛题的“逆向思考”本身具有其研究价值和趣味性,此外也有实用价值和挑战性。

鉴于以上问题,冠军们对Masked Language Modeling(MLM)进行改进,原始的MLM是直接mask掉整个广告包括属性,但只mask广告的一部分(广告id或者属性)。

具体地,随机mask掉20%的token,mask后的位置使用0向量来代替,或者采样一个属性id来替换。使用改进的MLM预测这些广告的时候,不仅可以使用最近点击的广告,也可以用它的属性去预测,使得不同属性的embedding能够在语义空间上对齐。同时,也采用了一个很关键的策略,把词表缩小到10万(提取top10w,其余为unk),这样使得bert能跑起来。对于原始的MLM,我们也尝试过,虽然有提高但提高不是很大。

最后预测这些id的时候,不仅可以使用之前之后点击的广告,也可以用它的属性去预测。

参考文献

  • 1、Behavior Sequence Transformer for E-commerce Recommendation in Alibaba. arxiv.org/pdf/1905.0687
  • 2、S 3 -Rec: Self-Supervised Learning for Sequential Recommendation with Mutual Information Maximization. arxiv.org/pdf/2008.0787
  • 3、zhuanlan.zhihu.com/p/13
  • 4、zhuanlan.zhihu.com/p/16
  • 5、AutoInt:Automatic Feature Interaction Learning via Self-Attentive Neural Networks
  • 6、2020年AI领域有哪些让人惊艳的研究?
  • 7、CTR预估系列入门手册
更多干货,请关注微信公公众号:炼丹笔记

搜索推荐炼丹笔记:Transformer在搜索推荐中的应用相关推荐

  1. 搜索推荐炼丹笔记:酒店搜索位置偏差的边际重要性

    Handling Position Bias For Unbiased Learning To Rank In Hotels Search(ArXiv2020) 作者:一毛,公众号:炼丹笔记 背景 对 ...

  2. 搜索推荐炼丹笔记:评论是怎么影响推荐的?

    原来有这个算法,让点评体验如此好! 作者:十方,公众号:炼丹笔记 十方周末出去找吃的,一定会打开点评,去选择评分高的餐厅.虽然十方很少写评价,但是十方在选择餐厅的时候,一定会选择评分高且评论基本都是正 ...

  3. 搜索推荐炼丹笔记:CVR预估中的延迟反馈问题

    CVR预估中的延迟反馈问题 一元@炼丹笔记 问题描述 在很多推荐搜索的建模中,我们经常会使用D+1天的数据作为label,从1~D天的数据中的进行特征抽取等工作,和我们时间序列问题建模类似,但和很多其 ...

  4. 搜索推荐炼丹笔记:融合GNN、图谱、多模态的推荐

    作者:十方,公众号:炼丹笔记 说到推荐系统,就不得不面对数据稀疏和冷启动问题,怎么解决呢?美团这篇论文<Multi-Modal Knowledge Graphs for Recommender ...

  5. 搜索推荐炼丹笔记:单网络内部集成学习

    Intra-Ensemble in Neural Networks 作者:一元,公众号:炼丹笔记 背景 提高模型效果一直是机器学习(包括深度学习)中的关键问题.然而,独立神经网络在层数较多的情况下,往 ...

  6. 搜索推荐炼丹笔记:点击位置偏差的经验比较

    An Experimental Comparison of Click Position-Bias Models (WSDM08) 作者:一元,公众号:炼丹笔记 这是一篇经典的文章,引用800+,虽然 ...

  7. 搜索推荐炼丹笔记:位置偏差里的惊喜

    PAL: A Position-bias Aware Learning Framework for CTR Prediction in Live Recommender Systems (RecSys ...

  8. 推荐算法炼丹笔记:阿里序列化推荐算法MRIF

    MRIF: Multi-resolution Interest Fusion for Recommendation(SIGIR2020) 作者:一元,公众号:炼丹笔记 背景 本文分享阿里的最新的工作, ...

  9. 推荐算法炼丹笔记:阿里序列化推荐算法ComiRec

    作者:十方 公众号:炼丹笔记 Controllable Multi-Interest Framework for Recommendation 1.ComiRec与众不同之处 该论文是阿里在2020年 ...

最新文章

  1. 【驱动】在内核源码中添加驱动程序
  2. scikit-learn kmeans++
  3. 2.7 迁移学习-深度学习第三课《结构化机器学习项目》-Stanford吴恩达教授
  4. 第五次电信分拆敷陈幕后:激发运营商乖戾反弹
  5. UIView常见属性
  6. 3.20 tr:替换或删除字符
  7. Mysql数据库(八)——mysql高阶语句(中)
  8. Vue3之——和Vite不得不说的事
  9. 【普通の随笔】6.30
  10. java学习之(内部类)
  11. Crackeme021
  12. 在ASP.NET中运用JavaScript重定向页面
  13. STM32单线串口对总线舵机的控制
  14. 【洋桃电子】STM32入门100步-01
  15. SpringBoot整合JdbcTemplate(五)
  16. 第十章 项目沟通管理和干系人管理
  17. Fish shell 入门教程
  18. 2021版王道数据结构课后代码题全部实现
  19. oracle数据表转换为mysql数据表
  20. 怎么才能让小孩主动帮忙做家务?

热门文章

  1. 刷OJ时输入输出与字符串
  2. 转:亿级Web系统的高容错性实践(好博文)
  3. 高效学习,战胜拖延症
  4. 了解Sql Server的执行计划
  5. 为何那么多移动互联网APP慢慢失败
  6. .net 流(Stream) - 文件流、内存流、网络流
  7. (转)RemoteView 设置控件属性
  8. IIS5.1错误,启动时WEB服务提示:服务器没有及时响应启动或控制请求 之终极解决方案。...
  9. mysql主主复制某张表_MySQL主主复制实战
  10. 神经网络 | BP神经网络-数字识别(附源代码)