论文链接:How to Train Good Word Embeddings for Biomedical NLP
模型代码:Github

Abstract

  词嵌入的质量取决于输入语料库、模型架构和超参数设置。我们利用最先进的神经嵌入工具 w o r d 2 v e c word2vec word2vec和内部与外部评估,提出了一个关于如何根据上述特征改变嵌入质量的全面研究。除了确定最具影响力的超参数外,我们还观察到一个在内部与外部评估之间产生矛盾结果的参数。此外,我们发现更大的语料库不一定产生更好的生物医学领域词嵌入。我们的评估工具和资源,以及最先进的词嵌入可从https://github.com/cambridgeltl/BioNLP-2016获取。

1 Introduction

  词表示作为许多自然语言处理方法的主要输入之一,长期以来一直是研究的重点。近年来,人们提出了利用神经网络将单词嵌入到低维空间的方法(Bengio et al., 2003; Collobert and Weston, 2008; Turian et al., 2010; Mikolov et al., 2013b; Pennington et al., 2014)。这些方法将每个单词表示为实数的密集向量,其中语义上相关的单词映射为类似的向量。在神经嵌入方法中,Mikolov et al. (2013a) 的skip-gram模型在许多NLP任务中取得了最前沿的成果,包括句子补全、类比和情感分析(Mikolov et al., 2013a; Mikolov et al., 2013b; Fernandez et al., 2014)。
  尽管词嵌入在最近的工作中得到了广泛的研究(如Lapesa and Evert (2014)),但大多数此类研究只涉及一般的领域文本和评估数据集,其结果并不一定适用于生物医学NLP任务。在生物医学领域,Stenetorp et al. (2012)研究了语料库大小和领域对各种词聚类和嵌入方法的影响;Muneeb et al. (2015)比较了两种最先进的词嵌入工具:word2vec和Global Vectors(GloVe)对单词相似度任务的影响。他们的研究表明skip-gram模型显著优于其他模型,并且通过使用更高维度的向量可以进一步改善其性能。Pyysalo et al. (2013)和Kosmopoulos et al. (2015)也使用word2vec创建生物医学领域的词表示。
  鉴于word2vec已被证明可以实现最先进的性能,并可以通过参数调优进一步改进,我们将重点关注具有不同输入和超参数的word2vec在生物医学数据集上的性能。我们使用所有可用的生物医学科学文献,使用word2vec中实现的模型来学习词嵌入。对于内部评估(Intrinsic Evaluation),我们使用标准的UMNSRS-Rel和UMNSRS-Sim数据集(Pakhomov et al., 2010),这使我们能够分别度量相似性和相关性。对于外部评估(Extrinsic Evaluation),我们将一个基于神经网络的命名实体识别模型应用于两个标准的基准命名实体识别任务:JNLPBA (Kim et al., 2004) 和BioCreative II Gene Mention task (Smith et al., 2008)。
  除了表明超参数的优化提高了向量的性能外,我们还发现了一个参数导致了内部和外部评估之间的矛盾结果。我们进一步观察到,更大的语料库并不一定能保证任务有更好的结果。我们希望我们的研究结果可以为在生物医学NLP中使用神经词嵌入的研究者提供参考。

2 Materials and Methods

2.1 Corpora and Pre-processing

  我们使用两个语料库来创建词向量:PubMed Central Open Access subset (PMC)和PubMed。PMC是生物医学和生命科学文献的数字档案库,包含100多万篇全文开放获取的文章。PubMed数据库有超过2500万次的引用,涵盖了生物医学科学出版物的标题和摘要。PMC文章的版本是以文本格式发布的,而PubMed是以XML格式发布的。因此,我们使用一个PubMed文本提取器从PubMed源XML中提取标题和摘要。PubMed和PMC都使用Genia Sentence Splitter (GeniaSS) (Sætre et al., 2007)进行预处理,它是为生物医学文本而优化的。我们使用NLTK python库(Bird, 2006)提供的树库单词标记器进一步对句子进行标记。语料库统计如表1所示。

表1 语料库统计。

2.2 Word vectors

  影响词表示性能的因素包括训练语料库、模型架构和超参数。为了评估语料库的影响,我们对每个词向量生成三种变体:一个来自PubMed,一个来自PMC,还有一个来自两者的组合(PMC-PubMed)。为了研究预处理如何影响词向量,我们从原始文本语料库、小写变体和句子按随机顺序打乱的变体中创建向量。我们进一步生成了两组向量,一组应用skip-gram模型,另一组应用CBOW模型,他们均使用word2vec的默认超参数值构建。我们首先评估这些向量以确定性能更好的模型体系结构。然后我们使用此结构,通过改变一个超参数的值(表 2)并保持其他超参数不变来构建向量。对表中的每个超参数重复这个过程。最后,我们在内部和外部评估中报告这些向量设置的结果。

表2 超参数和测试值。默认值加粗显示。

2.3 Hyper-parameters

我们测试了以下关键超参数:
  负样本量( n e g neg neg):一个单词的表示是通过最大化它与上下文单词同时出现的预测概率,同时最小化其他单词出现的概率来学习的。然而,该概率的归一化需要从语料库中词及其所有上下文的共现情况推导出一个分母,计算起来非常耗时。为了解决这一问题,负采样只计算关于一定数量的随机选择的negative words( n e g neg neg)的概率。
  子采样( s a m p samp samp):子采样(Sub-sampling)是指减少频繁出现的单词的过程。它选择出现比率高于阈值samp的单词,并以给定的概率忽略每次出现。这一过程是为了在训练中尽量减少无信息的频繁词汇的影响。非常频繁的单词(如 i n in in)信息量较小,因为它们与语料库中的大多数单词同时出现。例如,一个模型看到p16与CDKN2同时出现会获益更多,相比看到p16与in同时出现。
  最小次数( m i n − c o u n t min-count mincount):minimum-count定义了要包含在词向量中的词所需的最小出现次数。此参数允许控制词汇表的大小,从而控制生成的词嵌入矩阵。
  学习率( a l p h a alpha alpha):通过沿梯度方向逐渐更新权重向量以最小化目标函数来训练神经网络。这些更新的大小由学习率控制。
  向量维度( d i m dim dim):向量维度是所学词向量的大小。虽然更高的维度倾向于捕获更好的单词表示,但它们的训练计算成本更高,并产生更大的单词嵌入矩阵。
  上下文窗口大小( w i n win win):上下文窗口的大小定义了作为目标词上下文包含的词的范围。例如,大小为5的窗口将目标词前后的五个词作为训练的上下文。
  我们参考Mikolov et al. (2013a)和Levy et al. (2015)了解这些参数的更多细节。

2.4 Baseline Vectors

  作为基线,我们考虑了Pyysalo et al. (2013)和Kosmopoulos et al. (2015)创建的生物医学领域向量。他们的语料库统计如表3所示。所有这些向量都是用带有默认参数值的skip-gram模型构建的(参见表2)。

表3 基线词向量。

2.5 Intrinsic Evaluation

  生物医学领域词表示的一个标准化内部评估是UMNSRS单词相似度数据集(Pakhomov et al., 2010)。我们使用其UMNSRS-Sim(Sim)和UMNSRS-Rel(Rel)子集作为参考数据。他们有566个和587个词对来衡量相似度和相关性(分别),这些词对的关联度由明尼苏达大学医学院的参与者评定。在UMNSRS中,人类对每个词对的评估都会转换为一个分数,以确定其相似度,分数越高表示词对越相似。分数的范围是任意的。虽然UMNSRS提供分数来确定每个词对的相似度,但我们将通过使用学习的词向量计算每个词对的余弦相似度分数来衡量这一点。之后我们使用斯皮尔曼相关系数( ρ ρ ρ)来比较两个分数,这是一个标准的度量来比较变量之间的排名,无论单词相似任务的规模大小。我们系统地忽略了那些只在参考数据中出现而不在模型中出现的单词。

2.6 Extrinsic Evaluation

  鉴于词向量的最终评价是其在下游应用中的性能,我们还通过在两个完善的生物医学标准数据集(BioCreative II Gene Mention task corpus (BC2) (Smith et al., 2008)和JNLPBA corpus (PBA) (Kim et al., 2004))上执行NER任务来评估向量的质量。这两个语料库都包含大约20,000句来自PubMed摘要的句子,这些摘要手工标注了生物医学实体。遵循Collobert and Weston (2008)提出的带有单词级似然的窗口方法架构,我们设计了一个构建在简单前馈神经网络上的标记器,该标记器具有5个单词的窗口、一个包含300个神经元的隐藏层和一个Sigmoid激活函数,以及Softmax输出层。我们的词向量被用作网络的嵌入层,唯一的其他输入是一个低维的二元词表面特征向量(例如,一个单词是否以大写字母或数字开头或包含大写字母或数字)。为了强调输入词向量对性能的影响,我们避免在训练期间对词向量进行微调,也避免引入任何外部资源,比如实体名称字典。虽然这导致该方法的性能明显低于目前的技术水平,但我们相信这是一种有效的方法来关注由工具 (word2vec)创建的词向量的质量。在参数选择方面,我们使用实体级的F值来评估词向量在两个语料库开发集上的外在表现。对于选择参数的最后实验,我们按照两个任务的原始评估协议应用测试集和评估脚本。

3 Results

3.1 Skip-grams vs. CBOW

  表4表5(前2行)分别显示了默认超参数的skip-gram和CBOW模型的内部和外部评估结果。总体而言,skip-gram向量在单词相似度任务和实体提及标注方面的效果都优于CBOW。在CBOW模型中,通过预测一个中心词来学习一组上下文词的表示,并将预测反向传播到所有上下文词上。相比之下,在skip-gram模型中,通过分别预测窗口中其他上下文词来学习中心词的表示,并将每个上下文词的预测误差反向传播到目标词。这可能学习到更好的向量表示,因为中心词在更多的数据中训练,但对上下文的平滑度较低。我们的结果与之前的许多研究一致,包括Muneeb et al. (2015)的研究,他们比较了不同向量维度上的模型架构,并报告说在生物医学领域的任务中,skip-gram优于CBOW模型。

表4 不同预处理下(Original Text, Sentence-shuffled (S), lowercased (L), both (SL))向量的内部评估结果。

表5 不同预处理下(Original Text, Sentence-shuffled (S), lowercased (L), both (SL))向量的外部评估结果。

  从表4表5中,我们可以看到大多数向量受益于小写和随机打乱的语料库句子。这是由于在word2vec中,学习率随着训练的进行而下降,文本出现的越早对模型的影响越大。随机打乱使所有文本的效果(大致)相同。另一方面,小写确保了相同的单词但不同的情况被规范化用于训练,例如protein, Protein和PROTEIN(作为一个术语索引)。虽然经过小写和随机打乱处理得到的向量性能更好,但在接下来我们将基于未经过随机打乱处理的文本向量报告进一步的结果,以保持结果的可比性。

3.2 Hyper-Parameters

  接下来我们发现六个超参数中的四个显著提高了内部评估任务的表现,而没有提高外部任务的表现;一个超参数在两个任务中都有很大程度的提高;一个超参数对内部评估和外部评估的影响是相反的。

3.2.1 Negative Sampling, Sub-sampling, Min-count and Learning Rate

  直观地说, n e g neg neg参数的较大值可以通过提供更多的(负)样本来对训练过程有益,但我们只能从内部评估中看到好处(图1)。词向量在内部任务上的表现随着 n e g neg neg值从1增加到8而提高(表6),而在外部任务的表现大致保持不变(表7)。我们参考Levy et al. (2015)的文章进一步分析了一般领域文本上下文中skip-gram模型参数的影响。

图1 负采样的平均内部和外部评估结果(Unit: ρ: 虚线, F-score: 实线)。

表6 负样本数的内部评估结果(默认值为5)。

表7 负样本数的外部评估结果(默认值为5)。

  对于子采样,阈值越低,更多的单词越有可能被下采样。从图2中可以看出,子采样对内部任务也有很大的影响,在 s a m p = 1 e − 6 samp = 1e-6 samp=1e6之前,大多数的数字显著增加(表8)。在 s a m p = 1 e − 7 samp = 1e-7 samp=1e7之后,两项指标都大幅下降。虽然一些非常频繁的单词(例如 t h e the the)不提供信息,但其他常见单词可能对建模单词含义很重要。因此,当子采样阈值不断降低时,大量的信息频繁词被下采样,导致对表示的学习效率低下。

图2 子采样的平均内部和外部评估结果(Unit: ρ: 虚线, F-score: 实线)。

表8 子采样的内部评估结果(默认值为1e-3)。

表9 子采样的外部评估结果(默认值为1e-3)。

  出现次数少于 m i n − c o u n t min-count mincount的单词将从语料库中完全删除,从而减少词向量中的单词数量。从图3中可以看出,除了内部任务中PubMed向量显著增加外,大多数结果表明该参数的影响有限(表10)。

图3 min-count的平均内部和外部评估结果(Unit: ρ: 虚线, F-score: 实线)。

表10 min-count的内部评估结果(默认值为5)。

表11 min-count的外部评估结果(默认值为5)。

  然而,我们的内部评估,遵循标准协议,忽略了被 m i n − c o u n t min-count mincount排除的单词。因此,对于PubMed向量,当 m i n − c o u n t = 400 min-count = 400 mincount=400时,只有大约一半的评估项用于内部评估。这意味着 m i n − c o u n t > 400 min-count > 400 mincount>400的结果只反映了常用词的表示。相比之下,外部任务的out-of-vocabulary rate约为2.6%,其影响不太显著。
  学习率过大,学习过程不稳定;学习率过小,学习过程缓慢。从表12表13中可以看出, a l p h a = 0.05 alpha = 0.05 alpha=0.05似乎是一个最优值,此时大多数向量在这两个评估中都有最好或次最好的结果。

图4 学习率的平均内部和外部评估结果(Unit: ρ: 虚线, F-score: 实线)。

表12 学习率的内部评估结果(默认值为5)。

表13 学习率的外部评估结果(默认值为5)。

3.2.2 Vector Dimension (dim)

  向量维度对向量的影响在所有任务中都是显著的(图5)。在表1415中,我们看到当向量维度增加时,所有的评估都有了很大的改进。虽然当 d i m > 200 dim > 200 dim>200时外部测度的提升停止,但很明显从低 d i m dim dim的增加会带来非常显着的改进。

图5 向量维度的平均内部和外部评估结果(Unit: ρ: 虚线, F-score: 实线)。

表14 向量维度的内部评估结果(默认值为100)。

表15 向量维度的外部评估结果(默认值为100)。

3.2.3 Context Window Size (win)

  通过改变上下文窗口参数的大小,我们发现了矛盾的结果(图6)。当上下文窗口大小增加时,这三组向量均显示内部度量显著增加(表16)。然而,外部评估显示了相反的模式(表17):所有外部任务的结果都有一个较早的性能峰值,窗口较窄(例如 w i n = 1 win = 1 win=1),然后随着窗口大小的增加而逐渐减小。一种可能的解释可能是,较大的窗口强调学习单词之间的Domain/Topic相似性,而狭窄的上下文窗口导致表示主要捕获单词特征(Turney,2012)。对于UMNSRS这样的内部评估数据集,可能对Topic相似度建模比特征相似度建模更重要。相反,对于命名实体识别这样的任务,特征相似度(如共同下义关系)的建模是非常重要的。关于上下文窗口大小参数的影响,我们参考Hill et al.(2015)和Levy et al.(2015)。

图6 窗口大小的平均内部和外部评估结果(Unit: ρ: 虚线, F-score: 实线)。

表16 窗口大小的内部评估结果(默认值为5)。

表17 窗口大小的外部评估结果(默认值为5)。

3.3 Comparative evaluation

  基于涵盖三个语料库(PMC、PubMed 和两者)、各种预处理选项(普通文本、随机打乱文本、小写文本)、两种模型架构(skip-gram vs. CBOW)和六个超参数的参数选择实验,我们选择了性能最佳的选项来与基线向量进行比较评估(表18)。由于上下文窗口( w i n win win)的大小在内部任务和外部任务之间显示出矛盾的结果,我们为该参数的两个不同值创建了向量。注意,对于这个比较评估,我们使用两个外部任务的测试集和测试评估脚本。

表18 为进行比较评估而选择的设置。

  表19总结了比较评估的结果。对于内部任务, w i n = 30 win = 30 win=30的向量表现最好,明显优于基线以及其他相同方式创建的 w i n = 2 win = 2 win=2的向量。这进一步支持了更大的上下文窗口有助于学习内部任务的领域相似度的假设。对于外部任务, w i n = 2 win = 2 win=2的向量与基线的差异较小,在JNLPBA上取得了最好的结果,在BC2GM上取得了第二好的结果,而 w i n = 30 win = 30 win=30的向量明显不具有竞争性。

表19 与基线向量对比的内部与外部评估。

  因此,对测试集数据的比较评估证实了参数选择的指示,即上下文窗口大小对内部和外部度量具有相反的影响,并表明我们的实验成功地创建了一对词嵌入,当应用于适合每个词的任务时,它们显示出最先进的性能。

3.4 Discussion

  在本研究中,我们使用了PubMed、PMC以及两者的结合,使用了大量不同的模型、预处理和参数组合来创建向量。虽然在理论上,更大的语料库有望有利于词表示的学习,但我们发现在许多情况下这是不成立的,特别是在PubMed和PMC组合显示的结果低于单独使用PubMed的情况下。我们为这一令人惊讶的发现提供了两种可能的解释,这与之前的一些领域内结果相矛盾。首先,我们使用了PubMed Central最近引入的PMC文本,使用了一个不完全文档化的提取过程,初步检查表明,这些材料中非散文文本的比例可能相当高,这可能会影响学习。另一种解释可能是word2vec的实现具有(某种程度上隐藏的)减少词汇表( “reduce-vocab”)功能,当语料库的大小超过一定的阈值时,该功能会触发罕见词删除:语料库规模越大,删除就越积极。初步结果表明,与其他语料库相比,这种功能可能对我们最大的语料库PMC-PubMed产生了更大的影响。我们把这个问题的解决留到今后的工作中去解决。

4 Conclusion and future work

  在本研究中,我们展示了词向量的性能如何随着不同的语料库、预处理选项(普通文本、随机打乱文本、小写文本)、模型架构(skipgram vs. CBOW)和超参数设置(负采样,子采样率,min-count,学习率,向量维度,上下文窗口大小)而变化。对于语料库来说,句子随机打乱重组的PubMed文本似乎产生了最好的性能,超过了PubMed与PMC文本组合的效果。
  对于超参数设置,很明显性能可以比默认参数显着提高,但不同超参数对性能的影响是混合的,有时甚至违反直觉。我们以前在一般的领域(with Wikipedia text) (Chiu et al., 2016)工作中也发现过类似的结果。
  未来的工作还存在几个方向。首先,除了单独调优单个参数外,我们还可以研究同时调优两个或多个参数的效果。此外,这里的实验没有考虑训练迭代的次数,单独或联合相关参数(如 a l p h a alpha alpha)来调整这个参数,可能会提供进一步的改进机会。

《How to Train Good Word Embeddings for Biomedical NLP》相关推荐

  1. 论文解读《Global Structure and Local Semantics-Preserved Embeddings for Entity Alignment》

    论文解读<Global Structure and Local Semantics-Preserved Embeddings for Entity Alignment> 论文题目:Glob ...

  2. 吴恩达《序列模型》精炼笔记(2)-- NLP和Word Embeddings

    AI有道 不可错过的AI技术公众号 关注 1 Word Representation 上节课我们介绍过表征单词的方式是首先建立一个较大的词汇表(例如10000),然后使用one-hot的方式对每个单词 ...

  3. Coursera吴恩达《序列模型》课程笔记(2)-- NLP Word Embeddings

    红色石头的个人网站:redstonewill.com <Recurrent Neural Networks>是Andrw Ng深度学习专项课程中的第五门课,也是最后一门课.这门课主要介绍循 ...

  4. Paper:《ELMO:Deep contextualized word representations》翻译与解读

    Paper:<ELMO:Deep contextualized word representations>翻译与解读 目录 <ELMO:Deep contextualized wor ...

  5. 【吴恩达深度学习】05_week2_quiz Natural Language Processing Word Embeddings

    (1)Suppose you learn a word embedding for a vocabulary of 10000 words. Then the embedding vectors sh ...

  6. 关于句子embedding的一些工作简介(三)---- Concatenated p-mean Word Embeddings

    这篇论文产生sentence embedding的方法非常简单,但是效果并不差.整个方法完全避免了深度模型,个人认为在工业界会有好的前景.由于简单易操作,尽管过去一些论文自称为hard/tough-t ...

  7. 【吴恩达深度学习笔记】5.2自然语言处理与词嵌入Natural Language Processing and Word Embeddings

    第五门课 序列模型(Sequence Models) 2.1词汇表征(Word Representation) 词嵌入(word embeddings)是语言表示的一种方式,可以让算法自动的理解一些类 ...

  8. [阅读笔记]Dependency-Based Word Embeddings(基于依存的词向量) _Omer Levy and Yoav Goldberg

    [阅读笔记]Dependency-Based Word Embeddings(基于依存的词向量) _Omer Levy and Yoav Goldberg 文章目录 [阅读笔记]Dependency- ...

  9. 通俗易懂的Word Embeddings

    通俗易懂的Word Embeddings   Word Embeddings是机器学习领域最酷的事情之一,因为它可以从海量的文本数据中挖掘出单词之间纷繁复杂的联系.例如你可以在不给定任何先验知识的情况 ...

最新文章

  1. 安卓学习-其他-文件读写
  2. IE的box模型显示bug
  3. ARP协议的报文格式
  4. python创建csv文件并写入-Python数据写入csv格式文件
  5. Jmeter之断言操作
  6. FFMPEG av_frame_move_ref 使用
  7. 深入struts2(二) ---stuts2长处和主要包、类功能
  8. 瑞幸咖啡首席技术官也离职了:并未参加公司财务造假
  9. 编译C#和C++共存的解决方案的小结
  10. 错误/异常:java.net.SocketException: Unrecognized Windows Sockets error: 0: JVM_Bind;的解决方法...
  11. linux连同目录一起删除,linux中文件的常用操作
  12. JS 同步本地时间和服务器时间
  13. 虚拟交换系统-VSS
  14. 滤波器原理及其作用计算机网络,三种滤波器的工作原理
  15. TM4C123G学习记录(4)--关于ROM前缀函数和HWREG函数
  16. HDU6397 Character Encoding 插板法+容斥
  17. 转-快找个程序员做老公吧
  18. Apache oozie ---工作流调度软件
  19. 使用XCode建立一个MAC OS X应用
  20. hello world漫游

热门文章

  1. 【算法笔记】bash博弈(巴什博奕)
  2. 服务器环境部署:Redis布隆过滤器使用
  3. r55625U和i51155g7选哪个好 锐龙r5 5625U和酷睿i5 1155g7对比
  4. 我的世界服务器存档损坏如何修复,我的世界怎么解决角色卡死及存档损坏_我的世界角色卡死及存档损坏解决方法_快吧单机游戏...
  5. 多台Linux服务器一起关机,求!linux 统一远程关机的方法?
  6. 童装店用哪款收银系统比较好
  7. 华中师范大学计算机学院杨青,暑期实践 | 倾听唤醒灵魂的声音 ——华中师范大学计算机学院暑期云支教教员颜顺专访...
  8. 先锋手机 P80W 如何给 先锋音乐播放器 增加 专辑图片和歌词?
  9. matlab中图像分割技术之三分水岭分割法
  10. 淘宝首页 图片滑动切换效果 基于jQuery的animate方法实现