推荐系统论文阅读(35)——亚马逊:互补多样性商品召回算法

论文:

论文题目:P-Companion:多元化的原则性框架?互补产品?推荐》

地址:https://dl . ACM . org/doi/pdf/10.1145/3340531.3412732。

在上一篇文章中,我已经提到了商品的可替代性和互补性的关系。亚马逊的这篇文章重点讨论了如何在保持多样性的同时,利用好商品之间的互补关系。

互补产品推荐(心肺复苏术)旨在提供经常一起购买的商品的推荐,以满足人们的需求,是电子商务服务的重要组成部分。然而,现有的方法远非最佳。对于一个产品,如何推荐不同类型的互补产品是我们在这项工作中要解决的关键问题。

在我们之前的第34篇文章中提到,我们认为* * *和购买的产品是互补的,但是这里的文章提出共同购买的产品不一定是互补的。我们举个简单的例子。如果用户买了两种不同品牌的口红,当然这两种口红不是互补产品,但可以说是同类产品。如果用户买了手机和手机壳,那么手机壳就是手机的配套产品,反过来就不行了,因为用户不会因为先买了手机壳而找不到配套的手机。

更具体地说,请看下面的例子:

在图1中,我们展示了一个对比示例,该示例阐述了生成高质量“一起购买”推荐的要求。以网球拍为“查询产品”,我们对比了三组推荐列表。列表1包含其他三个类似的网球拍。清单2包含三个网球,清单3包含一个网球、一个球拍套和一个头带。当然,我们认为清单1通常更倾向于替代产品,不太可能在清单1中一起购买。虽然清单2和清单3都可以算是合理的推荐,但我们认为清单3是更好的选择,因为它提出了三种不同类型的产品* * *来更好地满足客户对网球的需求。这个例子表明,补充生产的理想推荐解决方案应该同时考虑相关性和多样性,以满足客户的需求。

在以前的工作中,我们会更倾向于对商品之间的相似性进行建模,如协同过滤或一些item2vec方法,但对商品之间的相似性进行建模遇到了以下挑战:

C1:互补关系不对称,互补推荐不仅仅基于相似性度量。例如,网球拍和头带在性格或形象特征上一点也不相似。而且SD卡可以是相机的补充产品,而不是相反。这些事实排除了大多数基于相似性的方法,需要使用不同的机制来建立互补关系的模型。?

C2:补充推荐需要考虑多样性。这些推荐通常是一组不同品类和功能的商品,可以满足顾客的需求。如图1所示,包含三类网球相关产品的多元化推荐列表优于只有一类推荐列表。

C3:补充建议在冷启动项目中受挫。换句话说,在电子商务领域,相似度推荐很难解决冷启动问题。

带着这些挑战,让我们看看亚马逊是如何解决这些问题的。

I:项目的集合

B ∈ I × I,代表从客户历史行为中收集到的商品对之间的三种关系(即* * *有购买,* * *有浏览和浏览后购买)。

c?表示商品I的类别特征(例如,产品类别、类型、标题和描述)

?,代表产品类型,即代表产品本身的功能特性。

推荐补充商品的问题表述如下:

给定商品类别特征C(包括标题、商品类型等。)和用户行为数据B作为输入,我们想学习推荐模型M,可以用来查询物品I,物品类别和多样性?条件下,m会先预测吗?不同的补充商品类型{},然后根据每个预测的补充商品类型生成?产品集{0}。

在* * *带浏览、* *带购买和浏览后购买的不同组合对比中,我们观察到只有* * *带购买记录中包含的产品对在MTurk上得分最高,比* * *带购买的未处理信号对高出30%,因此亚马逊利用这部分数据进行训练。

让我们来看看模型中一些符号的定义:

模型图:

这里采用的是GAT的方法,具体细节可以看GAT的这篇论文,这里就不详细介绍了。

其中,FFN是前馈神经网络,Z是注意得到的分数,Ni是邻居节点,它是训练时的正样本和负样本,Y定义为:

其中阳性样本y定义为:

阴性样品的y定义为:

的计算方法是:

f(。)是衡量学习的函数。是为了区分离我的距离,而不是边缘。上述优化的目的是强制和之间的距离小于?同时,让和之间的距离至少是?+ ?。

损失函数实际上是铰链损失。

这就是我们谈到如何解决多样性问题的地方,主要是根据查询项和这个项的类型,生成与这个项相关的多个类型。

给定查询项I和候选项j,我们有它们之间的类型对{},以及标签。本文使用编码器-解码器模型来建模:

首先将项目I的类别W映射到,然后通过度量学习对其进行学习。

其他符号定义请参考上表,此处不再赘述。这种优化的主要目标是使共同购买商品之间的类别嵌入更加相似。

这部分是整篇论文最关键的部分,不仅定义了如何通过测量学习来推荐补充商品,还定义了各种条件下的学习。

首先,我们选择几个与查询项目的类别嵌入相似的类别嵌入,然后我们将项目本身的嵌入映射到相应的类别。

这里和前面的度量学习方式一样,只是我们这里要优化的是我们映射的项目嵌入和候选项目j之间的距离的度量。

这部分主要是对3.2和3.3中的两个度量优化函数进行加权。加权系数为

这部分主要讲几个超级参数的设置,比如L=64,d=128等等。

并且,我们需要知道如何在模型的end-2-end学习之后进行预测,也就是如何生成候选项,这个我们在定义问题的时候已经说过了。从直观的角度来说,就是把王先生分成top-k个最接近的类别,然后用3.3中的方法在每个类别中生成候选项。具体来说:

我们现在有了。

你可以推荐它,找到最接近这个向量的东西。

每个类别都采用相同的方式,这样我们就可以生成包含多个类别的多样化推荐列表。