深度学习在自然语言处理任务中非常成功,但在信息检索任务(如产品发现)中效果较差,主要原因是缺乏负训练样本。虽然容易训练模型理解“Fire HD 10”查询匹配同名产品,但教它识别“Fire HD 10保护套”和“Fire HD 10充电器”不匹配同一产品则更加困难,需要大量负样本。然而,为大型产品目录中的每个项目识别和标注负样本是一项巨大工程。
在计算语言学协会年会上,我们提出了一种通过自动生成负训练样本来训练基于深度学习的产品发现系统的新方法。实验表明,该方法比现有最佳方法性能提升16%,比商业产品发现系统常用方法提升62%。
我们的技术使用对抗学习,近年来在视觉图像生成系统中证明非常成功。在典型对抗学习系统中,合成数据的生成器和区分真实数据与合成数据的判别器一起训练。但在我们的案例中,系统不是试图识别合成样本,而是准确分类合成样本。这一差异使我们能够设计一种新的神经架构,使对抗学习更简单高效。
系统输入是客户查询和产品名称,输出是判断产品是否与查询匹配的良好结果。
对于这样的系统,正训练样本相对容易自动创建。输入“Fire HD 10”查询的许多购物者可能点击保护套和充电器链接,但更多可能点击设备本身链接。通过聚合多个客户查询的统计数据,自动化系统可以可靠地产生良好匹配的查询和产品示例。
负样本更难获取。客户有时会故意点击不匹配的项目(如查询“Fire HD 10”后点击保护套和充电器),而缺乏点击也不能保证查询和项目不匹配。
现有自然语言处理系统可以确定“望远镜”与“跑鞋”查询不匹配,但产品发现系统从如此明显不匹配的示例中学到的东西有限。我们的目标是开发一个生成器,自动产生更具挑战性的负样本,如产品“徒步鞋”与查询“跑鞋”不匹配。
在训练期间,我们向网络提供自动标记的正样本。基于随机选择,它将其中一些转换为负样本。生成器覆盖示例的一半(查询),并将其标签从“匹配”改为“不匹配”。
在对抗学习的典型应用中,生成器和判别器同时在竞争目标上训练,这使机器学习过程复杂化。但在我们的案例中,我们在训练期间简单地在目标之间切换。
此外,切换机制是网络内执行的一组简单算术操作,这意味着我们可以使用标准机器学习算法(反向传播)训练网络。
我们网络的另一个关键是分类层之前的注意力层。注意力层学会将分类器的注意力集中在查询和产品名称中对评估匹配特别重要的元素上。
例如,如果查询是“Fire HD 10保护套”,匹配产品是Fire HD 10保护套,注意力层将给词“保护套”比“Fire”更大的权重,因为“保护套”能更好地区分查询与其他与Fire平板相关的查询。
在实验中,我们将模型与其他四个模型比较,包括产品发现领域常用的梯度提升决策树,以及四年前提出的MatchPyramid模型(已被证明在匹配任务上显著优于其他模型)。
我们使用两个不同指标衡量性能,这两个指标都考虑了假阳性和假阴性:F1分数和精确召回曲线下面积(APR)。MatchPyramid是基线中表现最好的,但我们的模型在F1分数上超过它16%,在APR上超过8%。与梯度提升决策树相比,我们的模型在F1分数上改进62%,在APR上改进57%。
我们的注意力层为产品描述中每个术语(列标签)分配的查询术语(行标签)权重示意图。根据右侧图例,较浅颜色表示较高权重。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。