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