内容推荐算法:异构行为序列建模探索

很多秃头小可爱沉迷熬夜逛淘宝,以下是来自宇宙洪荒之力的最新线报:

  • 男生比女生多

  • 天蝎座多

  • 夜间小裙子搜索量位居第一

尤其,每晚有1700万人在淘宝只逛不买,他们到底在干什么?

看完视频和下方文章,你就知道为什么上头了。

前言


来洋淘, 更有young! 洋淘轻应用的内容均是手淘用户的真实购后分享, 在这里,你可以个性化地浏览他人的美好生活, 并鼓励自我表达与分享。

图1. 洋淘轻应用截图, 左) 为双列流, 右) 为详情页

在推荐任务上,同导购产品相比,洋淘场景有着自身的特性:

  • 新用户冷启严峻,六成以上的用户无洋淘场景内的历史内容点击;

  • 老用户内容兴趣也稀少,历史内容点击数不超过10,反观商品点击数却高达数倍;

  • 用户在电商与内容两个domain的兴趣差异较大。统计日志发现,电商兴趣对洋淘场景下内容点击样本的覆盖度仅为 30% 。

于是,如何把跨域的异构行为用好,提升用户的浏览深度就显得弥足珍贵。我们从 召回ctr预估 两大关键环节均作了探索与创新, 大幅提升了推荐效果, 取得了显著的业务收益。

技术提升

论文探讨、算法交流、求职内推、干货分享、解惑答疑,与2000+来自港大、北大、腾讯、科大讯飞、阿里等开发者互动学习。

项目源码、数据、技术交流提升,均可加交流群获取,群友已超过2000人,添加时最好的备注方式为:来源+兴趣方向,方便找到志同道合的朋友

方式①、添加微信号:mlc2060,备注:来自CSDN +研究方向
方式②、微信搜索公众号:机器学习社区,后台回复:加群

向量召回模型In_Match


前文提到内容兴趣不够用,我们首先基于i2i尝试了商品与内容的混合协同,取得了一定的收益。然后基于电商兴趣的标题作相关内容的严格相似召回,却收益为负,这说明跨域的兴趣不可生搬硬套,也与前文的兴趣差异统计相吻合。

所以一个能胜任的召回模型,应满足以下期望:

  • {电商,内容}两个domain的历史行为都能用上;

  • 交互序列是刻画用户精确意图的关键, 要能对序列建模而非孤立的交互单元;

  • 既然两个domain兴趣差异存在, 就要能学到 电商兴趣到内容兴趣 的迁移规律。

基于以上理念, 我们设计了兴趣迁移 Interest Transfer Matching Model (In_Match for short),取得了以下显著收益(业务指标为内部数据,此处只列ab实验的相对提升)

  • 推荐综合指标上,人均点击提升+11.17%,pv_ctr提升+12.16%;

  • 大幅缓解推荐过于集中的状况,top内容的曝光占比下降25%;

  • 该路向量召回大幅超越content-based feature对应的几路召回,甚至高于内容协同召回。

模型架构及主要贡献

图1-1.In_Match 的模型架构

图1-2.encoder-decoder 内部细节示例

主要贡献有:

  • multi modality

  • 考虑到稀疏性,引入多模态性能提升+5%

  • semantic projection

  • 填补 商品/内容 语义空间上的gap

  • 基于decoder来学习[整个session]点击

  • 学习session点击,相较next one ,SDM有对比收益

  • decoder架构更适合序列生成任务, GPT vs. BERT

  • beam-search 进一步提升多样性, 在 page 推荐下更友好

图1-3.(beam-search)序列预测工作图示,多样性与兴趣演化

下文会分章节阐述我们的设计思想。

序列建模的必要性

推荐系统的首要任务是精准的捕捉用户意图,早期的人工抽取content-based feature(如商品的叶子类目)作trigger的方式过于粗浅,有兴趣粒度不足及trigger间无法有效排序两处弊端,分别讨论。

1、content feature粒度不够精细,譬如 {方便粉丝,米线,螺蛳粉} 三个品类共用一个叶子类目;又如连衣裙直接作为叶子类目,{A字裙,荷叶边裙,百褶裙} 等款式差异无从体现,而不同的女孩子多半有着差异化的兴趣指向。

2、feature庞杂难以取舍。洋淘用户多从首猜轻应用跳转而来,他们的商品点击行为丰富且多样,并且,把时间窗口扩大到七天,一个月,这些叶子类目兴趣trigger会更加膨胀,能召回成百上千个符合要求的洋淘内容,但推荐系统一次只返回一页有限个内容,如此多的兴趣作何取舍呢?典型的做法是, 综合考虑这些叶子类目对应商品的 {交互行为,交互次数,时间新旧}, 给不同的叶子类目计算权重然后倒排,但这么计算兴趣分布也很粗糙,指标归因中可以看到叶子类目兴趣召回的效果是低于大盘指标的。

所以我们不能孤立地看待这一次次点击行为,分别抽取各自的 content-based feature 作trigger。完整的交互序列直接体现了用户过往来到淘宝逛了啥点了啥,且包含了时间的演进,直观上以及业界论文经验都能证明,日志中的交互序列对接下来的点击预测具有十分重要的指导意义,且价值远胜于{年龄,性别,地域}等用户画像信息。

注意力机制

Attention Mechanism 是近来大放异彩,业界青睐的建模手段。它允许模型在做当下的决策时,只把注意力放在最应该关注的那一部分,不再眉毛胡子一把抓。

scaled dot-product attention

图1-4.multi-head attention 图示

Dot-product attention 相较于传统的 RNN/CNN layer 的类attention处理,无论是训练效率上还是 long-range dependency 情形下的表现均有显著优势。它可以描述为这么一个映射,output=f(query,{key_value}) ,它们全都是向量。先计算query与若干个key的紧密程度得到affinity matrix,再归一化后把这些weight分配到相应的value上,最终求和,就得到了一个query在attention后的最终表达。

self attention

自注意力,即在encoder与decoder两侧, 各自对同一sequence内的各个item间的关联做计算。它有啥好处呢,以图1-5为例,孤立看用户的某一次点击,我们很难知道背后的意图,就像人类在做阅读理解时碰到多义词,需要联系上下文才能判断具体的含义。这里也一样,通过 self attention 可得到一个交互商品(或内容)的上下文表达,即 contextual representation。

图1-5.孤立看用户的某一次点击, 我们很难知道背后的意图

vanilla attention

它指的是decoder对encoder,一个序列对另一个序列的attention。这个更直观一点,相当于把下面的问题抛给了模型,让它自己去学自己去学——即用户当下的一次点击,应归因到又长又丰富的前序点击序列中的哪几次点击所体现出来的用户兴趣上呢?

多模态特征

我们的推荐数据集是非常稀疏的。为此分别通过 BERT in NLP及 ResNet in CV 这些流行预训练模型做二次开发,产出期望的多模态特征,提升泛化性。消融实验表明此项子工作带来了额外+5%的性能提升。

图1-6.BERT additional pre-train 指标:masked_lm_accuracy=73.52%, nsp_accuracy=99.33%,框选商品作query,基于此作标题k近邻验证

图1-7.框选图片作query,基于此作图片k近邻验证

case study

人们常说深度网络像个黑盒,可解释性差。但在本网络中,可以观察attention 权重,尝试作为对本次推荐结果的解释。attention 权重来自 block 3 of 3 的 vanilla attention,对 四个 multi_head的 attention 作 avg_pooling。

图1-8.case中, decoder 对历史商品序列的权重分配

CTR预估模型 In_CTR

base 回顾


洋淘场景的base模型由 Wide&Deep FM&DIN 三部分融合而来, 其理念见下:

  • Wide

关于特征的学习, 在神经网络generalization 特性的帮助外, Wide and Deep 认为必要的 memorization 也是不能少的, 而退化成线性模型的wide子模块就被期望做这样的贡献。

  • Deep Fm

CTR任务某种程度上就是判断target(如待打分的doc)与用户意图间的匹配关系, 所以离不开用户特征与target特征的重度交叉。传统的LR模型中, 只能依靠人工的高阶特征组合, 这样的特征工程低效且低质。DeepFM 在LR基础上为每一个特征组中的每一个field学习一个 latent vector, 依靠彼此点乘作二阶交叉。

它要求不同的特征向量维度固定, 输出为一个scalar, 使用时通常作为网络最后logits多项加和中的一项。

  • DIN

DIN认为用户的兴趣是多样的, 对于确定的一个target, 通常只能匹配到历史行为序列中的若干商品而非全部, 所以要有针对性地激活这些匹配到的商品, 同时抑制之外的噪声。以这种有的放矢的思想建模序列表达, 相较 历史序列 mean pooling 能够带来额外的收益。

这些模块都是当下的一些主流实现,能力并不弱,但其缺少对异构序列的差异化建模,导致对In_Match该路召回内容的pred_ctr长期偏低,成为了推荐系统的新短板。

模型架构及主要贡献


针对base 短板,我们提出并设计了 Interest Transfer CTR model(named In_CTR briefly), 侧重CTR任务下异构序列的兴趣迁移挑战。既然商品兴趣不等于内容兴趣, 我们就在深度网络中对 兴趣的匹配程度 而不是 兴趣的直接表达 进行建模, 并利用 匹配程度会直接影响点击意愿 这一先验设想设计了辅助loss, 鼓励模型有所侧重的去学习, 最终取得了Offline GAUC+8.72%,Online uv_ctr +6.16% 的显著收益。

图2-1.In_CTR 模型架构

模型左侧是常规的设计范式, 我们的创新为右侧的红色框选模块,后续三个章节逐个介绍。


uni-coder 有效建模 异构序列


图2-2.uni-coder有效建模异构序列

我们参照文献unicoder-VL , 对送入encoder之前的异构序列作如图2-2所示的预处理。entity即异构序列中的一个元素,可以是商品, 此时side_info={cate,brand}; 也可以是内容, 此时side_info={id,cate,brand,封图宽高比,etc.}; 还可以是special token,如[sep]作分隔,此时没有side_info。

接着往上,是三层emb的element-wise加和。1) segment标识电商兴趣/内容兴趣两个不同的domain;2) context标识用户对商品的交互行为,如点击/收藏/加购物车/购买,内容序列都是点击,出于对齐考虑,加一个mock即可; 3) position标识交互次序,我们按时间排序。

提取兴趣的 匹配强度 而不是直接表达


我们对self-att模块的期望就是用它来捕捉序列内的相互依赖关系, 可以通过tensorboard 可视化来验证它的表现是否符合预期。可视化attention方阵可以得到一个灰度图, 元素(i,j)表示i作query,j作key时的attention_score(soft_max处理), 颜色越白表示权重越大。在搜索团队的工作中, 明确给出了他们学习收敛后得到的self-att可视化分布图, 以对角线为主, 兼有adaptive weight观感。在我们的In_Match模型中同样观测到了这样的对角线(见2-3左), 同In_Match取得的成功可以互相印证。但在ctr任务中,异构序列加入后,one-hot现象严重, 表现不理想(见2-3右)。

图2-3.异构序列的self-attention对比, 左): In_Match模型, 对角线为主, 兼有adaptive weight, 表现理想; 右): ctr模型,one-hot现象严重, 表现不理想(without 兴趣匹配强度模块)

失败之后我们转变方向, 不再执着于商品序列这一兴趣的直接表达, 转向兴趣的匹配强度建模。我们的破局思考是: 预估ctr, 某种程度上就是在预估待打分内容与用户意图(历史异构序列) 的匹配程度的高低与否,也即紧密与否。既然商品兴趣不等于内容兴趣,且二者不在同一语义空间, 我们就在深度网络中对 兴趣的匹配程度 而不是 兴趣的直接表达 进行建模, 体现出商品序列应有的贡献。改良后,获得了期望的self-att对角线观感。

兴趣强度的分布可以用直方图作可视化(图2-4,中间部分), 那么怎么样的分布会倾向于较高的ctr呢? 是整体偏高但平缓, 还是少数几个柱子鹤立鸡群的观感呢? 类比于图像特征的捕捉, 我们用CNN作后续的特征提取。

图2-4.兴趣匹配强度 完整设计

auxiliary loss 设计

验证了兴趣匹配强度建模的有效性后, 将其作为子模块迁回原有网络参与训练, 再次遗憾地发现attention可视化分布中的对角线再次消失, 离线指标也涨幅有限。

图2-5.添加辅助loss前, 兴趣匹配强度参与logits加和, 其值域跨度和分布形状皆不符预期, 体现不出异构序列的应有贡献

模型可能也会偷懒 , bias及prefer类特征规律性强, 容易学习, 就放弃了兴趣匹配子模块的学习。此时就要用 图2-1中In_CTR架构的loss处理方法, 在其参与logits加和的同时, 也为其独立出一个loss, 并分配合适的权重(实验中为0.65, 较为激进)。再次试验并观察logits分布, 符合预期。

文末小总与展望

用户行为序列是其兴趣与意图的原始表达,重要性等同于搜索场景下的query输入。商品行为作为异构序列,如何在跨domain的洋淘推荐中建模? 围绕这一挑战,我们创新性地提出了:

  1. In_Match,用序列生成的task训练decoder,抽取其顶层输出向量作内容召回,召回效果超越内容协同;

  2. In_CTR,将motivation由常规的序列兴趣的直接表达转换为序列兴趣的匹配程度,并根据这一先验设想设计了辅助loss,鼓励模型有所侧重地去学习,最终离在线指标上都有斩获。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值