学习内容

题目: 自然语言从零开始 Natural Language Processing (Almost) from Scratch
2021年7月28日 1-5页

这将是一个长期的过程,因为本文长45页;
每天给自己定为5页的任务量!

由于刚开始接触知识图谱,尚未学习NLP语言,理解较为粗浅,仅仅阅读了通识部分,算法章节待基础学完再去理解。

摘要

  • 方法:
    一个统一的神经网络结构和学习算法,可以应用于各种自然语言处理任务,包括词性标注、组块、命名实体识别和语义角色标注。
  • 模型:
    这种多功能性是通过尝试避免特定于任务的工程,从而忽略了大量的先验知识来实现的。
  • 数据集:
    大量未标记的数据集。

介绍

基础语料库的由来:
没有专门的结构可以表示整句话,所以一句话必须提取简单表示的简化目标(如三元组)。
我们通过特定程序获取语料库,它们可以描述句法信息(例如,词性标注、组块和语法分析)或语义信息(例如,词义消歧、语义角色标注、命名实体提取和回指消解),这也构成了NLP真实世界的基础。
现在NLP存在的问题
现在大多数都是通过线性模型应用于特定特征来解决单一的benchmark问题,不具有泛化能力;
我们的方法
我们使用一个能够发现足够的内部表征的单一学习系统,事实上,我们将基准视为学习过程中发现的内部表征相关性的间接测量,并且我们假设这些中间表征比任何基准都更普遍。而且我们无法使用大量的语言知识,“几乎从零开始”。

2. 基准任务(The Benchmark Tasks)

当前的四种NLP任务:词性标记(POS)、组块(CHUNK)、命名实体识别(NER)和语义角色标记(SRL)

四个NLP任务的最新系统。POS的每字准确率和CHUNK、NER和SRL的F1分数反映了性能。黑体字的系统在本文的其余部分将被称为基准系统。

2.1 词性标注(Part-Of-Speech Tagging )

POS的目的是给每个词加上一个独特的标记,以表明它的句法作用,例如复数名词、副词等。

最优算法:最好的POS分类器是基于文本窗口(windows of text)训练的分类器,然后在推理过程中输入双向解码算法,在双向依赖网络中使用最大熵分类器和推理(Heckerman等人,2001),每个词的准确率达到97.24%。
(什么叫做基于文本窗口训练的分类器????双向解码算法)

2.2 分块(chunking)

语块分析也被称为浅层句法分析,其目的是用名词或动词短语(NP或VP)等句法成分来标记句子片段。每个单词只分配一个唯一的标记,通常编码为一个开始块(例如,GB-NP,开始块名词短语)或内部块标记(例如,GI-NP,内部块名词短语)

最优算法:CoNLL 2000基于SVMs,每个支持向量机以成对分类的方式训练,并在感兴趣的单词周围提供一个窗口,其中包含位置和单词作为特征,以及周围的标签。在测试时执行动态规划。

CoNLL: 计算机自然语言学习会议,是ACL的在Natural Language learning方面的分支会议。
(感兴趣的单词周围设置窗口??)

2.3 命名实体识别(Named Entity Recognition)

NER将句子中的原子元素分为“人”或“地点”等类别。在分块任务中,每个单词都被分配一个标记,前缀是实体开头或内部的指示符。

最优算法:NER CoNLL2003,,他们使用各种机器学习分类器的组合,他们挑选的特征包含了单词、词性标签、POS标签、前缀和后缀、一个大的地名索引(并不是由比赛提供的)和在更丰富的数据集上训练的另外两个NER分类器的输出。

2.4 语义角色标注(Semantic Role Labeling)

SRL旨在赋予句子的句法成分一个语义角色。也就是说句子中的某些信息特定的标签。
比如

中我们就可以给定主语、谓词和宾语不同的标注。当然,如果一个句子中有多个动词,一些单词可能有多个标记。
最先进的SRL系统包括几个阶段:生成一个解析树,确定哪些解析树节点代表给定动词的参数,最后对这些节点进行分类以计算相应的SRL标记。

最优算法: Pradhan et al.(2004)采用这些基本特征并定义其他特征,特别是首词的speech-tag部分、参数的预测命名实体类、为动词提供词义消歧的特征(他们总共添加了12种新特征类型的25种变体)实现了最好的水平。

2.5 评估

所有这三个任务都是通过计算我们的模型产生的chunking的F1分数来评估的。POS任务是通过计算每个单词的准确度来评估的,就像我们所提到的标准基准测试一样(Toutanova等人,2003)。

2.6 讨论

在公开挑战比赛中,使用外来的顶级现有系统来提高效率是无可厚非的,但是在不同标记数据已经实现的较高效率的系统对我们是不能够有效果的。所以,我们采用上面已经验证过的基准系统作为我们实验的基准参考。
而且复杂任务的最佳系统将具有更多的工程特征,也就是说POS任务是最简单的,而SRL是最复杂的,并且为它设计了多种特征。 而NLP需要考虑更多的语义理解。

3. 网络

以上所有NLP任务都可以看作是为单词分配标签的任务。传统的NLP都是从句子中提取一组丰富的手工设计特征,然后当作分类任务放到含有线性核的SVM中分类。 但是常用的方法中太基于大量的数据了。

3.1 标记

其中fθ(⋅))f_\theta{(·)})fθ​(⋅))是一个神经网络,lll则是经过了多少层; 我们后面会介绍每一层。

  • 其中A是矩阵,[A](i,j)[A]_{(i,j)}[A](i,j)​表示的是iii和jjj的关系;
  • ⟨A⟩idwin\langle A \rangle _i^{d_{win}}⟨A⟩idwin​​向量,是由concat矩阵A∈Rd1×d2A\in\mathbb{R}^{d_1 \times{d_2}}A∈Rd1​×d2​的ithi^{th}ith列向量周围dwind_{win}dwin​列向量得到的。特殊情况下,⟨A⟩i1\langle A \rangle_i ^ 1⟨A⟩i1​表示矩阵AAA的ithi^{th}ith列。 “win” = "window"
  • 对于向量vvv,我们使用[v]i[v]_i[v]i​来表示向量的第iii个标量。
  • 最终元素序列x1,x2,...,xT{x_1 , x_2, ... , x_T}x1​,x2​,...,xT​被写成[x]1T[x]_1 ^ T[x]1T​,句子的ithi^{th}ith元素被表示[x]i[x]_i[x]i​。

3.2 将单词转换为特征向量

我们结构的关键点就是能够很好的利用raw words; 只是使用索引不能提供很好信息,所以,我们网络的第一层通过查找表操作将这些单词索引映射到一个特征向量中,该特征向量从随机初始化开始,通过反向传播进行训练。
更正式地说,每一个单词w∈Dw \in \mathcal{D}w∈D,内部的dwrdd_{wrd}dwrd​-维度特征向量表示是由查找表LTW(⋅)L T_{W}(\cdot)LTW​(⋅)得来的:

其中W∈Rdwrd×∣D∣W \in \mathbb{R}^{d_{w r d} \times|\mathcal{D}|}W∈Rdwrd​×∣D∣是要被学习的参数矩阵。⟨W⟩w1∈Rdwrd\langle W\rangle_{w}^{1} \in \mathbb{R}^{d_{w r d}}⟨W⟩w1​∈Rdwrd​是WWW的wthw^{th}wth列,dwrdd_{wrd}dwrd​单词的向量长度(是一个超参数). 给定一个句子或任意序列的TTT个单词[w]1Tin D[w]_{1}^{T} \text { in } \mathcal{D}[w]1T​ in D,查找表层对序列中的每个单词应用相同的操作,生成以下输出矩阵:

然后可以将该矩阵反馈给进一步的神经网络层,如下所示。

3.2.1扩展到任何离散特征(其它的特征)

如果您怀疑这些特性对感兴趣的任务有帮助,那么您可能希望提供文字以外的特性。例如,对于NER任务,可以提供一个功能,说明一个单词是否在地名录中。另一种常见做法是引入一些基本的预处理,例如词干提取或处理大小写。在后一个选项中,单词将由三个离散特征表示:小写词干词根、小写词尾和大写特征。
一般说来,我们可以用kkk个离散特征来表示一个词。w∈D1×⋯×DKw \in \mathcal{D}^{1} \times \cdots \times \mathcal{D}^{K}w∈D1×⋯×DK,其中Dk\mathcal{D}^{k}Dk是字典里的第 kthk^{t h}kth 特征。我们为每个特征关联一个查找表LTWk(⋅)L T_{W^{k}}(\cdot)LTWk​(⋅),参数是Wk∈Rdwrdk×∣Dk∣where dwrdk∈NW^{k} \in \mathbb{R}^{d_{w r d}^{k} \times\left|\mathcal{D}^{k}\right|} \text { where } d_{w r d}^{k} \in \mathbb{N}Wk∈Rdwrdk​×∣Dk∣ where dwrdk​∈N是用户指定的向量大小。给定一个单词www,一个特征向量维度是dwrd=∑kdwrdkd_{w r d}=\sum_{k} d_{w r d}^{k}dwrd​=∑k​dwrdk​然后通过连接所有查找表输出获得:

单词序列[w]1T[w]_{1}^{T}[w]1T​的查找表层的矩阵输出类似于(1),但为每个离散特征添加了额外的行:

查找表中的这些向量特征有效地学习字典中单词的特征。现在,我们希望使用这些可训练的特征作为输入,进一步构建可训练的特征提取器,这些提取器可以表示一组单词,最后是句子。

3.3从单词特征向量中提取更高层次的特征

查找表层生成的特征向量需要在神经网络的后续层中进行组合,以便为句子中的每个单词生成标记决策。为可变长度序列中的每个元素生成标记(这里,一个句子是一个单词序列)是机器学习中的一个标准问题。我们考虑两种常见的方法,标签一个词在时间:窗口方法,和(卷积)句子的方法

3.3.1 WINDOW APPROACH

窗口方法假设一个单词的标记主要依赖于它的相邻单词。给定一个单词标签,我们考虑一个固定大小的kszk_{sz}ksz​(超参数)窗口围绕这个词的单词。窗口中的每个单词首先通过查找表层(1)或(2),生成固定大小dwrd×kszd_{w r d} \times k_{s z}dwrd​×ksz​的单词特征矩阵。通过连接每个列向量,可以将该矩阵视为dwrd×kszd_{w r d} \times k_{s z}dwrd​×ksz​-维向量,这些列向量可以馈送到进一步的神经网络层。更正式地说,第一个网络层给出的单词特征窗口可以写成:

Linear Layer :固定大小的向量fθ1f_{\theta}^{1}fθ1​可馈送至一个或多个标准神经网络层,这些神经网络层对其输入执行仿射变换:

其中Wl∈Rnhul×nhul−1and bl∈RnhulW^{l} \in \mathbb{R}^{n_{h u}^{l} \times n_{h u}^{l-1}} \text { and } b^{l} \in \mathbb{R}^{n_{h u}^{l}}Wl∈Rnhul​×nhul−1​ and bl∈Rnhul​是要学习的参数.超参数nhuln_{h u}^{l}nhul​通常称为lthl^{t h}lth层的隐藏单位数

HardTanh Layer :
激活函数

其中:

Scoring:最后,我们网络的最后一层LLL的输出大小等于感兴趣的任务可能的标签数量。然后,由于我们将在本节后面描述的仔细选择的成本函数,每个输出都可以解释为相应标签的分数(给定网络的输入)。

Remark 1 (Border Effects): 对于靠近句子开头或结尾的单词,没有很好地定义特征窗口(3)。为了避免这个问题,我们在句子的开头和结尾添加了一个特殊的“PADDING”单词,重复了dwin/2d_{win}/2dwin​/2次。这类似于在序列模型中使用“开始”和“停止”符号。

3.3.2SENTENCE APPROACH

我们认为句子训练网络(图2)训练SRL。卷积层输出的“局部”特征数为每个字300个。通过对句子应用最大值,我们获得了整个句子的300个特征。有趣的是,该网络主要围绕着感兴趣的动词(此处为“报告”)和感兴趣的词(“建议”(左)或“经常”(右))捕捉特征。

在实验部分,我们将看到窗口方法在我们感兴趣的大多数自然语言处理任务中表现良好。然而,这种方法在SRL中失败了,在SRL中,单词的标记取决于句子中事先选择的动词(或者更准确地说,谓词)。如果动词落在窗口之外,就不能期望这个词被正确地标记。在这种特殊情况下,为一个单词添加标签需要考虑整个句子。当使用神经网络时,解决这个问题的自然选择变成了卷积方法,首先由Waibel等人(1989)引入,在文献中也称为时滞神经网络(TDNNs)。
下面我们将详细描述我们的卷积网络。它依次获取完整的句子,将其传递到查找表层(1),通过卷积层在句子的每个单词周围生成局部特征,将这些特征组合成一个全局特征向量,然后将其馈送到标准仿射层(4)。在SRL中,对句子中的每个单词和句子中的每个动词执行此操作。因此,有必要在网络架构中编码我们在句子中考虑的动词,以及我们想要标记的单词。为此,句子中位置iii处的每个单词都以第3.2.1节所述的方式增加了两个特征。这些特征编码了相对距离i−posvi - p o s _ { v }i−posv​和i−poswi - pos _ { w }i−posw​,分别与位置i−posvi-p o s_{v}i−posv​处的所选动词和位置poswpos_wposw​处的要标记的单词相关。
Convolutional Layer:卷积层可以看作是窗口方法的推广。用前面的符号,lthl^{th}lth层的ttht^{th}tth列可以计算为:

其中,权重矩阵WlW^lWl在序列中的所有窗口ttt中都相同。卷积层围绕给定序列的每个窗口提取局部特征。对于标准仿射层(4),卷积层通常被叠加以提取更高级别的特征。在这种情况下,每个层后面必须有一个非线性(5),否则网络将相当于一个卷积层。

Max Layer :输出(6)的大小取决于输入网络的句子中的字数。为了应用后续的标准仿射层,必须组合由卷积层提取的局部特征向量,以获得与句子长度无关的固定大小的全局特征向量。传统卷积网络通常在序列(6)的“时间”ttt上应用平均(可能加权)或最大运算(这里,“时间”只是指句子中的位置,这个术语源于卷积层的使用,例如,在语音数据中,序列随时间发生。)在我们的例子中,平均操作没有多大意义,因为一般来说,句子中的大多数单词对给定单词的语义角色没有任何影响。取而代之的是,我们使用了一种max方法,它强制网络为手头的任务捕获卷积层产生的最有用的局部特征(见图3)。给定一个矩阵fθl−1f _ { \theta } ^ { l- 1}fθl−1​, 它由卷积层l−1l-1l−1输出,最大层lll输出一个向量fθlf_\theta^lfθl​:

然后可以将该固定大小的全局特征向量馈送到标准仿射网络层(4)。与窗口方法一样,我们最终为给定任务的每个可能标记生成一个分数。

Remark2: 卷积运算(6)中产生的边界效应与窗口方法(3)中产生的边界效应相同。我们再次通过在句子中填充一个特殊的单词来解决这个问题。

3.3.3 TAGGING SCHEMES

对于所有可能的网络输出层,解释为compute scores。在窗口方法中,这些标记应用于位于窗口中心的单词。在(卷积)句子方法中,这些标记应用于网络输入中由附加标记指定的单词。POS任务实际上包括标记每个单词的句法角色。然而,剩下的三项任务将标签与句子片段相关联。这通常是通过使用特殊的标记方案来识别段边界来实现的,如表3所示。已经定义了几种这样的方案(IOB、IOE、IOBES等)总的来说,哪种方案更好,没有明确的结论。有时,通过结合使用不同标记方案训练的分类器(例如。G工藤和松本,2001年)。

各种标记方案。标记为“X”的段中的每个单词都带有前缀标签,这取决于单词在段中的位置(开始、内部、结束)。还输出单字段标签。不在标记段中的单词标记为“O”。存在IOB(和IOE)方案的变体,其中对于与具有相同标签“X”的另一段不相邻的所有段,前缀B(或E)被替换为I。

NER、CHUNK和SRL任务的gt标签是使用两种不同的标记方案提供的。为了消除这种额外的变化源,我们决定对所有任务使用最具表现力的IOBES标记方案。例如,在组CHUNK任务中,我们使用四种不同的标记来描述名词短语。标记“S-NP”用于标记包含单个单词的名词短语。另外,标签“B-NP”、“I-NP”和“E-NP”用于标记名词短语的第一个、中间和最后一个单词。另一个标记“O”标记不是块成员的单词。在测试过程中,这些标签随后被转换为原始的IOB标签方案,并输入到第2.5节中提到的标准性能评估脚本中。

3.4 Training

我们所有的神经网络都是通过在训练数据上最大化似然,使用随机梯度上升来训练的。如果我们将θ表示为使用训练集TTT训练的网络的所有可训练参数,我们希望最大化以下关于θ的对数似然:

其中xxx对应于训练词窗口或句子及其相关特征,yyy代表相应的标记。概率p(⋅)p(·)p(⋅)由神经网络的输出计算得出。在本节中,我们将看到两种将神经网络输出解释为概率的方法。

3.4.1 WORD-LEVEL LOG-LIKELIHOOD

在这种方法中,句子中的每个单词都是独立考虑的。给定一个输入示例xxx,参数为θθθ的网络输出一个分数[fθ(x)]i[ f _ { \theta } ( x ) ] _ { i }[fθ​(x)]i​、 对于与感兴趣的任务相关的ithi^{th}ith标签。为了简化符号,我们从现在开始去掉xxx,改为写[fθ]i]i[ f _ { \theta } ] _ { i } ] _ { i }[fθ​]i​]i​我通过对所有标签应用softmax(Bridle,1990)操作,该分数可解释为条件标签概率p(i∣x,θ)p(i | x,θ)p(i∣x,θ):

将log-add操作定义为:

我们可以将一个训练示例(x,y)的对数似然表示为:

虽然这种训练标准(通常称为交叉熵)被广泛用于分类问题,但在我们的例子中,它可能并不理想,因为句子中一个单词的标记与其相邻标记之间通常存在相关性。现在,我们描述另一种常见的神经网络方法,该方法强制执行句子中预测标记之间的依赖关系。

3.4.2句子级对数似然法

在诸如Chunking、NER或SRL之类的任务中,我们知道句子中单词标记之间存在依赖关系:不仅标记以分块的形式组织,而且一些标记不能跟随其他标记。使用单词级方法进行培训会丢弃此类标签信息。我们考虑了一个训练方案,它考虑了句子结构:给出了我们的网络中所有标签在句子中的所有单词的预测,并且给出了从一个标签到另一个标签的得分,我们希望在训练期间鼓励有效的标记路径,同时劝阻所有其他路径。
我们考虑由网络输出的分数矩阵fθ([x]1T)f _ { \theta } ( [ x ] _ { 1 } ^ { T } )fθ​([x]1T​)。与前面一样,为了简化符号,我们删除了输入[x]1T[ x ] _ { 1 } ^ { T }[x]1T​。矩阵的元素[fθ]i,t[ f _ { \theta } ] _ { i , t }[fθ​]i,t​是含有θθθ的网络在ttht^{th}tth单词处输出的分数,用于句子[x]1T[x]^T_1[x]1T​和ithi^{th}ith标签。我们引入了一个过渡分数[A]i,j[A]_{i,j}[A]i,j​,用于在连续单词中从iii标记跳到jjj标记,以及一个初始分数[A]i,0[A]_{i,0}[A]i,0​,用于从iii标记开始。当过渡分数将被训练时(所有网络参数θ也是如此),我们定义θ=θU{[A]i,j,Vi,j}\theta = \theta U \{ [ A ] _ { i , j } , V i , j \}θ=θU{[A]i,j​,Vi,j}。一个句子[x]1T[ x ] _ { 1 } ^ { T }[x]1T​在标记[i]1T[ i ] _ { 1 } ^ { T }[i]1T​路径上的得分由转换得分和网络得分之和给出

与单词级似然(11)完全一样,我们使用softmax(9)对所有标签进行标准化,我们使用softmax对所有可能的标签路径[j]1T[ j ] _ { 1 } ^ { T }[j]1T​上的分数进行标准化,并将结果比率解释为条件标签路径概率。取对数,因此真实路径的条件概率[y]1T[ y ] _ { 1 } ^ { T }[y]1T​由下式给出:

虽然logadd操作(11)中的术语数量等于标记数量,但它随着(13)中句子的长度呈指数增长。幸运的是,我们可以利用标准递归,在半环10\text{半环}^{10}半环10(R∪{−∞},logadd , + )( R \cup \{ - \infty \} , \text{logadd , + })(R∪{−∞},logadd , + )上的结合性和分布性,在线性时间t内计算出。

然后是终止:

我们现在可以在(8)中最大化所有训练对([x]1T,[y]1T[ x ] _ { 1 } ^ { T } , [ y ] _ { 1 } ^ { T }[x]1T​,[y]1T​)的对数似然(13)。
在推理时,给定一个要标记的句子[x]1T[x]^T_1[x]1T​,我们必须找到使句子得分最小化的最佳标记路径(12)。换句话说,我们必须找到:

维特比算法是这种推理的自然选择。它对应于执行递归(14)和(15),但是logadd被max替换,然后通过每个max跟踪最优路径。

Remark 3 (Graph Transformer Networks):我们的方法是针对图形变压器网络(GTN)的区别性前向训练的一个特例(Bottou等人,1997;乐存等人,1998年)。对数似然(13)可被视为有效路径上受约束的正向得分(在我们的案例中,只有标记路径)与无约束的正向得分(15)之间的差异。

Remark 4 (Conditional Random Fields): 等式(12)的一个重要特征是没有归一化。将所有可能的标记的指数e[fθ]i,te ^ { [ f \theta ] _ { i , t } }e[fθ]i,t​求和并不一定得到一致的效果。如果是这种情况,分数可以被视为条件转移概率的对数,我们的模型将受到激励条件随机场(CRF)的标签偏差问题的影响(Lafferty et al.,2001)。非标准化评分应与CRF的潜在功能相比较。事实上,CRF使用线性模型而不是非线性神经网络最大化相同的可能性(13)。CRF在NLP领域得到了广泛的应用,例如词性标注(Lafferty等人,2001年)、组块(Sha和Pereira,2003年)、NER(McCallum和Li,2003年)或SRL(Cohn和Blunsom,2005年)。与这些CRF相比,我们利用非线性网络学习每个感兴趣任务的适当特征。

3.4.3随机梯度

通过迭代选择随机示例(x,y)(x,y)(x,y)并进行梯度步进,实现随机梯度最大化(8)(Bottou,1991):

其中λλλ是所选的学习速率。图1和图2中描述的神经网络是一系列层,对应于连续的函数组合。神经网络最终由单词级对数似然(11)组成,如果使用句子级对数似然(13),则在递归(14)中依次组成。因此,可以通过网络、字级对数似然(11)或通过递归(14)应用微分链规则来计算导数(16)的分析公式。

Remark 5 (Differentiability, 可微性):我们的成本函数几乎在任何地方都是可微的。不可微点的出现是因为我们使用了“硬”传递函数(5),并且因为我们在句子接近网络中使用了“最大”层(7)。幸运的是,尽管存在这样的可微性问题,随机梯度仍然收敛到有意义的局部极小值(Bottou,1991,1998)。遇到不可微性的随机梯度迭代被简单地跳过。

Remark6(模块化方法): 著名的“反向传播”算法(LeCun,1985;Rumelhart等人,1986)使用链式规则计算梯度。链规则也可用于模块化实现。我们的模块对应于图1和图2中的方框。根据Bottou和Gallinari(1991)的建议,给定与其输出相关的导数,每个模块可以独立计算与其输入相关的导数以及与其可训练参数相关的导数。这使我们能够轻松构建网络的变体。有关梯度计算的详细信息,请参见附录A。

Remark 7 (Tricks): 已经报道了许多训练神经网络的技巧(LeCun等人,1998年)。选择哪一个往往令人困惑。我们只使用了其中两种:每个网络层参数的初始化和更新是根据该层的“fan-in”完成的,即用于计算该层每个输出的输入数量(Plaut和Hinton,1987)。查找表(1)、线性层(4)和卷积层(6)的扇入分别为1,nl−1万德温×nl−1胡。网络的初始参数取自中心均匀分布,方差等于扇入平方根的倒数。(16)中的学习率除以扇入,但在训练期间保持不变。

3.5 Supervised Benchmark Results

对于POS、Chunking和NER任务,我们使用第3.3.1节中描述的窗口架构报告结果。SRL任务使用句子方法(第3.3.2节)进行训练。结果如表4所示,POS的每字准确度(PWA)和所有其他任务的F1分数。我们用**单词级对数似然(WLL)和句子级对数似然(SLL)**进行了实验。我们网络的超参数如表5所示。

比较**基准NLP系统**与普通神经网络(NN)方法在POS、Chunking、NER和SRL任务上的泛化性能。我们报告了单词级对数似然(WLL)和句子级对数似然(SLL)的结果。一般化性能以POS的每字准确率(PWA)和其他任务的F1分数报告。NN结果落后于基准结果,在第4节中,我们将展示如何使用未标记的数据改进这些模型。所有 我们的网络都被喂入了两种未加工的文本特征:小写单词和大写字母功能。我们选择考虑小写词来限制字典中单词的数量。然而,**为了保持一些大写信息在这种转换中丢失,我们添加了一个“caps”功能**,它告诉我们每个单词是小写的、全大写的、首字母大写的还是至少有一个非首字母大写的。此外,一个单词中出现的**所有数字序列都将替换为字符串“NUMBER”**,因此,例如,单词“PS1”和“PS2”都将映射到单个单词“psNUMBER”。我们使用了一个包含《华尔街日报》中100000个最常见单词的词典(不区分大小写)。本词典以外的单词被一个特殊的“RARE”单词所取代。

单词嵌入在SRL神经网络的单词查找表中,从零开始训练,字典大小为100000。对于每一列,查询的单词后跟字典中的索引(越高意味着越少)及其10个最近邻(任意使用欧几里德度量)

结果表明,“out-of-the-box”的神经网络落后于基准系统。虽然我们网络的初始性能低于CoNLL 挑战赢家的性能,但与大多数竞争对手的性能相比,它的性能相当出色。考虑到句子结构(SLL)的训练标准似乎提高了Chunking、NER和SRL任务的表现,对POS几乎没有好处。这一结果与比较句子水平和单词水平可能性的现有NLP研究一致(Liang et al.,2008)。我们的网络架构的容量主要在于单词查找表,其中包含50×100000个要训练的参数。在《华尔街日报》的数据中,15%的最常用词出现在90%左右的时间里。许多单词只出现几次。因此很困难正确地训练他们相应的在查找表中的50维度的特征向量。理想情况下,我们希望语义相似的单词在单词查找表所表示的嵌入空间中靠近:通过神经网络函数的连续性,在语义相似的句子上生成的标记将是相似的。我们在表6中显示,情况并非如此:嵌入空间中的相邻词似乎在语义上不相关
在下一节中,我们将重点介绍如何利用未标记的数据来改进这些单词嵌入。我们将看到我们的方法可以提高所有任务的性能。

Remark 8(Architectures):在本文的所有实验中,我们通过验证尝试了几种不同的体系结构,从而调整了超参数。在实践中,超参数的选择,如隐藏单元的数量,如果它们足够大,对泛化性能的影响是有限的。在图4中,我们报告了验证集中每个任务的F1分数,与隐藏单元的数量有关。考虑到与网络初始化相关的差异,我们选择了实现“合理”性能的最小网络,而不是选择在一次运行中实现最高性能的网络。

Remark 9 (Training Time):训练我们的网络在计算上相当昂贵。Chunking和NER训练大约需要一个小时,POS训练需要几个小时,SRL训练大约需要三天。训练速度可以更快,学习速度也可以更快,但我们更愿意坚持小规模的训练,而不是寻找最适合速度的训练。二阶方法(LeCun等人,1998年)可能是另一种加速技术。

4.大量未标记的数据

我们希望获得比表6所示更多的语法和语义信息的单词嵌入。由于我们系统的大多数可训练参数都与单词嵌入相关,这些较差的结果表明我们应该使用更多的训练数据。

F1在验证集(y轴)上的得分与使用句子级似然(SLL)训练的不同任务的 **hidden units(隐藏单元)**数(x轴)的对比,如表4所示。对于SRL,我们在该图中只改变了第二层中的隐藏单元数。该量表适用于每项任务。我们展示了我们选择的体系结构的标准偏差(通过5次不同的随机初始化获得)(POS、CHUNK和NER的隐藏单位为300,SRL的隐藏单位为500)。

遵循NLP从无到有的理念,我们现在描述如何使用大型未标记数据集显著改进这些嵌入。然后,我们使用这些改进的嵌入来初始化第3.5节中描述的网络的单词查找表。

4.1 Data Sets

我们的第一个英语语料库是整个英语维基百科。我们已删除所有包含非罗马字符的段落和所有MediaWiki标记。使用Penn Treebank标记器脚本对生成的文本进行标记。结果数据集包含约6.31亿字。在我们之前的实验中,我们使用了一本包含《华尔街日报》中100000个最常见单词的词典,对大写字母和数字进行了相同的处理。同样,字典之外的单词被特殊的“稀有”单词取代。我们的第二个英语语料库是通过添加从路透社RCV1(Lewis et al.,2004)数据集中提取的额外2.21亿单词组成的。我们还增加了《路透社》中最常见的30000个单词,将词典扩展到130000个单词。这有助于确定是否可以通过进一步增加未标记数据集的大小来实现改进。

4.2 Ranking Criterion versus Entropy Criterion

我们使用这些未标记的数据集来训练语言模型,计算描述文本可接受性的分数。这些语言模型同样是使用第3.3.1节和图1中描述的窗口方法的大型神经网络。与前一节一样,大多数可训练参数位于查找表中。
Bengio和Ducharme(2001)以及Schwenk和Gauvain(2002)已经提出了类似的语言模型。他们的目标是估计一个单词在句子中出现的概率。估计条件概率提出了一个类似于第3.4.1节描述的交叉熵标准。因为字典是很大的,计算归一化项可能要求很高, 需要精确的近似值。对我们来说更重要的是,这两项工作都没有导致重大的单词嵌入被报道。
Shannon(1951)通过让受试者猜测即将出现的字符,估计出英语的熵在每个字符0.6到1.3位之间。Cover和King(1978)使用微妙的赌博方法给出了每个字符1.25位的下限。同时,Brown等人(1992b)使用一个简单的单词三元模型,将每个字符的位数提高到1.75位。Teahan和Cleary(1996)使用可变长度字符n-grams获得了低至每个字符1.46位的熵。当然,人类主体依赖于他们对语言和世界的所有知识。我们能通过利用每个字符0.2位来学习英语的语法结构和世界的本质吗?每个字符将人类主体与简单的n-gram模型区分开来?由于此类任务当然需要高容量模型,因此获取测试集熵的足够小的置信区间可能需要非常大的训练集熵准则缺乏动态范围,因为其数值很大程度上由最频繁的短语决定。为了学习语法,罕见但合法的短语不亚于普通短语。
因此,有必要确定替代培训标准。我们在此建议使用成对排序方法(Cohen等人,1998年)。我们寻求一个网络,当给出一个合法的短语时,计算出的分数比给出一个错误的短语时要高。由于排名文献通常涉及信息检索应用,许多作者定义了复杂的排名标准,为最佳排名实例的排序提供了更多权重(见Burges et al.,2007;Clémenc¸on和Vayatis,2007年)。然而,在我们的案例中,我们不想强调最常见的短语而不是罕见但合法的短语。因此,我们使用一个简单的成对标准。
我们考虑一个窗口逼近网络,如第3. 3节1和图1所描述的,其中参数θ\thetaθ输出一个文本x=[w]1dwinx = [ w ] _ { 1 } ^ { d _ { w i n } }x=[w]1dwin​​的窗口的分数$f _ { \theta } $。我们最小化关于θ的排名标准:

其中XXX是所有可能的文本窗口集合,其中dwind_{win}dwin​单词来自我们的训练语料库,DDD是单词词典,X(w)X^{(w)}X(w)表示通过将文本窗口[w]1d[ w ] _ { 1 } ^ { d }[w]1d​的中心单词替换为单词www而获得的文本窗口。

Okanohara和Tsujii(2007)使用相关方法避免使用二元分类方法(正确/错误短语)的熵标准。他们的工作重点是使用内核分类器,而不是像我们在这里所做的那样学习单词嵌入。Smith和Eisner(2005)还提出了一个对比标准,用于估计数据条件化为“负”邻域的可能性。他们考虑不同的数据街区,包括来自dwind_{win}dwin​的DdwinD^{d_{win}}Ddwin​长度的句子。然而,他们的目标是在完全无监督的数据上完成一些标记任务,而不是获得对其他任务有用的通用单词嵌入。

论文阅读笔记(一)【Journal of Machine Learning Research】Natural Language Processing (Almost) from Scratch(未完)相关推荐

  1. 【论文阅读笔记】BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translati

    BART:去噪序列到序列的预训练自然语言生成.翻译和理解 动力 自监督方法在广泛的NLP任务中取得了显著的成功.最成功的方法是masked language model的变体去噪的自编码器.训练去噪的 ...

  2. 自然语言处理NLP 2022年最新综述:An introduction to Deep Learning in Natural Language Processing

    论文题目:An introduction to Deep Learning in Natural Language Processing: Models, techniques, and tools ...

  3. 论文阅读笔记(2):Learning a Self-Expressive Network for Subspace Clustering,SENet,用于大规模子空间聚类的自表达网络

    论文阅读笔记(2):Learning a Self-Expressive Network for Subspace Clustering. SENet--用于大规模子空间聚类的自表达网络 前言 摘要 ...

  4. 读论文《Natural Language Processing (Almost) from Scratch》

    读论文<Natural Language Processing (Almost) from Scratch> 原文地址:http://blog.csdn.net/qq_31456593/a ...

  5. Deep Learning in Natural Language Processing中文连载(三)

    第二章 对话语言理解中的深度学习 Gokhan Tur, Asli Celikyilmaz, 何晓东,Dilek Hakkani-Tür 以及邓力 摘要  人工智能的最新进展导致对话助手的可用性增加, ...

  6. 【论文阅读】Reliable and Trustworthy Machine Learning for Health Using Dataset Shift Detection

    系列文章目录 [Dataset Shift] Reliable and Trustworthy Machine Learning for Health Using Dataset Shift Dete ...

  7. 论文阅读 (二十一):Exploratory Machine Learning with Unknown Unknowns (2021AAAI EXML)

    文章目录 引入 1 小故事一个 2 ExML:另辟蹊径 2.1 探索性机器学习 2.2 一些基础理论 3 开干开干 3.1 拒绝模型 3.2 特征发掘 引入   传统机器学习就不逼逼了.想象这样一个问 ...

  8. 论文阅读:Data Platform for Machine Learning

    高级数据库技术 要求: 论文选择范围:(sigmod2019+VLDB2019+ICDE2019) 对论文主题.相关研究.模型.算法.实验方案设计.实验结果深入研究,有源码的可以进行源码演示. 要求: ...

  9. Deep Learning in Natural Language Processing中文连载(一)

    前言: 感谢邓力.刘洋博士能够提供给广大NLP从业者.爱好者提供了这本全面.通俗易懂的好书,以及其他专家前辈在具体章节.领域做出的贡献. 本书共338页,涵盖了NLP基本问题的介绍,以及深度学习在对话 ...

最新文章

  1. 从言行合一到知行合一
  2. python使用matplotlib可视化、使用rcParams参数调整可视化图像中线条宽度、线条类型、文本字体、字体大小、字体颜色、字体类型、文本颜色等
  3. pandas使用pct_change函数计算数据列的百分比变化:计算当前元素和前一个元素之间的百分比变化(包含NaN值的情况以及数据填充方法)
  4. python3项目-终于找到python3项目实战教程
  5. NLP CV ML future
  6. snmp 获取mac add table_R语言学习笔记(1)数据获取与数据重塑的第一部分
  7. mysql:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
  8. Redis——史上最强【集群】入门实践教程
  9. UCSD本科数学计算机专业前景如何,2020年UCSD计算机工程排名真该小心来考查
  10. synctoy 自动同步_用SyncToy给硬盘备份保证数据安全,来自微软的馅饼真香
  11. serialize java_java serialize 浅谈
  12. 使用yum update更新文件系统时不更新内核的方法
  13. Mac里的airdrop传输文件
  14. 一款好看的 html 后台管理系统模板
  15. javawebjsp酒店预订系统 (jsp酒店管理系统jsp民宿预订系统)jsp酒店客房预订系统
  16. Xcelsius 2008 sp3的新部件与新功能
  17. 关于MySQL中insert ignore,insert on duplicate和replace into,你可能没想过区别
  18. c语言:输入三角形的三边,判断是否是直角三角形
  19. HCI opcode
  20. hdu 5238 Calculator

热门文章

  1. C#操作Excel(1)Excel对象模型
  2. asp.net mvc 实现文件管理参考资料
  3. Xml文档添加节点和属性
  4. std::make_unique<T>和std::make_shared<T>
  5. sizeof你真的弄明白了吗?
  6. linux c语言内核函数,2014-1-5_linux内核学习(1)_C语言基础
  7. GetLocalTime
  8. android导出apk文件_Android测试工具入门介绍(三)
  9. spring生命周期七个过程_Spring杂文(三)Spring循环引用
  10. 验证python安装_Python环境搭建(安装、验证与卸载)