AI实时推荐导读
Look-alike算法是一种经典的广告推荐算法,具备定向能力强、用户扩展精准等优点。本文针对微信“看一看”推荐场景对传统的Look-alike算法进行了改进,使其更适合高时效性的资讯推荐系统。论文题为《基于实时注意力机制的Look-alike模型在推荐系统中的应用》,已被KDD 2019接收。
更多优质内容请关注微信公众号“AI实时推荐”(ID:AI-realtime)
微信“看一看”面向所有微信用户,每天有数百万新闻、视频和公众号文章通过个性化推荐系统进行分发。在微信“看一看”中,各种深度学习算法被广泛应用在推荐系统的各个环节。由于新闻资讯、运营专题和小众文章往往因为缺少历史行为或处于长尾状态而导致曝光效率不高,我们提出了RALM模型以解决这些问题。
目前,深度学习已经在推荐领域广泛应用,如YouTube DNN/WND/DeepFM等模型在个性化召回和点击率排序方面取得了不错的效果,但在某些场景下仍然存在覆盖率不足的问题。对于传统的推荐模型而言,物品的历史行为特征对其点击率影响较大,这也导致推荐结果偏向热门内容。因此,长尾内容的优质内容可能得不到有效推广。
要解决这个问题,我们可以考虑改进传统推荐模型的建模思路: 1. 获取样本:用户、物品和标签。例如,标签可以是点击与否(0/1)。 2. 解析特征:直接使用行为样本信息会导致泛化性差,因此需要引入用户画像、语义信息、统计信息等。 3. 训练权重:拟合样本,学习各特征权重。
可以看出,从步骤1到步骤2存在信息损失,尤其是对于物品的历史行为信息缺乏全面表示。
综上所述,我们需要一个能精准建模物品历史行为的模型。Look-alike模型在广告领域非常流行,其核心思想是根据物品的历史行为锁定一批种子用户,然后通过模型寻找与种子用户相似的人群,为这些人推荐该物品。
由于Look-alike模型充分利用了物品的所有行为信息,在发现长尾内容受众方面具有独特优势。然而,与广告系统相比,资讯推荐系统有以下特点: - 内容时效性强:一条新闻的生命期通常不超过一天。 - 候选集更新频繁:一天内可能有几十万甚至上百万条新内容出现。
传统的广告Look-alike模型包括基于相似度的方法(如LSH/user embedding)和基于回归的方法(如LR/xgboost/MLP),虽然在广告系统中得到了验证,但不太适合资讯推荐。这些模型往往需要针对每个物品训练一个模型,这在高时效性和高频更新的资讯推荐系统中难以接受。
因此,我们希望找到一个模型: - 实现实时扩展用户,无需更新模型,使资讯第一时间触达受众。 - 保证推荐的准确性和多样性。 - 支持在线预测。
基于上述需求,我们提出了RALM(实时注意力机制Look-alike模型),它通过用户表示学习来表达用户的兴趣形状,通过Look-alike学习来学习种子用户群体信息及目标用户与种子用户群体的相似性,从而实现高效、实时的用户扩展和内容触达。
用户表示学习的目标是学习用户的高级表示,目的是对复杂的多域低级特征进行抽象,尽可能全面地表达用户在系统中的状态,以便后续模型使用。我们改进了YouTube DNN模型,通过点击样本训练模型,取最后一层隐层作为用户行为嵌入,供后续使用。
从用户表示学习得到用户嵌入后,将其作为用户特征,学习种子用户到目标用户的关系,即用户-用户模型。
模型结构 - 左边称为“种子塔”,以种子用户的嵌入作为输入,经过空间转换(全连接+pReLU),然后分别经过自注意力单元和生产注意力单元,池化后输入向量。 - 右边结构称为“目标塔”,目标用户嵌入输入后经过空间转换(与种子塔共享参数),直接与左侧向量计算余弦相似度。
局部注意力 为了计算种子用户群体和目标用户的相似度,我们首先需要将多个用户向量池化为一个。平均池化方式会导致结果偏向大众兴趣,而局部注意力单元则激活种子用户群体的部分兴趣点,学习到与目标用户紧密关联的用户群体表达方式。
全局注意力 除了个性化信息,用户群体还有共性的、与自身组成相关的全局信息。因此我们引入全局注意力单元来捕捉这部分群体信息。
损失函数 RALM是一个多分类任务(目标用户属于哪个种子用户群体),我们采用负采样方法采多正多反(点击物品的种子用户作为正例,随机采负例),使用多组交叉熵作为模型损失函数。
RALM模型框架现已部署在微信“看一看”,整个流程如下:
离线训练 - 包括用户表示学习和Look-alike学习,最终输出Look-alike模型参数和用户嵌入。
在线异步处理 - 主要是针对需要快速更新的数据进行准实时更新和计算,节约线上请求耗时。包括拉取用户点击日志,更新线上候选集物品的种子用户,估算局部注意力;计算K-means聚类中心。
在线服务 - 首先拉取当前请求用户的嵌入,然后遍历候选集物品,分别得到各物品的种子用户嵌入,计算局部和全局注意力(已估算),加权得到最终的相似度。
特征 在RALM中,我们用用户特征来表示物品,取代物品的语义、ID、统计类特征,这样可以获得物品完整的历史行为表达,对缺乏丰富统计特征的物品更加友好。
模型调优 Look-alike学习的模型简单,输入的用户特征只有连续特征,容易受到用户表示模型的影响。我们通过共享全连接层参数并加入dropout,使模型结构更简单,一定程度上避免了过拟合。此外,我们计划引入堆叠的思想,将不同学习目标的其他用户表示嵌入concat作为输入特征,共同训练。
冷启动曝光 尽管RALM计算相似度不需要太多种子用户,但在物品首次投放时(种子用户为零),我们仍需对多个物品进行初始曝光以获得种子用户。我们使用语义特征与用户画像通过简单的MLP预估点击率作为曝光策略,积累足够量(100以上)种子用户后即可进入RALM的正常预测流程。
RALM实现了实时扩展用户的Look-alike算法,通过用户表示学习和Look-alike学习捕捉种子用户群体的局部和全局信息,学到了用户群体与目标用户的相似度表示,更好地发掘了长尾内容的受众用户。通过离线评估和线上A/B测试,RALM在曝光、点击率、多样性等方面均取得了更好的效果。
附录是RALM论文,欢迎大家交流和指正。