42

常见的召回优化方式

 3 years ago
source link: https://mp.weixin.qq.com/s?__biz=MzIwMDIzNDI2Ng%3D%3D&%3Bmid=2247488386&%3Bidx=1&%3Bsn=9b4a3a64709621c59c8934d7306994a7
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

知乎:小雨姑娘

https://www.zhihu.com/people/xuechuanyu

题主之前参加了 KDDCUP2020,CIKM2019 等几个经典的推荐系统比赛,发现大部分优胜方案都采用了传统的 Item-CF 召回方式,在通过一些 trick 进行微调后同样可以取得甚至超过 embedding+faiss,Self-Attentive Sequnetial Model。这里总结了可以提高 item-CF 召回效果的几种方案,供大家参考。

1.基于时间维度的优化

1.1 时间权重优化

由于用户的兴趣变化较快,在召回时更改时间权重可以使推荐系统更加关注于用户的当前兴趣,其中在 KDD2020 比赛中前排大部分采用了以下策略 [1]:

即在计算两个商品相似度时,增加一个权重表示用户选择商品 i 与选择商品 j 的时间差。这个策略的核心思想是如果用户选择两个商品时的时间间隔越近,则两个商品的相关性更强。例如用户下单手机后又马上下单了手机壳,则手机壳和手机之间的权重更大,手机跟昨晚用户下单的马桶刷之间权重更低。

1.2 用户 session 优化

另一种更加直观的方法是根据时间把用户的评分分成几个 session,每个 session 中计算相似度:

即根据时间把用户的评分分为 T 个阶段(通常是 30 分钟或一两个小时),分阶段计算相似度最终求和。在阿里巴巴 18 年 KDD 论文 [2] 中有使用该方法,如下图 (a) 所示

3iMFbma.jpg!mobile

其次在 KDD2020 比赛中也听说前排队伍使用该方法极大地提高了召回效果。该方法的核心思想是认为用户在时间段内的行为具有一定的关联,举个例子你的女朋友买口红一般会短时间内只看看很多口红,买粉底会短时间内只看粉底。

2.基于序列次序的优化

2.1 序列次序权重优化

基于序列次序权重的方法与时间权重优化的思路类似,策略是为用户行为序列中临近的商品设置更高的权重:

其中是用户 u 对商品 i 在行为序列中的位次。核心思想是用户序列中更近的商品的关联性更高。[1]

2.2 基于序列的单向相似性优化

这种方法假定用户的行为具有一定的序列意义,例如用户在购买手机后可能会追加购买相应型号的手机壳(正次序),但用户购买手机壳后却往往不会购买手机(反次序)。其中一种方法是为反次序增加一个衰减因子:

在最极端的情况下使得 lambda 取 0,则代表仅考虑正次序相似度。

3.基于用户/商品热度的优化

比较经典的一种基于用户商品热度的优化方法来源于 TF-IDF 算法 [3]:

其中,是全体用户集合,是对商品 i 感兴趣的用户集合;代表用户 u 对相似性的贡献度,用户 u 的行为数量越多,则它的贡献度越低。

策略的核心思想是兴趣广泛的用户的行为更难体现偏好,他的行为纪录多种多样,随机选出两个商品具有较高关联性的概率较低。

另一种基于用户商品热度优化的方法是,降低那些流行商品的相似性 [4]:

此方法来源于关联规则分析中的置信度公式。核心思想是流行的商品被买的多,也就更有机会与其他商品计算相似度,因此要降低他们的相似度。

4.对于 Match 的优化

以上方法都是作用在相似度计算环节,也就是召回的 Item-to-Item 环节,而对于 Match 的优化聚焦于召回的 User-to-Item 环节。

eyeiMny.jpg!mobile

与上面的次序权重和时间权重类似,当通过用户历史行为进行 matching 时,应该让用户临近的行为具有更高的权重:

其中代表用户 u 历史行为 i 出现的时间。

5.Swing 召回[5]

swing 指的是秋千,例如用户 u 和用户 v,都购买过同一件商品 i,则三者之间会构成一个类似秋千的关系图。若用户 u 和用户 v 之间除了购买过 i 外,还购买过商品 j,则认为两件商品是具有某种程度上的相似的。也就是说,商品与商品之间的相似关系,是通过用户关系来传递的。为了衡量物品 i 和 j 的相似性,考察都购买了物品 i 和 j 的用户 u 和 v, 如果这两个用户共同购买的物品越少,则物品 i 和 j 的相似性越高。

6.NCF 召回[6]

这篇文章发表在《World Wide Web》(2017)上,论文链接 https://arxiv.org/pdf/1708.05031.pdf。

文章提出,神经网络已经被证明可以近似模拟任意连续函数 [1],并且深度学习在很多领域的成功应用也证明了其有效性。而一些近期的研究也将深度学习应用到了推荐中,然而很多工作都是将深度学习作为辅助工作,比如提取文本和图像的特征,而对于推荐的关键特征处理,user 特征和 item 特征的交互,仍使用 MF 的思想。作者利用深度学习来对 user 和 item 特征进行建模,使模型具有非线性表达能力。具体来说使用多层感知机来学习 user-item 交互函数。

参考

  1. KDD2020-baseline

  2. SDM

  3. Using TF-IDF to Determine Word Relevance in Document Queries

  4. CIKM2019 冠军方案

  5. 原文链接 Swing-CSDN

  6. NCF 参考 - CSDN


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK