使用超图改进产品检索
通过用描述产品-产品关系的超图增强查询-产品图,召回率得分提高了 48% 以上。
在 WSDM 2023 会议上发表的一篇论文中,研究人员解决了信息检索中的一个核心问题。像帮助客户在商店中找到产品的检索引擎,通常依赖于将查询映射到产品的二部图。这些图基于客户行为构建:如果有足够多的客户执行相同查询后点击或购买了某产品,图中就会在查询和产品之间建立一条边。然后,**图神经网络(GNN)**可以处理该图,并预测对应于新查询的边。
这种方法存在两个缺点。一是商店中的大多数产品属于长尾商品,即很少被搜索,这意味着没有足够的相关数据来保证 GNN 训练的可靠性。相反,在处理长尾查询时,GNN 倾向于将它们与流行但可能无关的产品匹配,仅仅因为这些产品总体上具有高点击率和购买率。这种现象被称为非齐次混合。
超图:捕捉产品间关系
为了解决这两个问题,研究人员通过添加关于客户在同一在线购物会话中倾向于查看哪些产品的信息,来增强二部图。其核心思想是:了解哪些类型的产品相互关联,可以帮助 GNN 从高频查询泛化到低频查询。
为了捕捉产品关系的信息,该研究使用了超图,它是图结构的一种泛化形式。在普通图中,一条边恰好连接两个节点,而超图中的一条边(称为超边)可以连接多个节点。虽然其他信息检索方法也使用过产品相似性来提升性能,但使用超图对产品相似性进行建模,使得研究人员能够利用 GNN 进行预测,从而充分利用图表示中可用的附加结构。
在测试中,研究人员将提出的方法与仅在二部图上使用 GNN 的方法进行了比较,结果发现,加入超图后,结果的平均倒数排名提升了近 25%,召回率(衡量检索到的正确结果百分比)提升了超过 48%。
双通道架构
GNN 生成单个图节点的向量表示,或称嵌入,这些嵌入捕捉了其邻居节点的信息。这个过程是迭代的:第一次嵌入只捕捉与节点关联的对象(本例中是产品描述或查询语义)的信息。第二次嵌入将第一次嵌入与节点直接邻居的嵌入相结合。第三次嵌入将节点的邻域再向外扩展一跳,以此类推。大多数应用使用一跳或两跳嵌入。
超图的嵌入略微修改了这个过程。第一次迭代(如标准情况)单独嵌入每个项目节点。第二次迭代为每个超边的整体创建一个嵌入。然后,第三次迭代为每个节点生成一个嵌入,该嵌入综合考虑了节点自身的内容级嵌入以及其触及的所有超边的嵌入。
该模型的架构有两个通道:一个用于查询-项目二部图,另一个用于项目-项目超图。每个通道都输入到其自己的 GNN(一个图卷积网络)中,从而为每个节点生成一个嵌入。
在训练期间,一个注意力机制会学习每个通道产生的嵌入应获得多少权重。例如,一个具有少数几个流行关联产品的常见查询,可能由二部图的标准 GNN 嵌入很好地表示。相反,一个与几个不同查询关联的罕见购买产品,可能会从超图嵌入的更高权重中受益。
预训练提升性能
为了最大化模型预测的质量,研究人员还试验了两种不同的无监督预训练方法。
一种是对比学习方法,向 GNN 提供成对的训练样本。一些是正样本对,它们的嵌入应尽可能相似;一些是负样本对,它们的嵌入应尽可能不同。按照现有做法,研究人员通过随机删除源图的边或节点来生成正样本对,使生成的图相似但不完全相同。负样本对将源图与另一个随机图配对。研究人员将此过程扩展到超图,并确保两个通道的训练数据保持一致。例如,从一个通道输入中删除的节点也将从另一个通道的输入中删除。
研究人员还试验了 DropEdge 过程。在连续的训练周期中,使用同一张图略微不同的版本,随机丢弃少量边。这可以防止过拟合和过平滑,因为它鼓励 GNN 学习其输入的更抽象表示。
预训练显著提高了双通道模型和基线 GNN 的质量。但也增加了两者之间的差异。也就是说,该方法本身有时仅比基线模型有适度的改进。但经过预训练后,该方法比同样经过预训练的基线模型表现更出色,优势更大。
研究领域
搜索与信息检索
标签
图神经网络 (GNN) | WSDMFINISHED