-->

AI内参_31_030_ACL_2018论文精读什么是端到端的语义哈希

你好,我是洪亮杰。

今天我和你分享的主题是ACL二零一八论文精读。

什么是端到端的语义哈希?今天我们来看今年ACL大会的一篇最佳论文提名,题目是NASH.面对生成语义哈希的端到端神经架构,先来简单介绍一下论文的作者群。

我着重介绍三位第一作者沈丁涵是杜克大学计算机科学系的博士生,他已经发表了多篇自然语言处理和机器学习相关的论文,并且在NEC实验室和微软研究院都实习过论文的共同第一作者。

苏秦亮目前是中山大学数据科学与计算机学院的副教授。

他在香港大学取得博士学位,之后,曾在杜克大学从事博士后研究工作。

作者中的劳伦斯,卡林是杜克大学教授,卡林是机器学习的权威,也是沈丁涵的导师。

在很多的应用中,我们都需要根据一个已有的文档表达和一个文档库,找到最相近的或者说最类似的文档。

这经常被叫做相似查找,或者最近零查找。

在推荐系统、信息检索、图片检索等领域都有非常广泛的应用。

语义哈希被认为是解决离似查找的一个重要并且行之有效的方法。

简单来说,语义哈希要做的就是把文档表达为离散的,也就是二元的向量。

这些向量保留了文档在原始空间中的相似关系,因此常常被认为是带有语义的哈希过程,也就是语义哈希这个名字的来历。

当我们把文档转换为语义哈希空间之后,文档之间相似度的计算就变成了利用汉名距离来计算离散向量之间的距离。

在当下的计算机体系架构中,上百万文档之间的汉名距离都可以在几毫秒中完成计算。

因此,我们可以看到,语义哈希的一个优势就是计算快捷,并且保持了原始空间的语义信息。

那么看似这么有优势的语义哈希有没有什么劣势呢?虽然已经有相当多的研究针对文字数据产生哈希,但是这些现有的方法都有一些明显的问题。

其中最紧要的一个问题就是这些方法大多都需要两个阶段。

具体是哪些方法呢?我把这些方法归纳为两种思路。

第一种思路,我们首先需要在无监督的条件下学习文档的二元哈希。

然后我们需要训练l格二元分类器,来预测l格二元位的过希值。

这个步骤是监督学习过程。

第二种思路,我们首先针对文档学习连续的表达向量,然后在测试阶段,再把连续值进行二元离散化。

很明显,不管是哪一种思路,这种两个步骤的方法都不可避免的会仅仅得到次优的结果。

这是因为两个步骤的优化流程是脱节的,而且再从连续的表达向量到二元离散化的过程中,往往利用的是经验法则,因此语义信息可能被丢失。

基于这些问题,这篇论文提出了端到端的语义哈希训练过程。

作者们认为一个阶段就可以得到完整哈希值的研究工作。

这篇文章是第一个。

在此之上,作者们利用了最新的NVI框架,也就是神经化的变分,推断来学习文档的二元编码,在无监督和监督环境下都取得了不错的结果。

这篇论文的另一个贡献,就是在提出的方法和比率损失理论之间建立了联系。

在这个联系的基础上,作者们展示了如何在模型的训练过程中注入数据相关的噪音,来达到更好的效果。

下面我们来聊聊论文的核心方法。

作者们首先把从文档生成语义哈希看作一种编码和解码的流程。

文档的二元哈希向量则被看成了表达文档的一种隐变量。

也就是说,作者们认为,文档的哈希向量是从文档的特性产生的一组隐变量,这也被认为是一种编码的过程。

是从文档的特性向量到哈希向量的编码。

在过去的模型中,编码过程是被反复关注的,但是解码过程则很少有模型去直接建模。

所谓的解码过程,就是从已经产生的中希向量转换成为文档的特性,向量的过程。

也就是说,我们希望能够重新从哈希向量中生成原始的数据,对原始数据和中间隐变量的编码过程统一进行建模,是当前神经网络生成式模型的一种标准方法。

在这里,编码和解码都各自有不同的神经网络,用于表达相应的条件概率分布。

具体来说,数据的原始信息x首先经过一个多层感知网,然后再变换成为二元的中间变量。

Z这时候c其实就是我们需要得到的哈希向量了。

只不过在提出的模型中还有第二个部分,那就是从z到x的一个重现。

也就是我们刚才提到的利用哈希来重构数据。

很明显,我们希望重构的x和原始的x之间要非常相似,也就是说距离最小。

作者们发现,从数据中学习一个二元编码是信息论中典型的有损源编码问题。

因此,语义哈希其实也可以被看作是一个比率损失平衡问题。

什么意思呢?就是说我们希望用较少的比率来对信息进行编码,同时又希望从编码中重构的数据能够和原始的数据尽量相近。

很明显,这两者有一点鱼与熊掌不可兼得的意思,也就是这两者需要一个平衡才能达到最优。

把重写模型的目标、函数定位、比率、损失平衡。

通过这种形式,作者们意识到模型中的从编码到重构数据的条件分布,也就是一个高斯分布中的方差值,其实控制了这个平衡的关系。

那么就需要针对不同的文档对这个方差值进行调整,从而达到最优的编码效果。

同时,又是比率损失平衡的作者们并没有采用去优化这个方差值的办法,而是在一个固定的方差值周围加入一些随其噪声,从而在实际实验中收到了不错的效果。

那论文的实验结果到底是怎样的呢?作者们利用了三个数据集进行实验,所有的数据集都首先转换,成为TFIDF的形式。

作者们把提出的方法和其他的五种基本方法进行了比较。

从总体上来说,文章提出的方法在没有随机噪声的情况下,已经比其他五种方法要好得多。

加入随机噪声之后,模型就有了更好的表现力。

同时,作者还展示了学到的二元哈希值,的确能够保持语义信息相同文本类别的文档。

他们的哈希值非常类似,也就是我们之前说过的,他们之间的汉名距离很近。

今天我为你讲了今年ACL的一篇最佳论文提名。

至此,我们关于ACL二零一八的分享就告一段落,一起来回顾一下要点。

第一,这篇文章针对语义哈希产生过程的劣势,提出了端到端的语义哈希训练过程。

第二,论文的核心方法是把文档生成语义哈希看作是一种编码和解码的流程,进一步发现语义哈希其实也可以被看作是一个比率损失平衡问题。

第三,论文取得了不错的实验效果。

最后给你留一个思考题,在现实中利用语义哈希有没有什么障碍?比如要在推荐系统中做语义哈希,最大的挑战会是什么?欢迎你给我留言,和我一起讨论。