当前位置: 首页 > news >正文

句子表征-文本匹配--representation-based/interactive-based

传统匹配模型

1)tf-idf
2)Bm25
3)隐式模型:一般是将query、title都映射到同一个空间的向量,然后用向量的距离或者相似度作为匹配分,例如使用主题模型
4)翻译、转换模型:将doc映射到query空间,然后做匹配;或者计算将doc翻译成query的概率(同语言的翻译问题)

深度学习语义匹配的方法分类

从输入句子embedding上,主要分为如下3个方向

1).单语义,两个句子分别编码后计算相似度;
2).多粒度编码提取特征,字、短语;
3).匹配矩阵模型,句子间两两交互,交互后用深度网络提取特征。

模型发展上主要分为如下三种类型

1)representation-based,DSSM、CNN、RNN、attention
这类方法是先分别学习出query和doc的语义向量表示,然后用两个向量做简单的cosine(或者接MLP也可以),重点是学习语义表示(representation learning)
2)interaction based,ARC-2、MatchPyramid、
这种方法不直接学习query和doc的语义表示向量,而是在底层,就让query和doc提前交互,建立一些基础的匹配信号,例如term和term层面的匹配,再想办法把这些基础的匹配信号融合成一个匹配分
3)representation-based 和interaction-based方法的融合 Duet, WWW17,微软
两者各有千秋、各有各自的适用场景。

interaction based的方案对长的、冷门的query更有效,representation based的模型对短的、热门的query更有效。

在这里插入图片描述

搜索里的query和doc的相关性匹配

相关方法也主要分为2类:
1)基于全局分布的匹配
Deep Relevance Matching Model;
K-NRM: Kernel Pooling as Matching Function;
2)基于局部内容term的匹配
DeepRank;
Position-Aware Neural IR Model;

一 representation-based

1.1 词袋句向量

最简单的就是直接从词向量计算句向量。
首先可以用mean、max池化,相比字面n-gram重合度肯定是有提升的。但当句子中的噪声多起来之后,如果两个句子有大量重合的无意义词汇,分数也会很高,这时候就可以考虑加权求和,比如TF-IDF。

1.1.2 2016 WMD

题目:From Word Embeddings To Document Distances
论文:http://proceedings.mlr.press/v37/kusnerb15.pdf
代码:https://github.com/mkusner/wmd

之前提到的相似度任务都适用cosine相似度衡量的,也有学者研究了其他metric。2016年的WMD提出了Word Mover’s Distance这一概念,用句子A走到句子B的最短距离来衡量两者的相似程度。表示在下图中就是非停用词的向量转移总距离:

1.1.3 2017 SIF

题目:A SIMPLE BUT TOUGH-TO-BEAT BASELINE FOR SENTENCE EMBEDDINGS
论文:https://openreview.net/pdf?id=SyK00v5xx
代码:https://github.com/PrincetonML/SIF

ICLR2017论文SIF提出了名为smooth inverse frequency的方法,先由词向量加权平均得到句向量,再对多个句子组成的句向量矩阵进行PCA,让每个句向量减去第一主成分,去掉“公共”的部分,保留更多句子本身的特征。该方法在相似度任务上有10%-30%的提升,甚至超过了一些RNN模型,十分适合对速度要求高、doc相似度计算的场景。

1.2 有监督模型

1.2.1 2013 DSSM

1.2.2 2015 siamCNN

1.2.3 2016 siamLSTM

1.2.4 2016 Multi-view

1.3 预训练 + 迁移

1.3.1 2015 skip-thought

基本思想: 采用seq2seq思想,通过当前句去预测文章中当前句的上一句和下一句,最后产生副产物句向量
优点: 适用于具有句子连贯性的数据集,比如文章,小说,对话等
缺点:训练耗时耗时长,使用场景有限

1.3.2 2016 fastSent

1.3.3 2016 SDAE

1.3.4 2017 joint-many

1.3.5 2017 inferSent

该模型是由facebook AI提出的。
论文链接:https://arxiv.org/pdf/1705.02364.pdf
代码链接:https://github.com/facebookresearch/InferSent

1.3.5.1 模型解读

该模型也是一个古老的产物,主要是较于经典,模型的整体也不复杂,它属于特征式实现方案,编码器的参数共享(uses a shared sentence encoder),和上一篇介绍的ESIM有很多相似之处,特别是文本向量的特征交互处

在这里插入图片描述
图中蓝色的部分代表编码器,对于编码器作者比较了7个不同的网络架构:LSTM、GRU、concatenate GRU的前向和后向的最后一个隐层状态、双向BiLSTM分别取最大和平均pooling、self–attentive网络、分层卷积网络。
作者指出具有最大池化的BiLSTM网络是最好的通用文本编码方法。

图中绿色部分是文本向量产出和文本向量的特征交互部分

图中黄色的部分是结全连接层进一步进行特征抽取,最后接分类器进行分类部分(使用的数据是关于相似度的三分类)。

具体流程

1)句子对中的句子分别通过sentence encoder获得句向量u和v
2)句向量u,v经过连接、element-wise 向量差(取绝对值)、element-wise 向量积三种交互。
3)经过全连接层传给3-way softmax进行句子关系的预测

模型的缺点

回想下前面讲解的特征式实现方案的优势,相比于交互式效果确实差一些,但最主要的优势是快。使用方法是把候选文本通过训练好的模型编码成向量后存到向量化数据库,线上只需要把待查询文本通过模型进行编码,然后计算余弦相似度获取相似度得分。
所以在这里就会出现训练和预测不统一的问题,训练的是分类模型,预测却要通过cos计算相似度。
在这里插入图片描述

1.3.6 2017 SSE

1.3.7 2018 GenSen

1.3.8 2018 quick-thought

基本思想: 是对Skip-Thought的一种改进,将skip thoughts的预测行为修改成了分类问题
优点: 训练得到的句向量相比Skip-Thought有提升,训练速度有明显提升
缺点: 适用场景有限,句向量表现仍不突出

1.3.9 2019 USE

1.3.10 2019 sentence-BERT

1.3.11 2020 BERT-flow

1.3.12 2020 cross-thought

二 interactive-based

1.4.1 2016 DEC-att

1.4.2 2016 PWIM

1.4.3 2016 Match pyramid

1.4.4 2017 ESIM

ESIM(Enhanced LSTM for Natural Language Inference)
论文链接:https://arxiv.org/pdf/1609.06038.pdf

模型的核心主要有三部分:Input Encoding、Local Inference Modeling 和Inference Composition。
此外这里要特殊说明下,图的左半部分就是我们要讲的ESIM,右半部分的区别在于使用了一种叫Tree-LSTM的变种LSTM结构,可用于做句子的语法分析。在具体的文本匹配应用中可以不管这部分,所以这里也不讲解,我们只结合左半边的图来理解。
在这里插入图片描述

1.4.4.1 Input Encoding

这部分就是选用Bi-LSTM模型作为编码器对两个文本向量分别进行编码

1.4.4.2 Local Inference Modeling

这部分主要是进行特征交互以及特征加强从而形成新的特征。

1)首先是特征交互
在这里插入图片描述
这部分是一个交叉attention的过程,结合两条文本相互之间的关注程度对各自的特征进行加权
特征增强

2)特征增强
具体就是特征拼接以及计算差和点积。
在这里插入图片描述
计算差是为了计算本身和关注另一个句子的差异性,更利于相似度的计算。
点积是特征加权。

1.4.4.3 Inference Composition

这部分就是再次通过Bi-LSTM进行特征提取
在这里插入图片描述
在这里插入图片描述

1.4.4.4 全局特征和局部特征的获取

结合上图可以发现在进行最后的Prediction时还有个Average&Max的操作,用于获取全局特征和局部特征

因为对于不同的句子,得到的向量v长度是不同的,为了方便最后一步的分析,这里把BiLSTM得到的值进行了池化处理,把结果储存在一个固定长度的向量中。
值得注意的是,因为考虑到求和运算对于序列长度是敏感的,因而降低了模型的鲁棒性,所以ESIM选择同时对两个序列进行average pooling和max pooling,再把结果放进一个向量中

在这里插入图片描述

1.4.5 2018 DIIN

1.4.6 2018 BERT

1.4.7 2019 HCAN

1.4.8 2019 RE2

http://www.lryc.cn/news/609740.html

相关文章:

  • 学习日志27 python
  • 基于开源AI智能名片链动2+1模式与S2B2C商城小程序的直播营销销量转化机制研究
  • 短剧小程序系统开发:引领影视消费新潮流
  • 【世纪龙科技】汽车自动变速器拆装虚拟实训软件
  • 音视频文案字幕一键提取,免费使用,效率软件!
  • AR远程协作网页设计:虚实融合场景下的故障标注与操作指引界面
  • AR技术赋能轨道交通培训:虚实结合提升学习效率
  • AUTOSAR AR-Explorer正式发布
  • 6s081环境配置以及使用vscode连接本地wsl2
  • Qt 使用QtXlsx库处理Excel文件
  • AR技术赋能能源勘探:从数据可视化到智能预测的革命性突破
  • 《解构Angular组件变化检测:从自动到手 动的效能突破》
  • 【Git 误操作恢复指南】
  • 如何安装 nvm-setup.exe?Windows 安装 NVM 管理 Node.js 版本的完整流程(附安装包下载)
  • 配置Mybatis环境
  • ollama解锁LLM生成上下文长度
  • 墨者学院SQL过滤字符后手工绕过漏洞测试(万能口令)
  • Lifelong Learning and Selective Forgetting via Contrastive Strategy
  • 深度学习图像处理篇之AlexNet模型详解
  • docker镜像源配置教程,以及解决安装好docker配置镜像源后,出现报错。Job for docker.service failed
  • 洛谷做题11:P1424 小鱼的航程(改进版)
  • Android Espresso 测试框架深度解析:从入门到精通
  • GCC与AI:编译优化新革命
  • PHP进阶语法详解:命名空间、类型转换与文件操作
  • 第二十四天(数据结构:栈和队列)队列实践请看下一篇
  • 进一步分析云手机的优势有哪些?
  • 论文Review LIO Multi-session Voxel-SLAM | 港大MARS出品!体素+平面特征的激光SLAM!经典必读!
  • JAVA,springAOP
  • 开源的现代数据探索和可视化平台:Apache Superset 使用 Docker Compose
  • 【盘古100Pro+开发板实验例程】FPGA学习 | 基于 UDP 的以太网传输实验例程