超图技术提升产品检索效果

本文介绍利用超图增强查询-产品二分图的方法,通过建模产品间关系解决长尾查询问题。该方法使召回率提升48%,平均倒数排名提升25%,采用双通道架构结合注意力机制优化节点嵌入表示。

使用超图改进产品检索

在ACM网络搜索与数据挖掘会议(WSDM)上发表的论文中,通过增强二分查询-产品图的信息来解决这两个问题,这些信息涉及客户在同一在线购物会话中倾向于查看哪些产品。其理念是,了解哪些类型的产品彼此相关可以帮助图神经网络从高频查询泛化到低频查询。

为了捕获产品关系信息,我们使用超图——图结构的泛化;普通图中的边恰好连接两个节点,而超图中的边可以连接多个节点。其他信息检索方法已使用产品相似性来提高性能,但用超图建模产品相似性使我们能够使用图神经网络进行预测,从而可以利用数据图表示中可用的附加结构。

在测试中,我们将我们的方法与仅使用二分图上的图神经网络的方法进行了比较,发现添加超图将结果的均值倒数排名(正确答案越接近排名列表顶部得分越高)提高了近25%,召回率(衡量检索到的正确答案的百分比)提高了48%以上。

双通道架构

图神经网络生成单个图节点的向量表示或嵌入,捕获其邻居信息。该过程是迭代的:第一次嵌入仅捕获与节点关联的对象信息——在我们的案例中,是产品描述或查询语义。第二次嵌入将第一次嵌入与节点的直接邻居的嵌入相结合;第三次嵌入将节点的邻域扩展一跳;依此类推。大多数应用使用一跳或两跳嵌入。

超图的嵌入稍微修改了这个过程。第一次迭代,与标准情况一样,单独嵌入每个项目节点。第二次迭代为每个超边的整体创建嵌入。然后,第三次迭代为每个节点生成一个嵌入,该嵌入考虑了其自身的内容级嵌入和它所接触的所有超边的嵌入。

我们的模型架构有两个通道,一个用于查询-项目二分图,一个用于项目-项目超图。每个通道传递到其自己的图神经网络(图卷积网络),产生每个节点的嵌入。

在训练期间,注意力机制学习给予每个通道产生的嵌入多少权重。例如,具有几个热门关联产品的常见查询,可能通过二分图的标准图神经网络嵌入很好地表示。相比之下,与几个不同查询关联的很少购买的商品,可能受益于超图嵌入的更大权重。

为了最大化模型预测的质量,我们还尝试了两种不同的无监督预训练方法。一种是对比学习方法,其中图神经网络被输入成对的训练样本。有些是正对,其嵌入应尽可能相似;有些是负对,其嵌入应尽可能不同。

按照现有实践,我们通过随机删除源图的边或节点来产生正对,因此生成的图相似但不相同。负对将源图与不同的随机图配对。我们将此过程扩展到超图,并确保两个通道训练数据之间的一致性;例如,从一个通道输入中删除的节点也会从另一个通道中删除。

我们还尝试了DropEdge,一种在连续训练周期中使用同一图的略微不同版本的程序,随机丢弃一些边。这防止过拟合和过平滑,因为它鼓励图神经网络学习其输入的更抽象表示。

预训练显著提高了我们的双通道模型和基线图神经网络的质量。但它也增加了两者之间的差异。也就是说,我们的方法本身有时仅比基线模型有适度的改进。但我们的预训练方法比基线模型的预训练方法表现更好,优势更大。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计