阅读笔记——长文本匹配《Matching Article Pairs with Graphical Decomposition and Convolutions》
论文题目:Matching Article Pairs with Graphical Decomposition and Convolutions
发表情况:ACL2019 腾讯PCG小组
模型简介
模型如图
本文的工作是基于概念图 Concept Interac-tion Graph (CIG)来做的,关于CIG的详细解释可以参看腾讯发的另一篇论文:A User-Centered Concept Mining System for Query and Document Understanding at Tencent。
模型的输入是文档级别的,具体来说就是以一对粒度为文档级别的长文本。
1.KeyGraph构建
对于给定的文档D,首先利用TextRank来提取命名实体和关键字,然后根据找到的关键词构建共现图,如果两个关键字同时出现在同一句子中,我们将它们用边连接起来。
2.Concept检测(可选)
如果关键字的子集高度相关,则它们将在KeyGraph中形成紧密连接的子图,我们称之为概念。可以通过在构造的KeyGraph上应用社区检测算法来提取概念,这实际上是一个关键词聚类的过程,对于可能出现在多个概念中的关键词,使用度中心性来进行评分。但是这一步时可选择的,也可以直接用关键词来作为概念,但是匹配速度会有所减慢。
3.句子附加
对文档Da,Db的句子分别与各个概念计算余弦相似度(向量由TF-IDF表示),这样每个概念就得到分别对应文档Da,Db的两个句子集。与文档中任何概念都不匹配的句子将附加到不包含任何关键字的虚拟顶点。
4.边的构建
任意两个顶点之间的边权重,是由它们的句子集之间的TF-IDF相似度表示的。
5.节点匹配特征编码
对每个节点上的文本对(来自两篇文章的句子集合分别进行拼接)进行匹配,得到匹配特征。我们分别尝试了 Siamese Encoder 自动学习匹配特征:将两个句子集(序列的word embeddings)送入共享相同权重的上下文层将它们编码为两个上下文向量,CA(v),CB(V),然后通过公式\(mAB(v) = (|cA(v) − cB(v)|,cA(v) ◦ cB(v))\),得到节点特征;计算各种 term-based 特征来作为节点特征向量:TF-IDF余弦相似度,TF余弦相似度,BM25余弦相似度,1-gram的Jaccard相似度和Ochiai相似度,拼接\(m'AB(v)\),得到匹配向量\(x_{i}\)。
6.通过GCN进行节点特征的转化
GCN的输入为X与A,其中\(X=\left \{ x_{i} \right \}_{i=1}^{N}\),A是一个邻接矩阵,\(A_{ij}= w{_{ij}}\),对于GCN来说某一隐藏层可以表示为:\(f\left ( H^{(l)},A \right )=\sigma \left ( \hat{D}^{-\frac{1}{2}}\hat{A}\hat{D}^{-\frac{1}{2}}H^{(l)}W^{(l)}\right )\),\(\hat{A}\)是A加上一个单位矩阵得来的,\(\hat{D}\)是一个对角阵,\(\hat{D}_{ii}= \sum _{j}\hat{A}{_{ij}}\)。我们将最终经过GCN转化后的特征,整合成一个向量(这里采用了 mean aggregation),即获取最后一层中所有顶点的隐藏向量的平均值。
7.整合分类
在经过GCN层转化后,所得到的向量还可以拼接一些全局的特征,例如通过使用最新的语言模型(例如BERT)直接编码两个文档或直接计算它们term-based的相似度。但是论文实验部分证明这样的全局特征几乎无法给我们的方案带来更多好处,因为图形合并的匹配向量已经在我们的问题中充分表达了。我们将这些最终整合的特征向量,通过分类网络(例如多层感知器(MLP))进行计算,得到匹配分数。
结束
由于只是泛读了这篇文章,没有对实验和代码进行深入分析,想了解更多的可以去看原文。
相关链接:
论文地址:https://arxiv.org/abs/1802.07459
相关数据资源:https://github.com/BangLiu/ArticlePairMatching
阅读笔记——长文本匹配《Matching Article Pairs with Graphical Decomposition and Convolutions》的更多相关文章
- Deep Learning of Graph Matching 阅读笔记
Deep Learning of Graph Matching 阅读笔记 CVPR2018的一篇文章,主要提出了一种利用深度神经网络实现端到端图匹配(Graph Matching)的方法. 该篇文章理 ...
- text matching(文本匹配) 相关资料总结
最近工作上需要做句子语义去重相关的工作,本质上这是属于NLP中text matching(文本匹配)相关的内容.因此我花了一些时间整理了一些关于这个方向的资料,整理如下(也许会持续更新): BiMPM ...
- TextRCNN 文本分类 阅读笔记
TextRCNN 文本分类 阅读笔记 论文:recurrent convolutional neural networks for text classification 代码(tensorflow) ...
- 跨模态语义关联对齐检索-图像文本匹配(Image-Text Matching)
论文介绍:Negative-Aware Attention Framework for Image-Text Matching (基于负感知注意力的图文匹配,CVPR2022) 代码主页:https: ...
- Mongodb Manual阅读笔记:CH7 索引
7索引 Mongodb Manual阅读笔记:CH2 Mongodb CRUD 操作Mongodb Manual阅读笔记:CH3 数据模型(Data Models)Mongodb Manual阅读笔记 ...
- 《C#程序设计教程 -李春保》阅读笔记
<C#程序设计教程 -李春保>阅读笔记 ( 需注意程度:红>粗体>下划线,蓝色:我的疑问 ) 老师的引言 [师]对待一种新语言的关注点 数据类型定义(python不用定 ...
- Hadoop阅读笔记(二)——利用MapReduce求平均数和去重
前言:圣诞节来了,我怎么能虚度光阴呢?!依稀记得,那一年,大家互赠贺卡,短短几行字,字字融化在心里:那一年,大家在水果市场,寻找那些最能代表自己心意的苹果香蕉梨,摸着冰冷的水果外皮,内心早已滚烫.这一 ...
- CI框架源码阅读笔记3 全局函数Common.php
从本篇开始,将深入CI框架的内部,一步步去探索这个框架的实现.结构和设计. Common.php文件定义了一系列的全局函数(一般来说,全局函数具有最高的加载优先权,因此大多数的框架中BootStrap ...
- Mongodb Manual阅读笔记:CH8 复制集
8 复制 Mongodb Manual阅读笔记:CH2 Mongodb CRUD 操作Mongodb Manual阅读笔记:CH3 数据模型(Data Models)Mongodb Manual阅读笔 ...
随机推荐
- 【LeetCode】83. Remove Duplicates from Sorted List 解题报告(C++&Java&Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 判断相邻节点是否相等 使用set 使用列表 递归 日 ...
- 版本不兼容Jar包冲突该如何是好?
一.引言 "老婆"和"妈妈"同时掉进水里,先救谁? 常言道:编码五分钟,解冲突两小时.作为Java开发来说,第一眼见到ClassNotFoundExceptio ...
- BeanUtils属性转换工具
commons 包的 BeanUtils 进行属性拷贝性能较差:Spring 的 BeanUtils 性能相对较好. public class A { private String name; pri ...
- 【Java笔记】Java使用mysql包注意
注意 安装的mysql5.x版本对应 5.x版本的驱动包 安装的mysql8.x版本对应 8.x版本的驱动包 如果安装的MySQL版本和驱动包版本不符合,则Java的连接不了数据库
- 生成器执行函数co 源码解读
本文所选内容均来自[co模块源码] /** * slice() reference. */ var slice = Array.prototype.slice; module.exports = co ...
- Shell自动上传下载文件到SFTP服务器
1.说明 本文提供一个Shell脚本, 可以自动连接到SFTP服务器, 然后上传或者下载指定的文件, 进而可以使用Linux的corntab命令, 定时执行脚本上传下载文件, 实现文件的同步或者备份功 ...
- DGHV同态库
DGHV DGHV全同态方案的实现 这是具有压缩公钥的DGHV的全同态加密方案的实现,参考文章: [1] J.S. Coron, D. Naccache and M. Tibouchi, " ...
- Python_元类
什么是元类 我们知道,实例对象是由类创建的,那么类又是由什么创建的呢? 答案就是元类. 元类基本不会用到,但是就算不用,也应该去熟悉一下概念. 理解类也是对象 在大多数编程语言中,类就是一组用来描述如 ...
- mybatis-plus实现多表联查
一.方法一 1.在pojo模块下新建一个VO 包路径用于提供页面展示所需的数据 2.在vo包下新建EmployInfo类,此类继承了Employees类,再把Dept类的数据复制过来 3.在Dao层中 ...
- java调用redis的多种方式与心得
心得: /** * 心得: * 1.连接方式主要有:直连同步,直连事务,直连管道,直连管道事务,分布式直连同步,分布式直连管道, * 分布式连接池同步,分布式连接池管道:普通连接池同步,普通连接池管道 ...