如何轻松和安全地构建的满足合规要求的智能产品,实现业务需求?4月26日,告诉你答案! 了解详情
写点什么

微信最新论文解读:基于内部 - 环境注意力网络的推荐多队列冷启动召回

  • 2020 年 5 月 24 日
  • 本文字数:3912 字

    阅读完需:约 13 分钟

微信最新论文解读:基于内部-环境注意力网络的推荐多队列冷启动召回

真实世界中的综合推荐系统(例如微信看一看)通常需要从上百万异质物品中进行推荐。直接在百万候选集上使用复杂的推荐算法,往往会引入难以承受的时间成本。因此,工业级综合推荐系统一般由召回(matching)和排序(ranking)两个模块组成。召回模块负责快速从百万级数据中检索出百级别物品候选,排序模块负责准确对这些召回来的物品候选排序,得到最后的推荐结果。由于推荐物品来源多种多样,特征也不尽相同,同时也为了兼顾多样性,召回部分通常会使用多队列召回(multi-channel matching)策略。然而,在现实系统中,综合推荐系统经常会引入新的数据源,这部分冷启动的召回通道在行为稀疏时往往表现较差。为了解决这些问题,作者提出一种 Internal and contextual attention network (ICAN)模型,通过加强多队列之间特征域(feature field)交互和环境信息,得到更好的(冷启动)召回效果。作者在微信看一看系统上进行了离线和在线实验,均获得显著提升。目前 ICAN 已部署与看一看线上召回系统。


模型背景与简介

综合推荐系统(例如微信看一看)能够综合不同来源(例如公众号、新闻源、网页)和不同媒体形态(例如文章、微博、长视频、短视频等)的物品进行联合推荐,为用户提供便利的一站式的信息获取服务。随着信息的指数级爆炸增长,真实世界的综合推荐系统通常需要从千百万异质物品中进行筛选和推荐。一些复杂的 user-item pair-wise 的推荐算法,如 DIN、DeepFM、AutoInt 等,需要穷尽所有候选集进行计算。然而,在百万千万级的数据下,哪怕接近线性时间的计算复杂度也是系统难以接受的。于是,真实推荐系统往往会划分为召回(matching)和排序(ranking)两个串行的模块。召回模块负责从百万级数据中快速检索出一个小的物品候选子集(通常是几百的规模),排序模块负责准确对这些召回来的物品候选排序,得到最后的推荐结果。同时,由于综合推荐的物品来源多种多样,物品属性和特征也不尽相同,在召回部分通常会使用多队列召回(multi-channel matching)策略处理不同来源的物品。这种召回-排序结构是现在大规模推荐系统的主流架构。图 1 给出了看一看场景中综合推荐的示例,包含文章、长视频、短视频三种召回队列(channel)。



图 1:微信看一看综合推荐示例


在现实系统中,综合推荐系统经常会引入新的数据源。微信看一看中较主要的信息来源和召回队列就超过了几十个。这部分冷启动的召回通道在建立初期,用户行为往往比较稀疏,基于用户行为的 CTR 预估模型表现较差。需要注意的是,和针对冷启动用户的推荐算法不同,冷启动召回队列(新信息源的召回队列)中冷启动的是物品和物品所拥有的特征本身。一个直观的方法是使用用户在其它队列上的点击等行为,预测用户在新信息源上物品的偏好,但是不同队列包含的特征域(feature field)可能不一样。不同信息源可能会有特征域上的种类差异,即使是相同特征域(如 tag/topic/category),特征含义也很可能不相同(不同数据源的 tag/topic/category 体系和粒度不同,难以进行直接对应)。模型需要学习到不同特征域之间的映射关系,但是很少有召回工作关注冷启动队列的问题。


在这篇论文中,作者想要提升推荐系统在多队列召回,特别是冷启动召回上的表现。作者提出一种 Internal and contextual attention network (ICAN)模型,通过加强多队列之间特征域交互和环境信息,得到更好的(冷启动)召回效果。作者基于微信看一看综合推荐系统,在离线和在线上均进行了 CTR 预估实验,并在多个指标上取得了最好结果。这个工作的贡献点如下:


1、这篇工作第一次强调了推荐系统多队列冷启动召回的任务。这项任务在学术界暂时没有太多关注,但是在工业级推荐系统中是一个对结果影响重大的实际难题。


2、作者提出了一个 Internal and contextual attention network (ICAN)模型,是第一次结合了跨队列特征域之间的交互信息进行召回的工作。


3、模型在离线和在线的召回指标上均获得显著提升,并且目前成功部署于微信看一看系统,服务千万用户。


模型结构

这篇论文目的是使用多队列之间的特征域交互,辅助推荐系统在多队列(冷启动)召回上的效果。图 2 给出了 ICAN 模型的整体架构。



图 2:ICAN 的整体模型架构


如图 2 所示,ICAN 模型首先将成熟队列和冷启动队列中的用户行为序列同时作为输入,并按照特征域把每个队列中的行为序列拆分成不同的特征域序列。然后,ICAN 通过 Contextual Attention Layer 抽取多队列特征域和环境相关的特征。接下来,ICAN 通过 Internal Attention Layer 中的 field-level self-attention 挖掘不同队列的不同特征域之间的交互信息。最后,模型融合用户行为、用户基本属性、推荐上下文信息以及用户社交属性信息等,参考 RecSys2016 的 Youtube 召回模型的训练方式,离线使用 softmax 基于 CTR 预估进行训练,在线使用类似基于 FAISS 的快速召回工具进行召回。这样,线上 ICAN 召回的时间复杂度就控制在 O(log(n))。模型的核心创新点在于针对多队列冷启动召回问题提出的基于特征域的跨队列信息交互。


具体地,在第一步,模型首先将成熟队列和冷启动队列中的用户行为序列同时作为输入。和传统的 session-based recommendation 不同,ICAN 把所有队列中的每个 item 向量按照其特征域数目拆分成 n 份,并根据特征域组成 n 个新的序列。例如在 article 队列中,每个 article 的特征域由文章的[ID, tag, category]三个特征域组成,那在 ICAN 的输入中,用户在 article 队列上的点击行为即分为 ID, tag, category 三个序列。每个特征域序列经过 encoder 得到特征域的向量。


第二步,作者使用 Contextual Attention Layer,抽取前述特征域向量中和当前队列的环境(contexts)相关的特征。这里的环境主要有两个因素,其一是当前召回所在的队列,其二是推荐的上下文环境(包括网络状况等因素)。模型通过注意力机制,获得了环境特化的特征域向量:



第三步,作者使用 Internal Attention Layer,让环境特化后不同队列下的不同特征域之间进行充分的特征交互。这里,作者使用了 field-level self-attention 模型,进行不同特征域之间的特征交互:



和传统 self-attention 不同,这里输入的不是 item 矩阵,而是 item 按特征域拆分,并在队列内进行序列聚合后的特征域矩阵。这是因为 ICAN 主要目的是学习到不同队列特征之间的交互信息。这样在冷启动队列中进行推荐时,本队列用户行为不足或本队列特征学习不够充分的情况下,可以借助其他队列的信息学习到用户在冷启动队列中的偏好。另外,在使用其它成熟队列点击进行训练时,模型也可以对冷启动队列的特征进行更新。


第四步,模型融合用户行为、用户基本属性、推荐上下文信息以及用户社交属性信息,通过 MLP 得到了(环境特化后的)用户向量。模型基于用户向量,使用 softmax 进行 CTR 预估。Loss 如下:



此 loss 认为和用户向量相似的物品向量更可能被点击。因此,在线上进行实时召回时,ICAN 只需要使用一次前馈神经网络即可获得用户向量,然后基于类似 FAISS 的快速召回工具进行 K 近邻召回即可,相似度使用用户向量和物品向量之间的余弦相似度。这样,线上召回的时间复杂度就控制在 O(log(n))内,能够在线快速处理千万级物品候选。


实验结果

作者在微信看一看上进行了离线和线上实验。由于是召回模型,离线指标上 ICAN 更加关注用户可能点击的物品是否被召回,并不在意点击的物品具体排在第几位。因此,在离线指标上,作者没有使用 AUC /MAP 这类排序指标,而是使用了 hit rate 作为指标。由于线上实际使用 top500 作为召回结果,作者主要考虑了 100,200,500 三种情况。结果如下:



图 3:离线召回实验结果


在多种指标下,ICAN 模型在成熟队列和冷启动队列上都得到了最佳的效果,其中在冷启动队列上提升更为显著。ICAN 的消融实验也说明了 Contextual Attention Layer 和 Internal Attention Layer 的有效性。线上实验结果也说明 ICAN 能够提升 CTR、list-wise CTR、阅读时长和平均点击类别数(多样性指标)等多项指标,显著提升了线上效果。


除此之外,作者还进行了两种 attention 的可视化。以图 4 为例,我们可以发现在冷启动队列(短视频队列)中进行召回时,长视频的 tag 特征域似乎起到了很大的作用,甚至高于短视频自己的 category/tag 特征域的作用权重。图 5 也说明在 internal attention 中,不同特征域之间存在一定的交互范式。这样的结果说明两点:(1)使用成熟队列信息辅助冷启动队列是很有必要的。(2)把队列信息从物品级拆分成特征域级是很有必要,因为不同队列的不同特征域之间交互模式不同。



图 4:Contextual Attention 的 heatmap



图 5:Internal Attention 的 heatmap


总结

本文提出了一个 ICAN 模型,使用多队列之间的特征域交互,辅助提升推荐系统在多队列(冷启动)召回上的效果。模型针对任务进行了特征域级别的拆分,使得不同队列之间的交互变得更为精细。ICAN 使用了直观的模型,在工业级大规模推荐数据集和线上系统中均得到了成功的验证。未来,更复杂细致的交互方式和与多任务学习/迁移学习的融合可能会是潜在的研究方向。


本文提出了一个 ICAN 模型,使用多队列之间的特征域交互,辅助提升推荐系统在多队列(冷启动)召回上的效果。模型针对任务进行了特征域级别的拆分,使得不同队列之间的交互变得更为精细。ICAN 使用了直观的模型,在工业级大规模推荐数据集和线上系统中均得到了成功的验证。未来,更复杂细致的交互方式和与多任务学习/迁移学习的融合可能会是潜在的研究方向。


本文基于 IJCAI-2020 论文《Internal and Contextual Attention Network for Cold-start Multi-channel Matching in Recommendation》,论文作者是来自腾讯微信的谢若冰、丘志杰、饶君、刘毅、张博和林乐宇研究员。


2020 年 5 月 24 日 00:001424

评论

发布
暂无评论
发现更多内容

物联网打工人必备:LiteOS Studio图形化调测能力

华为云开发者社区

互联网 LiteOS 打工人

阿里技术官亲荐“998页的应届生面试手册”看完才发现,原来求职也没那么难!

比伯

Java 程序员 面试 编程语言 计算机

软件测试(功能、接口、性能、自动化)详解

测试人生路

软件测试

倍频程与钢琴调式的距离

阿里云视频云

音频技术 音频

架构师训练营W10作业

Geek_f06ede

完全懵掉的电话面试

escray

面试 面经 七日更 十日谈

堪称完美!阿里架构师亲自手撕”Spring Boot实战笔记“用60个案例给你整的明明白白

比伯

Java 编程 程序员 架构 技术宅

秒杀系统设计的挑战和问题(转载)

jorden wang

anyRTC加持AI,打造下一代实时音视频引擎

anyRTC开发者

人工智能 android 音视频 WebRTC RTC

源码解析Synchronized同步方法的八种使用场景,收藏

小Q

Java 学习 架构 面试 多线程

源码输出纯净版SSM架构,收藏直接CV使用它不香吗?

小Q

Java 学习 编程 面试 ssm

区块链商城系统开发模式制作

BitQy交易所软件系统开发|BitQy交易所APP开发

必须清除互联网世界的毒瘤:网络谣言背后存在病态心理

石头IT视角

KKR四币连发挖矿系统软件APP开发

系统开发

PostgreSQL:您可能需要增加MAX_LOCKS_PER_TRANSACTION

PostgreSQLChina

数据库 postgresql 开源

还记得你的时间胶囊吗?

熊斌

个人成长 七日更

干货时间:聊聊DevOps下的技术系列之契约测试

华为云开发者社区

DevOps 测试 交互

一文带你了解传统手工特征的骨龄评估方法的发展历史

华为云开发者社区

方法 骨龄 评估

等不到明年金三银四了!五面滴滴之路,爆砍37K+16薪Offer

Java架构追梦

Java 学习 架构 面试 滴滴

App性能测试揭秘(Android篇)

移动研发平台EMAS

阿里云 软件测试 测试 性能测试 云性能测试

被阿里、腾讯、华为追捧为最牛逼的 Java 框架你知道是什么吗?

Java架构师迁哥

源码解析Synchronized同步方法的八种使用场景,收藏

996小迁

Java 源码 架构 面试 synchronized

大作业1

追风

架构师一期

带宽、延时、吞吐率、PPS 这些都是啥?

小林coding

Linux 操作系统 网络

SQL:我为什么慢你心里没数吗?

Java架构师迁哥

基于App SDK和API搭建无人自习室等无人场景

IoT云工坊

物联网 智慧琴房 24小时无人自习室 24小时自助游戏厅 共享办公室

5. 穿过拥挤的人潮,Spring已为你制作好高级赛道

YourBatman

Spring Framework 类型转换 Converter

测开之函数进阶· 第2篇《纯函数》

无个性不签名

测试开发

iOS 崩溃分析

ios 崩溃分析

微信最新论文解读:基于内部-环境注意力网络的推荐多队列冷启动召回_AI_谢若冰_InfoQ精选文章