aoa是什么检查,aoa是什么意思的缩写

  

  基于自然语言的搜索是一种无处不在的技术――搜索网页,或者产品目录,或者选择一个机器人来帮助客户代表,或者在一堆法律语料库中找到你的法律问题的答案,或者找到符合特定技能的简历,等等。跨模式、个性化、对话式搜索体验成功的关键在于解决核心查询文档匹配问题的能力。   

  

     

  

  核心问题:对我们大多数人来说是非常熟悉和相关的。给定一大组文档D,我们问一个查询Q,希望返回与D最相关的子集,Q是一个(短的)自然语言句子。文档是部分结构化的,更像深度较低的JSON字典——它包含几个字段f,每个字段都包含文本。   

  

  例如,如果D包含网页,字段F包括页面标题(T)、正文(B)、URL(U)等。如果D对应电商目录,产品项包含字段:标题(T)、描述(D)、类别C等。   

  

  例如:查询“丈夫的蓝色衬衫”以匹配男士休闲/正式衬衫,其中颜色区域是蓝色(实际上,有两种变体天蓝色和深蓝色)。现在,想想如何手动解决这个匹配问题。   

  

     

  

  这是一个相当复杂的问题——在大多数情况下,Q中的单词和D中的文本字段可能并不完全匹配(老公vs男人),所以我们必须理解Q和D中单词的语义,我们必须避免查询中常见的无关单词(blouses | blue jeans)。最后,我们希望在几百毫秒内从数百万个产品中检索相关文档。   

  

  

解决句子相似性问题

  

  

     

  

  经典的解决方案TF-IDF是基于将Q(或F)转换为大型词集上的one-hot-like向量。每个元素是Q(或F)中每个词的频率分数,非常频繁的词的计数减少。然后匹配两个向量的相似度=q和f. TF-IDF是一个非常简单而强大的技术,但是(由于它的单一性)它没有考虑到微小的句法变化―― man vs men的,active vs actively,t恤vs衬衫,蓝月亮vs蓝月亮。为了解决这个问题,我们已经有了一套标记、词干和表单技术,揭示了核心/根可能造成的信息丢失。   

  

  不幸的是,这还不够。在现实环境中,我们也希望电脑与笔记本、椅子、座椅与冰箱、三星相匹配。没有纯粹的语法方法来检测这些匹配(添加上下文相关的同义词相当困难)。在某种程度上,我们需要matcher来理解这些词。   

  

  幸运的是,我们现在有了另一个密集的词库,我们可以使用它们――这些都是压缩的单词代码,它们的所有维度都被理解为捕捉语义、类比和子词模式。比如“电脑”“笔记本电脑”的词向量就和“电脑”“冰箱”的词向量很像。现在,我们可以把Q(类似于F)的每个单词转换成一个向量,把它们组合成一个句子向量,或者在上面写更复杂的匹配规则。然而,我们可以做得更好――使用深度神经网络来解决我们的匹配任务。   

  

  近年来,由于各种公共任务和竞赛,SemEval、SNLI和Buffer-Y-围绕各种语义分析问题,包括文本相似度和问答,在语义学习的句子相似度方面取得了很大进展。   

  

     

  

  该图显示了一种流行的组合相似性技术。这种方法学习将句子Q和D独立编码成单片向量(通常使用双LSTM),然后学习使用几个全连接(FC)层来匹配这些向量。可以把双LSTM想象成一个包含两个for循环的盒子,一个从左到右扫描,另一个从右到左扫描,在扫描过程中积累语句的含义。   

  

     

  

  了解双向RNN   

  

  代表编码计算的网络可以获得更高级的短语和句子的意义。此外,因为我们分别对Q和D进行编码(例如,e_q和e_d),所以我们可以重用该编码,例如,使用e_q将Q与另一个文档D’进行匹配。然而,构建一个完整的语义编码会导致早期摘要问题:其中关于单个单词(和短语)的信息在编码中丢失。现在,如果查询和文档有任何共同的词,就很难用折叠句子编码器来推断句法相似性。   

  

  例:假设我们要用折叠语句来回答这些问题。   

  

  Q :哪个国家的名字是“赤道”的意思?   

  

  预期答案:厄瓜多尔   

  

  以下句子都是答案的候选,因为两者语义相近。   

  

  离赤道最近的国家是秘鲁。   

  

  赤道穿过厄瓜多尔首都基多的北部,这   

国家得名于这个半球的十字路口。

  

然而,第一个是不匹配的因为它忽略了一个事实,这个国家的名字对于匹配来说很重要。

  

注意,我们从TF-IDF移开是因为它具有很强的句法性质,并且无法捕获语义相似。虽然我们现在可以有效地抓住单词向量和基于LSTM的编码的语义,但是我们已经失去了对句法结构的控制。如同tf - idf在句法频谱的一端,我们现在很遗憾地处于语义频谱的另一端。一个好的matcher需要使用关于句子结构和整体语义的信息。

  

组合结构与语义

在过去的几年里,我们已经开始看到神经架构将低(词)级的信息和结构结合在一起,并具有更高层次的语义意义。事实上,已经提出了几十种架构,并带有细微的变化,这使得实践者们不得不对其进行提炼、区分并使之适应新的任务。让我们从理解大多数这些架构背后的共同范式开始。

  

Split-Compare-and-Aggregate模式

总的来说,这些匹配的方法可以学习和聚合

  

首先对q和d进行分割表示,例如,一个单词嵌入的列表。

  

比较所有对元素(q_i, d_j)。学习相似度得分。

  

聚合相似度得分。再次,学习聚合。

  

在第一次遇到时,SCA模式看起来非常简单,但是它非常强大,并且有多种多样甚至令人惊讶的方法来实例化这个模式。

  

  

Compare (G) and Aggregate (H)

  

上面的图显示了如何使用NNs实例化检查句子的模式:

  

从单个单词向量中,学习一个由网络G参数化的相似矩阵(蓝色),

  

然后学习聚合相似度分数,由网络H参数化,产生最终的得分(y)。

  

已经提出了一些基本SCA范式的变体,针对字符串相似性、阅读理解和问题回答任务。不幸的是,性能最好的神经架构常常表现出较低的解释性。因此,在深入研究它们之前,让我们考虑一个更可解释的SCA模式实例,即Word Mover Distance。

  

Word Mover Distance

  

假设,doc d =“President greets the press in Chicago”并询问q =“Obama speaks in Illinois”,我们预计q和d会有很高的相似度。就WMD而言,我们希望WMD(q,d)的距离非常低。这是可能的,如果我们可以找到q和d的单词之间的良好排序。

  

首先,我们为q和d中的每个单词指定信息权重。例如 President, greets, press and Chicago各有0.25单位,并忽略(in)。相似性赋予奥巴马权重,Illinois (每个0.33单位)。现在,我们如何排序 q和d中的词:尝试重新分配从q到d的权重,以便传入和传出的流匹配。请注意上面的图表 - 我们将权重从奥巴马(0.33)分配给总统(0.25)。我们左边0.33-0.25 = 0.08,我们接下来greets。重复其他词。将成对流量存储在矩阵T 中,即T = 0.25。很显然,有几种方法可以进行这种转移,也许有一种最佳的方式 = q,d之间最少的WMD。

  

为了找到最佳的转移方式,我们首先计算成对词的不相似度dist(q ,d )。现在,将WMD(q,d)定义为权重为流量T 的成对距离的加权和:

  

  

WMD defined as weighted sum

  

  

Also inflow = outflow for each word

  

现在,为了找到使总体WMD(q,d)最小化的流量(T),我们使用线性优化来解决上述的T问题。请注意,方程组是如何神奇地工作的――如果我们把一个高流量(T )分配到非常相似的词(比如,总统和奥巴马:DIST 0),它对整个WMD的贡献很小,因此保持了低水平。但是,如果您找不到类似的一对,那么您就不得不将流分配给更多类似的一对,从而提高了总体的WMD。

  

注意WMD如何实例化SCA模式:我们pair-wise word (dis)-similarity,然后通过优化找出流程T来learn to aggregate。

  

缺点:众所周知,WMD技术可以很好地匹配简短的句子,但是随着句子长度的增大或太大的不同,它会被分解。在不同的组合中分配权重可能导致复杂的或不可解释的流。也许,我们应该只关注类似的组件,并汇总它们的分数?另外,如何初始化权重分配――始终删除停止字?另一个问题是:我们没有得到关于句子的编码,我们只学习与它们匹配。

  

Soft-TF-IDF:也是一个SCA实例,越来越受欢迎。我们用一个任意距离度量(单词向量余弦相似度,Jaro相似度,..)来比较q和d的单词,然后通过用TF-IDF的分数来衡量它们的相似度。本文展示了软TF-IDF如何在不同的实体之间找到匹配。这里的问题是,您必须手动选择阈值以进行相似性。

  

还有其他一些SCA实例,试图解决如何比较和如何聚合问题的方法――BiDAF、MPM、DrQA、AoA、QANet(当前的小组领导)。不幸的是,它们变得越来越复杂,因此很难解释和适应。我们将在以后的文章中阐明它们。同时,这里有一篇关于BiDAF文件的很好的博文。由于这些架构针对的是QA,而不是查询文档匹配,所以我们需要使它们适应匹配的问题,并进行一些巧妙的修改。

  

结论

构建实用搜索引擎时存在大量其他问题 - 词汇表中的单词,拼写错误,缩写,缩写词。另外,我们在这次讨论中忽略了非常重要的规模问题。假设您已经从目录中嵌入了一百万个产品的标题。如何有效地将查询嵌入与百万个产品项目向量进行匹配,以每秒数百个查询为条件。目前现成的基础设施(Solr,ElasticSearch)依靠经过反复测试的索引来快速搜索。人们不能真正希望复杂匹配的神经架构能够直接扩展。

相关文章