近年来,无监督的深度神经网络在计算机视觉技术、自然语言处理和语音识别任务上都已经取得了很大的进步,而在信息检索的排序上却仍在原地踏步,没有太大的改进。 其中的原因可能在于排序问题本身的复杂性,因为在没有监督信号的情况下,神经网络很难从查询内容和文档中获取信息。因此,我们在这篇文章中提出了使用“弱监督”来训练神经排序模型。也就是说,所有训练所需的标签都是机器自己获取的,不存在任何人工输入的标签。 为此,我们把一个“无监督”排序模型的输出结果,比如BM25,当做一个“弱监督”模型的信号来使用。 接下来,我们会进一步基于“前馈神经网络”对一系列简单却十分高效的排序模型进行训练。我们还会考察它们在不同的训练场景下的效果,例如:使用不同的输入表征(密集/稀疏表征向量,或者是“嵌入”文字表征),分别训练“逐点模型”和“成对模型”。 我们能够从无监督IR模型中轻易地获得“弱标记数据”,实验的结果反映,提前对大量的“弱标记数据”进行训练,对有监督的神经排序模型非常有益。 我们调查的三个主要问题: 问题一:单凭来自无监督IR模型的标签作为弱监督训练数据,比如BM25,有可能完成一个神经排序模型的训练吗? 问题二:在这样的情况下,什么样的输入表征和学习目标是最适合模型训练的? 问题三:弱监督的操作过程,尤其是在标记数据有限的情况下,能否优化有监督的学习模型? 排序的体系结构 我们对三种神经排序模型进行了尝试: 1、分数模型 这种架构实际上是一个预测“查询文档”组合的检索分数的逐点排序模型。专业地来说,这种架构的目标就是掌握一个“分数功能”,这一功能能够决定一个“查询文档”的检索分数。我们可以用线性回归图来大致地表示这个问题:
2、排序模型 与第一种“分数模型”相同的是,“排序模型”的目标也是掌握“分数功能”。但不同的是,“排序模型”并不是为了使分数搜索功能标准化。因此我们在“排序模型”的训练中使用了“双情境”。 具体来说就是我们在训练中使用了两个参数相同的逐点模型。为了最大程度地降低损耗,我们更新了其中的参数:
在推导过程中,由于两个模型是完全一样的,我们只取了其中一个作为最终的分数功能模型,并且把经过训练的模型以逐点的方式使用。 3、试验排序模型 第三种排序架构的基础是一个包括训练和推导的“双情境”。这种模型是为了学习包含一个查询内容和两个文档(d1和d2)的“排序功能”而设计的。根据查询内容,模型会预测d1文档排名高于d2文档的可能性。这个问题可以用回归图大致表达:
输入表征 输入层表征能够把一个输入的“查询文档组合”用一个固定大小的向量表示出来,接着,这个固定大小的向量就会被输入至完全的连接层。 在实验中,我们对三种不同的输入层表征展开了研究: 1、密集向量表征 一个常规的密集向量表征涵盖了各种各样的输入“查询文档组合”的数据信息。我们还特别建立了一个包含BM25特征的密集向量表征,让网络在收到相同输入的时候,也能适应BM25公式中所描述的功能。 2、稀疏向量表征 现在,我们试着不去管那些仅包含聚合数据的、完全是特制的表征,让机器自己帮我们完成特征的提取。通过提取查询内容和文档中的词频向量,我们专门建立了一个“词袋”表征,并且将这三个向量的串联输入至网络中。 3、“嵌入”表征 前面两种输入表征最大的不足就在于,文字被当成了离散的单元。正因为如此,网络无法在语义上相似的文字中执行“软匹配”。在这一个输入表征中,我们依靠文字嵌入来达到一个更加强大的查询文档表征,一个能够跨越词法鸿沟的表征。 机器能够从训练数据中提取有识别力的信号,而这些输入表征决定了网络提取信号的能力,也决定了不同的网络推广行为。 (责任编辑:本港台直播) |