不同于有监督的关系抽取方法要求高质量的标注数据,远程监督的方法使用启发式的规则大批量标注的数据来训练,然而这种通过启发式规则标注的数据往往包含大量噪声,因此远程监督的关系抽取方法的贡献点主要是在于怎么降低噪声对模型的影响。
本文将会对远程监督的主流方法MIL(Multi-Instance Learning),及其他方法进行梳理。
这篇文章是远程监督的开山之作,对远程监督关系抽取下了定义
文中提出了一个假设——对于两个有特定关系的实体,任何句子只要包含这两个实体,都会表达这种关系,基于这个假设,作者使用大规模知识图谱中的三元组对齐到非结构化的文本中,生成了大批量的数据。
对其的方式如上图所示:三元组为(Steve Jobs, Founder, Apple),按照远程监督的做法,上图中的三个句子都会打上这个三元组的标签,不难发现,上图的第三句其实就是一个噪声,它并没有表达乔布斯是苹果公司的创始人这个意思。
MIL+Deep Learning是远程监督关系抽取的主流方法
PCNNs这篇文章不是第一个提出用MIL(Multi-Instance Learning)来做这个任务的,但他是这个领域第一个把MIL和深度学习结合起来的。MIL的思想在于,把很多的实例打包,即使有很多噪声实例,但包的总体性质还是可以是正确的。放在这个任务中就是,我们把同一个三元组得到的全部标注句子打成一个包,虽然这些标注句子有很多是有噪声的,但是这个包整体是能够反应出这个三元组的语义的。
如上图所示,模型先选出每个包置信度最高的那个句子,然后只用置信度最高的那一个句子来进行后续的训练,注意到本文的每个包中只用到一个句子,这样做的好处在于这一个句子有很大的可能性不是噪声,坏处在于有很多数据没用上,浪费了。
虽然我认为在这个领域,模型设计从来不是最主要的贡献点,但PCNNs的这个模型结构影响了很多后面的工作,因此最后介绍一下PCNNs的模型结构。它把word+position的embedding输出CNN后,根据两个实体的位置,把句子特征分成3份,这三份各自进行最大值池化后拼接到一起,最后输入分类头。
针对Distant Supervision for Relation Extraction via Piecewise Convolutional Neural Networks中每个包只用到了一个句子,而浪费了许多数据的问题,这篇文章通过把包中的所有句子的特征用一个MaxPooling层简单粗暴的融合到一起,用池化后的输出作为这个包的特征表示。
这篇文章的另一个贡献点在于他题目中的Multi-label,这个简单说就是作者把分类中常见的Softmax+CrossEntropy,改成了Sigmoid+BCE+L2,区别在于原本的softmax输出只能是单分类(one-hot),而sigmoid的输出则可以是多分类。
本文的句子编码器还是用的PCNNs。
本文与Relation Extraction with Multi-instance Multi-label Convolutional Neural Networks的出发点相同,都是为了解决Distant Supervision for Relation Extraction via Piecewise Convolutional Neural Networks中数据浪费的问题。不同点在于,相比起Relation Extraction with Multi-instance Multi-label Convolutional Neural Networks简单粗暴的MaxPooling,这篇文章提出了一种Selective Attention机制,能够使模型给包中不同句子的分配权重,以实现让模型更加关注于没有噪声的样本,噪声样本对模型的影响就降低了。具体操作如下图。
用现在的眼光看来,要聚合一个特征集合的方法有很多,比如: Sum,Mean,Max,attention等,而不可学习Sum,Mean,Max的性能往往弱于可学习的attention。
这篇文中的句子编码器还是PCNNs。
这篇使用了强化学习的思想来降低噪声的影响,每个包对应到强化学习中的episode,每个句子对应到强化学习中的state。看到这里,可能大家会有一点违和感,因为对于强化学习而言,state跟state之间是连续变化的,是有过去未来之分的,而如果包中的句子都为state的话,就会导致state跟state之间是独立的,且他们之间没有顺序之分。
正是因此,如上图式(5),文中把折扣因子γ设为1,来消除顺序的影响。且r1,r2,… ,rn-1 = 0, rn = 1或-1(如果包中置信度(不算NA类别)最高那个句子预测对了则为1,否则为-1)这意味着,如果置信度最高的state预测对了,那整个episode的行为都会受到鼓励,否则受到惩罚。等价为有监督的说法就是,如果一个包中执行度最高的句子预测对了,那他就认为这个包的所有句子都预测对了(跟label不一样就是label有噪声),然后把label改为预测结果,继续训练。
这篇少有的没用PCNNs作为句子编码器,而是他自己提出的一个网络,即先把word+position的embedding输入CNN,然后做一个全局池化得到一个句义特征向量,再把两个实体的位置编码拼接在句义向量后面,再输入MLP及Softmax。
说这篇的目的在于两点:
本文有两大贡献点,首先是cross-relation attention。
具体来说,相比之前的selective attention是直接对下图的竖的向量做softmax,而cross-relation attention则是先横着做一次softmax,再竖着做归一化,这在数学上就是一个贝叶斯后验概率的计算,如上图,在理解上则是关系间的互相推理,如下图中,从x4的关系是r3的概率大可以推出x4的关系是r1的概率小。
本文的第两大贡献点是cross-bag attention。
作者认为有可能整个包中的所有句子都是错的,因此,他在基于cross-relation attention提取完包的特征后,还会对不同的包特征进行一次selective attention。
这篇的贡献点在于引入了对比学习,实验表明提点明显。
这篇文章也是follow16年的selective attention来聚合包的特征。
上图为对比学习的正负样本的构造方式,正样本对为原始数据和原始数据进行数据增强后的数据,负样本为其他包的包特征。
本文的损失函数有3项,其中LB就是交叉熵分类loss,LM是预训练语言模型(Bert)的loss,LC是对比学习的loss,且LC有个随时间逐渐变大的因子λ(t),这意味着一开始对比学习是不起作用的,随着时间的推移,对比学习的loss的权重逐渐增大。
本文希望用一个转移矩阵来学习到噪声的模式,如上图,它会根据句子的embedding生成predicted distr.和transition matrix,推断时模型直接输出predicted distr.,训练时会用transition matrix与predicted distr.相乘,生成observe distr.
损失函数如下图,α的值从1逐渐减小到0,这意味着一开始模型只对predicted distr.进行监督,然而这个predicted distr.是在噪声中学习的,因此predicted distr.可能会犯错,然而在α逐渐减小的过程中,模型对observe distr.的监督力度逐渐变强,对predicted distr.的监督力度逐渐变弱,这时有噪声的监督不会直接影响到predicted distr.,而是由observe distr.通过transition matrix间接影响到了predicted distr.。
然而,如果对transition matrix不加任何约束的话,有可能对observe distr.的监督完全影响不到predicted distr.,那predicted distr.就失去了意义了,因此本文把transition matrix的迹作为损失函数中的一项,如下图的-βtrace(Ti)。因为transition matrix的每一行都做过softmax,因此当transition matrix的迹最大时,transition matrix为单位阵,这时predicted distr.和observe distr.完全一样。通过调节β的大小,来保证predicted distr.和observe distr.有一定的相似性,有不至于使有监督的噪声直接影响到predicted distr.
文章浏览阅读1k次,点赞8次,收藏16次。我们这个TCP客户端将从命令行接收两个参数,一个是IP地址或域名,另一个是端口,并尝试连接在这个IP地址的TCP服务端。
文章浏览阅读114次。彩虹外链网盘,是一款PHP网盘与外链分享程序,支持所有格式文件的上传,可以生成文件外链、图片外链、音乐视频外链,生成外链同时自动生成相应的UBB代码和HTML代码,还可支持文本、图片、音乐、视频在线预览,这不仅仅是一个网盘,更是一个图床亦或是音乐在线试听网站。适合小文件快速共享,文件可以设置访问密码,doc,图片等文件可以预览,音频可以在线播放,也适合做图床,支持在线下载,美化前台UI,运行天数和友链在后台统计代码修改。访问后台/admin 默认账号密码admin/123456。
文章浏览阅读4k次,点赞2次,收藏15次。首先找到build文件夹下webpack.dev.conf.js文件,修改compilationSuccessInfo里边的messages属性。在vue.config.js(或者配置config了的,就在config下的index.js )文件下设置。最后在package.json文件中 scripts 下的 dev 或者 serve 后面加上。以上设置可以显示Network 调试地址,但是无法访问,还需设置一下。回车后会出现一串信息,复制IPV4 地址即可。地址 ,获取IPV4 地址方法,_vue network网址访问不了
文章浏览阅读632次。从文件或控制台读入数据。都可以一次性读入多个字符,即读一串字符。cin.getline 是类函数。是基本输入流的函数。标准输入流,是一个类对象。也可以是。std::getline 是标准函数,使用时需要引入头文件 。cin.getline读入的数据一般放在字符数组中,std::getline读入的数据一般放在string对象中。由于cin.getline函数读入的数据放在字符数组中,所以要给出读入字符的(最大)数量。std::getline函数需要给出读入的文件流对象。 : 指向要存储字符到的字符数组的_std::getline
文章浏览阅读944次。使用了EL2521控制步进电机。对于脉冲型步进或伺服驱动器,可使用EL2521模块控制操作流程1.1. EL2521简介1.1.1. 外观和接线EL2521 xxxx输出端子改变二进制信号的频率并输出(与K总线电气隔离)。频率由来自自动化设备的16位值预设。EtherCAT端子的信号状态由发光二极管指示。LED与输出同步,每个LED显示一个活动输出。1.1.2. EL2521信号类型EL2521模块的后缀有-0000,-0024,-0025,-0124几种,各种类型的接线是不同的,这点要稍_倍福el2521接线图
文章浏览阅读46次。【代码】转载-mac下完全卸载Node.js(亲测可用)_mac 卸载 node.js
文章浏览阅读1.3w次,点赞7次,收藏42次。哈希函数 Hash:众所周知,区块链有着极其优秀的安全性就是因为其充分使用了哈希函数。哈希简单用一句话来讲,就是:将任意长度输入的字串可转换成一个固定长度的字串,通过原始字串可以很容易地算出转换后的字串,通过转换后的字串很难还原出原始字串。哈希函数特征:1. 对于任意m作为输入,得到输出的结果,很难找到另一个输入m' (m'不等于m),使得m'的Hash结果也为同样的输出_变色龙哈希改写区块
文章浏览阅读796次,点赞13次,收藏17次。基于蜣螂算法优化长短时记忆(DBO-LSTM)模型的风电数据预测是一个备受关注的研究领域。风电是一种清洁能源,其预测对于能源规划和市场运营具有重要意义。本文旨在通过对比蜣螂算法优化前后的长短时记忆(DBO-LSTM)模型在风电数据预测中的表现,探讨蜣螂算法在优化风电数据预测模型中的有效性。首先,长短时记忆(LSTM)是一种适用于时间序列数据的深度学习模型,它能够捕捉数据中的长期依赖关系,因此在风电数据预测中具有较好的表现。
文章浏览阅读1.8k次,点赞36次,收藏53次。对于小米便签data包源码的一些解读,可能不是很准确_小米便签开源代码注释
文章浏览阅读2.1k次。1. 前记前段时间遇到一个问题,具有一定的代表性,特此记录,后续遇到类似问题时,可以参考这个方向2. 问题说明此问题为低概率煲机测试类问题,概率较低,需要长时间的运行才可以触发到,排查起来比较困难;2.1 测试方法设置机器为自动化休眠唤醒测试,时间周期为1分钟;usb 口有连接u盘,唤醒后会自动播放u盘内歌曲;无其他特别步骤测试时通过串口打印debug信息,另外打开系统中集成的debug功能,即收集logcat + kernel log信息,在遇到anr\je\ne\ke\hwt时会将现场_photonicmodulat
文章浏览阅读60次。在使用注解开发,SpringMvc配置类的情况下开启@EnableWebMvc,如果在springConfig类中的@Component扫描Bean对象再次扫描到spring和springMvc的配置Bean对象就会出现No Servlet Set错误。_no servletcontext set
文章浏览阅读840次。Cesium ion(假如要用自己的数据则需要上传数据)Cesium依赖:基于HTML5标准,无插件,跨平台;无法单独运行,依赖于浏览器(Cesium Lab基于Electron架构)浏览器基于HTTP协议,所以必须有HTTP ServerCesium功能介绍:定义影像矢量模型:{1使用3d tiles格式模式加载各种不同的3d数据,包含倾斜摄影模型,三位建筑物,CAD和BIM的外..._cesium pbr 3200