美文网首页
卷积神经网络在NLP关系抽取任务中的应用

卷积神经网络在NLP关系抽取任务中的应用

作者: 橘子粟粟 | 来源:发表于2020-07-17 15:42 被阅读0次

CNN用于自动特征学习,一般在图像任务中应用比较广泛,在NLP中出现的频率可能不及CV任务,但在某些场景下依然能够发挥不错的效果。下面将根据基于论文《Classifying Relations by Ranking with Convolutional Neural Networks》阐述CNN与关系抽取任务之间如何碰撞出火花


论文中大概的流程可分为以下三步:(1)将句子中的词转化为可以进行卷积操作的词向量,即我们熟悉的Embedding过程。(2)进行卷积操作后得到该句子的向量表示。(3)对句子的向量进行关系的分类。下面将详细解释各步骤的原理和tricks


原理图

(1)Embedding操作

word embedding操作是NLP任务的基础,只有将语言中的字词转化成数字向量才能进行运算,本文也是如此。
在论文中的embedding分为两个过程,分别是word embeddings 和 word position Embeddings过程。

word embeddings

本过程一句话概括就是根据需被转换的单词的索引(或位置)提取出向量表中特定行的数字进而组合成一个向量用来表示该单词。
将一个句子表示为x,句子中的第i个词表示为W_i,则
x={w_1,w_2,...w_N}
再令每个单词转化成向量后表示r^{w_i},则整个句子向量化后表示为
emb_x=r^{w_1},r^{w_2}...r^{W_N}
令embedding转化矩阵为W^{wrd}∈R^{d^w×V}每个单词的词嵌入过程就是从这个矩阵中提取出相对应的行,其中d^w是单词转化为数字向量后该向量的长度,V是总的单词表的大小。embedding的过程可以用以下式子表示,简而言之就是用一个对应位置的one-hot向量v^wW^{wrd}矩阵相乘
r^w=W^{wrd}v^w

word position embeddings

句子中单词的位置顺序对于意思的表达很重要,该论文使用了position embedding的方法导入了每个单词相对于两个目标词的位置信息。比如下面这个句子,leftcar的距离为-1,与plant的距离为2。
The [car] left the [plant].
将这两个距离分别映射到一个维度为d^wpe的向量得到wp_1wp_2,再将这两个向量进行拼接得到某单词的最终位置向量
wep^w=[wep_1,wep_2]
最后将前面得到的word embedding 和word position emb 再进行拼接得到整个句子的表示
emb_x=[r^{w_1},wpe^{w_1}],[r^{w_2},wpe^{w_2}]...[r^{w_N},wpe^{w_N}]

(2)sentence Representation操作

此过程的目的是为了获得句子x的向量表示r_x,此时很自然地可以想到我们需要面临的两个问题:(1)句子的长度是变化的而我们是用一个固定长度的r_x去表示它;(2)包含句子的关键意思的单词有可能出现在该句子的任意位置。
sentence representation的过程具体分为以下几步

  1. 规定一个窗口大小k,挑出在某个单词的前后k的范围内的单词构成一个局部词块z_n。这一步的目的是为了学习局部特征。
    z_n=(r^{w_n-(k-1)/2},...,r^{w -n+(k-1)/2})
    注意:为了保证取出来z_n词块数与原句子中的单词相对应(数目相等),需要在句首句尾的单词作(k-1)/2的padding操作。
  2. 接下来便进行卷积操作了。令卷积核为W_1∈R^{d_c×d_wk},用这个卷积核对每一个词块z_n∈R^{d_wk}进行卷积运算(相当于权值共享了),则每个词块得到以一个d_c维的向量。
  3. 将这些词块的向量按照索引位置进行分组,比如0组表示将所有词块向量中索引为0的数字挑出来归到一组,1组表示将所有词块向量中索引为1的数字挑出来归为一组,后面以此类推,共有d_c组。然后从每组中挑选出最大的数字放到r_x向量的相应位置中,比如0组最大的数字就放到r_x[0]中,后面依次类推。形式化表达如下
    r_x[j]=max[f(W^1z_n+b^1)]_j

(3)class score

最后一步就是根据句子的向量表达来计算每种类别的得分。每个关系类别都会有一个权重矩阵,记为[W_{class}]c∈R^{d_c}则该句子对应每个类别的得分如下式计算
s_θ(x)_c=r^T_x[W_{class}]c

(4)损失函数的设计

论文中损失函数的设计也颇为巧妙,每句话的训练都输入一个正样本类别y^+∈C和一个负样本c^-∈C(实际是从所有的负样本中计算并挑出一个最最相似的作为负样本类别),loss function 如下所示
L=log(1+exp(γ(m^+-s_θ(x)_y^+))+log(1+exp(γ(m^-+s_θ(x)_c^-))
其中m^+m^-是边缘参数,而c是个扩展因子,有助于加大对分类错误的惩罚。负类别的挑选如前面所述,
c^-=argmax_{c∈C;c≠y^+} s_θ(x)_c

相关文章

  • 卷积神经网络在NLP关系抽取任务中的应用

    CNN用于自动特征学习,一般在图像任务中应用比较广泛,在NLP中出现的频率可能不及CV任务,但在某些场景下依然能够...

  • 通俗讲解关系抽取的常见方法

    信息抽取是NLP中非常重要的内容,而关系的抽取在知识图谱等领域应用广泛,也是非常基础的NLP任务,今天给大家介绍一...

  • MachineLearning

    一、卷积&池化 卷积 卷积能抽取特征 多层卷积能抽取复杂特征 卷积神经网络每层的卷积核权重是由数据驱动学习得来,不...

  • 卷积神经网络

    卷积神经网络基本架构 卷积神经网络,主要特点:卷积运算操作。 领域: 在图像领域,NLP领域的文本分类、软件工程的...

  • 卷积神经网络CNN的文本分类原理和实战

    基于卷积神经网络CNN的文本分类原理和实战 前言 本文介绍了CNN在NLP中的应用:文本分类。 文本分类:是自然语...

  • 再战机器学习—卷积神经网络

    卷积神经网络 卷积神经网络可能是离我们最近的神经网络,遍布在计算机视觉应用。通常卷积神经网络是由卷积层、池化层和全...

  • 【论文笔记】GraphRel:将文本建模为关系图用于关系抽取

    本文中,作者提出了一种图卷积神经网络的端到端关系抽取模型来进行命名实体识别和关系抽取的联合学习。论文地址:http...

  • CNN

    参考:CNN卷积神经网络原理讲解+图片识别应用(附源码)卷积神经网络 – CNN深入学习卷积神经网络(CNN)的原...

  • (转载)卷积神经网络CNN总结

    从神经网络到卷积神经网络(CNN)我们知道神经网络的结构是这样的: 那卷积神经网络跟它是什么关系呢?其实卷积神经网...

  • [Paper Weekly]CNN采样方法:空间变换网络(STN

    卷积网络(CNN)的采样问题 卷积神经网络(CNN)是一种强大的非结构化数据抽象特征抽取模型,其最基本的结构卷积层...

网友评论

      本文标题:卷积神经网络在NLP关系抽取任务中的应用

      本文链接:https://www.haomeiwen.com/subject/znbwhktx.html