近年来,无监督的深度神经网络在计算机视觉技术、自然语言处理和语音识别任务上都已经取得了很大的进步,而在信息检索的排序上却仍在原地踏步,没有太大的改进。其中的原因可能在于排序问题本身的复杂性,因为在没有监督信号的情况下,神经网络很难从查询内容和文档中获取信息。因此,我们在这篇文章中提出了使用“弱监督”来训练神经排序模型。也就是说,所有训练所需的标签都是机器自己获取的,不存在任何人工输入的标签。
为此,我们把一个“无监督”排序模型的输出结果,比如BM25,当做一个“弱监督”模型的信号来使用。接下来,我们会进一步基于“前馈神经网络”对一系列简单却十分高效的排序模型进行训练。我们还会考察它们在不同的训练场景下的效果,例如:使用不同的输入表征(密集/稀疏表征向量,或者是“嵌入”文字表征),分别训练“逐点模型”和“成对模型”。我们能够从无监督IR模型中轻易地获得“弱标记数据”,实验的结果反映,提前对大量的“弱标记数据”进行训练,对有监督的神经排序模型非常有益。
我们调查的三个主要问题:
问题一:单凭来自无监督IR模型的标签作为弱监督训练数据,比如BM25,有可能完成一个神经排序模型的训练吗?
问题二:在这样的情况下,什么样的输入表征和学习目标是最适合模型训练的?
问题三:弱监督的操作过程,尤其是在标记数据有限的情况下,能否优化有监督的学习模型?
排序的体系结构
我们对三种神经排序模型进行了尝试:
1、分数模型
这种架构实际上是一个预测“查询文档”组合的检索分数的逐点排序模型。专业地来说,这种架构的目标就是掌握一个“分数功能”,这一功能能够决定一个“查询文档”的检索分数。我们可以用线性回归图来大致地表示这个问题:
2、排序模型
与第一种“分数模型”相同的是,“排序模型”的目标也是掌握“分数功能”。但不同的是,“排序模型”并不是为了使分数搜索功能标准化。因此我们在“排序模型”的训练中使用了“双情境”。具体来说就是我们在训练中使用了两个参数相同的逐点模型。为了最大程度地降低损耗,我们更新了其中的参数:
在推导过程中,由于两个模型是完全一样的,我们只取了其中一个作为最终的分数功能模型,并且把经过训练的模型以逐点的方式使用。
3、试验排序模型
第三种排序架构的基础是一个包括训练和推导的“双情境”。这种模型是为了学习包含一个查询内容和两个文档(d1和d2)的“排序功能”而设计的。根据查询内容,模型会预测d1文档排名高于d2文档的可能性。这个问题可以用回归图大致表达:
输入表征
输入层表征能够把一个输入的“查询文档组合”用一个固定大小的向量表示出来,接着,这个固定大小的向量就会被输入至完全的连接层。
在实验中,我们对三种不同的输入层表征展开了研究:
1、密集向量表征
一个常规的密集向量表征涵盖了各种各样的输入“查询文档组合”的数据信息。我们还特别建立了一个包含BM25特征的密集向量表征,让网络在收到相同输入的时候,也能适应BM25公式中所描述的功能。
2、稀疏向量表征
现在,我们试着不去管那些仅包含聚合数据的、完全是特制的表征,让机器自己帮我们完成特征的提取。通过提取查询内容和文档中的词频向量,我们专门建立了一个“词袋”表征,并且将这三个向量的串联输入至网络中。
3、“嵌入”表征
前面两种输入表征最大的不足就在于,文字被当成了离散的单元。正因为如此,网络无法在语义上相似的文字中执行“软匹配”。在这一个输入表征中,我们依靠文字嵌入来达到一个更加强大的查询文档表征,一个能够跨越词法鸿沟的表征。
机器能够从训练数据中提取有识别力的信号,而这些输入表征决定了网络提取信号的能力,也决定了不同的网络推广行为。
不同的排序结构的组合,以及不同的输入表征都可以被纳入排名模型的改进方案。我们用了来自两个标准集——同质的新闻集(Robust)和一个大规模的异结构网络集(ClueWeb)——的超过六百万个查询和文档,来进行网络训练。我们的实验结果显示,如果我们采用了恰当的目标函数,并且让网络根据“弱监督数据”(实验排名模型+嵌入模型)来学习输入表征,我们的网络就能有非常出色的表现。
因为我们仅使用了BM25作为模型训练的监督,并且经过训练的模型甚至还超越了BM25,所以现在来说,模型的表现已经非常了不起了。
一方面,尽管完全的“词匹配”是检索和排序的一个重要特征,但它还不足以获得相关性的概念。另一方面,BM25仍是一个相对高效的文字匹配方法。
如何工作
我们向我们的神经网络提供的虽然只是一些弱标记的案例,但是我们成功地让网络超越了信号本身,并从不同的角度看到了这些案例中的相关性。因此,当“词匹配”无法正确指示相关性的时候,模型可以自己完成相关性的推导。举个例子:学习密集表征(比如“嵌入表征”)能帮助网络捕捉语义匹配,检测语义相关性;而BM25就无法做到这些。
关键信息:
从我们的“弱监督”模型训练实验中,我大致总结了一些关键信息:
主要内容:利用大量的无监督数据来推断“弱标签”,并把那些“弱标签”的弱信号用于有监督模型的学习。
定一个能够让你的模型远离弱监督数据缺陷的目标。
让机器自己决定采用哪种表征,并让它自己提取其中的特征。向机器人工输入特征,会扼杀模型的创造力!
如果输入的特征数据是经过设计的,那么模型的普遍性就很有可能会被削弱,你可能会面临“过度拟合”的问题。
假如你有足够多的训练数据,那么你的机器就能仅通过一个个本地的案例,轻松掌握全球范围内的信息。
如果你有足够的数据源,你可以学习与你的任务更加匹配的“嵌入”。通过不断的更新,“嵌入”与你的任务会更加匹配。但前提是你有足够多的数据源。
当你的模型中不存在表征学习时,神经网络中的非线性部分的用处不大。深度神经网络最重要的优越性在于它高效的表征学习的能力,当你的深度网络“深”到一定程度的时候,它的优越性就不起作用了。
本文采用「CC BY-SA 4.0 CN」协议转载自互联网、仅供学习交流,内容版权归原作者所有,如涉作品、版权和其他问题请给「我们」留言处理。