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

本文探讨了利用超图增强查询-商品二分图的方法,通过捕捉商品间关联关系提升检索性能。实验显示该方法使平均倒数排名提升近25%,召回率提高超过48%,特别改善了长尾查询和冷门商品的匹配效果。

使用超图改进商品检索

通过添加描述商品-商品关系的超图来增强查询-商品图,使召回率得分提高超过48%。

在帮助客户在某中心商店查找商品的信息检索引擎中,通常依赖于将查询映射到商品的二分图。这些图通常基于客户行为:如果执行相同查询的足够客户点击商品链接或购买该商品,图中将包含查询与商品之间的边。然后,图神经网络(GNN)可以处理该图并预测与新查询对应的边。

这种方法有两个缺点。一是大多数商品属于很少被搜索的长尾物品,这意味着它们没有足够的相关数据来使GNN训练可靠。相反,在处理长尾查询时,GNN倾向于将它们与流行但可能不相关的商品匹配,仅仅因为这些商品整体点击和购买率高。这种现象被称为非 assortative 混合。

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

为了捕捉商品关系信息,使用了超图,即图结构的泛化;在普通图中一条边恰好连接两个节点,而在超图中一条边可以连接多个节点。其他信息检索方法已使用商品相似性来提高性能,但用超图建模商品相似性允许使用GNN进行预测,因此可以利用图表示中可用的附加结构。

在测试中,将该方法与仅使用二分图上的GNN的方法进行比较,发现添加超图使结果的平均倒数排名(对正确答案在排名列表中越靠前赋予越高分数)提高了近25%,召回率(衡量检索到的正确答案百分比)提高了超过48%。

双通道架构

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

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

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

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

为了最大化模型预测质量,还尝试了两种不同的无监督预训练方法。一种是对比学习方法,其中GNN被输入训练示例对。有些是正对,其嵌入应尽可能相似;有些是负对,其嵌入应尽可能不同。

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

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

预训练显著提高了双通道模型和基线GNN的质量。但也增加了两者之间的差异。也就是说,该方法本身有时仅产生相对于基线模型的 modest 改进。但带有预训练的该方法比带有预训练的基线模型表现更好,优势更大。

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