关于人工智能:深度学习应用篇自然语言处理10NGramSimCSE介绍更多技术智能标注多分类算法文本信息抽取等

53次阅读

共计 8004 个字符,预计需要花费 21 分钟才能阅读完成。

深度学习利用篇 - 自然语言解决[10]:N-Gram、SimCSE 介绍,更多技术:数据加强、智能标注、多分类算法、文本信息抽取、多模态信息抽取、模型压缩算法等

1.N-Gram

N-Gram 是一种基于统计语言模型的算法。它的根本思维是将文本外面的内容依照字节进行大小为 N 的滑动窗口操作,造成了长度是 N 的字节片段序列。每一个字节片段称为 gram,对所有 gram 的呈现频度进行统计,并且依照当时设定好的阈值进行过滤,造成要害 gram 列表,也就是这个文本的向量特色空间,列表中的每一种 gram 就是一个特征向量维度。

该模型基于这样一种假如,第 N 个词的呈现只与后面 N - 1 个词相干,而与其它任何词都不相干,整句的概率就是各个词呈现概率的乘积。这些概率能够通过间接从语料中统计 N 个词同时呈现的次数失去。罕用的是二元的 Bi-Gram 和三元的 Tri-Gram。

N-gram 的用处很广,比方搜索引擎或者输入法提醒,词性标注,垃圾短信分类,分词,机器翻译,语音辨认能等等等。

  • 概率计算

假如咱们有一个由 n nn 个词组成的句子 $S=(w_{1},w_{2},…,w_{n})$,如何掂量它的概率呢?让咱们假如,每一个单词 $w_{i}$ 都要依赖于从第一个单词 $w_{1}$ 到到它之前一个单词 $w_{i-1}$ 的影响:

$$p(S)=p(w_{1}w_{2}…w_{n})=p(w_{1})p(w_{2}|w_{1})…p(w_{n}|w_{n-1}…w_{2}w_{1})$$

这个掂量办法有两个缺点:

  1. 参数空间大:概率 $p(w_{n}|w_{n-1}…w_{2}w_{1})$ 的参数有 O(n)个。
  2. 数据稠密,词同时呈现的状况可能没有,组合阶数高时尤其显著。

为了解决第一个问题,引入马尔科夫假如(Markov Assumption):一个词的呈现仅与它之前的若干个词无关。

$$p(w_{1}…w_{n})=\prod{p(w_{i}|w_{i-1}…w_{1})} \approx \prod{p(w_{i}|w_{i-1}…w_{i-N+1})} $$

如果一个词的呈现仅依赖于它后面呈现的一个词,那么咱们就称之为 Bi-gram:

$$p(S)=p(w_{1}w_{2}…w_{n})=p(w_{1})p(w_{2}|w_{1})…p(w_{n}|w_{n-1})$$

如果一个词的呈现仅依赖于它后面呈现的两个词,那么咱们就称之为 Tri-gram:

$$p(S)=p(w_{1}w_{2}…w_{n})=p(w_{1})p(w_{2}|w_{1})…p(w_{n}|w_{n-1}w_{n-2})$$
N-gram 的 N NN 能够取很高,然而事实中个别 bi-gram 和 tri-gram 就够用了.

用极大似然预计来计算每一项的条件概率,即频数:

$$p(w_{n}|w_{n-1})=\frac{C(w_{n-1}w_{n})}{C(w_{n-1})}$$

$$p(w_{n}|w_{n-1}w_{n-2})=\frac{C(w_{n-2}w_{n-1}w_{n})}{C(w_{n-2}w_{n-1})}$$

$$p(w_{n}|w_{n-1}…w_{2}w_{1})=\frac{C(w_{1}w_{2}…w_{n})}{C(w_{1}w_{2}…w_{n-1})}$$

具体地,以 Bi-gram 为例,咱们有这样一个由三句话组成的语料库:

I am Sam
Sam I am
I do not like apple

容易统计,“I”呈现了 3 次,“I am”呈现了 2 次,因而能计算概率:

$$p(am|I)=\frac{2}{3}$$

同理,还能计算出如下概率:

$$p(Sam|am)=0.5$$

$$p(do|I)=0.33$$
等等

2.SimCSE

句向量表征技术 始终都是 NLP 畛域的热门话题,在 BERT 前时代,个别都采纳 word2vec 训练出的 word-embedding 联合 pooling 策略进行句向量表征,或者在有训练数据状况下,采纳 TextCNN/BiLSTM 联合 Siamese network 策略进行句向量表征。在 BERT 时代,人们借助预训练语言模型的固有劣势,个别采纳 BERT 模型的 [CLS] 向量(即句子的起始字符向量)作为句向量表征;SimCSE采纳比照学习的办法,进行句向量表征,在 BERT 模型上获取更好的句向量表征,具体介绍如下:

2.1. 介绍

SimCSE(simple contrastive
sentence embedding framework),即 简略的比照句向量表征框架 。SimCSE 共蕴含了无监督和有监督的两种办法。 无监督办法 ,采纳 dropout 技术,对原始文本进行数据加强,从而结构出正样本,用于后续比照学习训练; 监督学习办法,借助于文本蕴含(自然语言推理)数据集,将蕴涵 -pair 作为正例,矛盾 -pair 作为难负例,用于后续比照学习训练。并且通过比照学习解决了预训练 Embedding 的各向异性问题,使其空间散布更平均,当有监督数据可用时,能够使正样本间接更严密。模型构造如下图所示:

其中,图 a 为无监督 SimCSE,图 b 为有监督 SimCSE,具体模型介绍见第 3 节和第 4 节。
上面将从比照学习背景、无监督 SimCSE、有监督 SimCSE、各向异性问题、试验细节五个方面进行具体介绍。

2.2. 比照学习背景

2.2.1 定义

比照学习就是 以拉近类似数据,推开不类似数据为指标,无效地学习数据表征 。给定一个 pair 对样本汇合 $D=\{(x_{i}, x_{i}^{+})\}^{m}_{i=1}$,其中 $x_{i}$ 和 $x_{i}^{+}$ 为类似样本,优化指标个别采纳通过批内负样本(in-batch negatives) 穿插熵损失函数,如下,
$l_{i}=-\log\frac{e^{sim(h_{i},h_{i}^{+})/\tau}}{\sum_{j=1}^{N} e^{sim(h_{i},h_{j}^{+})/\tau}}$
其中,$h_{i}$ 和 $h_{i}^{+}$ 为 $x_{i}$ 和 $x_{i}^{+}$ 的句向量示意,$N$ 为训练过程中 batch 的大小,$sim(h_{i},h_{i}^{+})$ 为向量 $h_{i}$ 和 $h_{i}^{+}$ 余弦类似度,$\tau$ 为温度超参。

在 SimCSE 论文中,采纳 BERT 模型对句子进行句向量表征,即 $h=f_{\theta}(x)$,其中,$f_{\theta}$ 为 BERT 模型参数,并通过比照学习损失优化网络全副参数。

2.2.2 结构正样本

比照学习中的一个关键问题是 如何构建 $(x_{i}, x_{i}^{+})$ 数据对。在计算机视觉中,通过对一张图片进行简略地裁剪,翻转,扭曲和旋转就能够获取品质很高的 $x_{i}^{+}$;而在自然语言解决中,结构 $x_{i}^{+}$ 的办法与图像相似,个别对原始句子进行转译、重排,或对局部词语删除、插入、替换等;然而因为离散性,导致 NLP 中的数据裁减往往会引入大量的负面噪声,使得 $x_{i}^{+}$ 的品质难以保障。

在 SimCSE 论文中,提出 应用规范 dropout 操作结构高质量 $x_{i}^{+}$,并达到比上述数据裁减更好的成果。

2.2.3 对齐性和平均性

在比照学习中,通常应用对齐性(alignment)和平均性(uniformity)来掂量表征品质的好坏。

alignment是计算 $(x_{i}, x_{i}^{+})$ 数据对向量表征之间的间隔,示意数据之前的严密水平,
$l_{align} \triangleq \mathop{E}\limits_{(x_{i}, x_{i}^{+})~p_{pos}} ||f(x)-f(x^+)||^2$
uniformity是计算 $x_{i}$ 向量表征在整体特色散布上的平均水平,
$l_{uniform} \triangleq log \mathop{E}\limits_{x,y \mathop{\sim}\limits^{i.i.d.} p_{data}} e^{-2||f(x)-f(y)||^2}$
其中,$p_{data}$ 示意数据分布。

这两个指标与比照学习的指标是统一的:正例之间应该放弃严密,而任意向量的语义特色应该尽可能地扩散在超球体上。

2.3. 无监督 SimCSE

无监督 SimCSE 的思维非常简单,给定一个句子汇合 $\{x_i\}_{i=1}^{m}$,将 $x_{i}$ 别离输出到编码器中两次,别离失去向量 $z_{i}$ 的正例和 $z_{i}^{’}$;因为随机 dropout masks 机制存在于模型的 fully-connected layers 和 attention probabilities 上,因而雷同的输出,通过模型后会失去不同的后果;将 $z_{i}^{’}$ 向量作为 $z_{i}$ 的正例,其余向量作为负例,SimCSE 的训练指标变成:
$l_{i}=-\log\frac{e^{sim(h_{i}^{z_i},h_{i}^{^{z_i^{’}}})/\tau}}{\sum_{j=1}^{N} e^{sim(h_{i}^{z_i},h_{j}^{z_j^{’}})/\tau}}$
留神:$z$ 为 Transformers 中的规范 dropout mask,在无监督 SimCSE 没有额定减少任何 dropout。

2.3.1Dropout 数据加强与其余的比拟

通过 dropout masks 机制进行数据加强结构正例的办法,能够视为一种最小模式的数据裁减,正例与原始样本之间采纳完全相同的句子,只有在向量表征过程中的 dropout mask 有所不同。

在 STS- B 的开发集上,比拟该办法与其余数据加强办法的差别。在英文维基上随机抽取 $10^6$ 个句子进行训练,学习速率 =3e-5,批次大小为 64。并训练过程中没有应用 STS 训练集。

  • 裁剪,删除和替换等数据加强办法,成果均不如 dropout masks 机制,即便删除一个词也会侵害性能,具体如下表所示,
  • 应用下一句作为指标训练,或者采纳两个独立的编码器进行编码的成果,不如采纳一个编码器的 dropout masks 机制,具体如下表所示,

3.2 为什么该办法能够 work?

  • 为了进一步了解 dropout 噪声在无监督 SimCSE 中的作用,论文尝试了不同的 dropout 率,如下表所示,

能够发现仅在默认 dropout 概率 p =0.1 时成果最优,并且当 dropout 概率 p =0,或者雷同输出有同样的 dropout mask 时,效果显著降落。

  • 在训练过程中,每隔 10 步查看一次模型,并可视化 alignment 和 uniformity 在训练过程中的变动,如下图所示,

能够发现,在训练过程中,所有模型的平均性都在进步,然而对于 no-dropout 和 fixed-0.1 模型来说对齐性急剧下降,而无监督 SimCSE 和 delete-one-word 模型进本持平。尽管 delete-one-word 模型的对齐性好于无监督 SimCSE,然而平均性相差较多,因而在整体成果上,无监督 SimCSE 更胜一筹。

2.4. 有监督 SimCSE

比照学习的要害是如何构建 $(x_{i}, x_{i}^{+})$ 数据对,在无监督 SimCSE 中,借助 dropout mask 机制,结构高质量 $x_{i}^{+}$ 数据,曾经取得了较好的句向量表征;在有监督 SimCSE 中,如何通过监督数据,进一步提高句向量表征,具体如下:

2.4.1 监督数据的抉择

共存在四种数据集,适宜结构比照学习 $(x_{i}, x_{i}^{+})$ 数据对,别离是:

  • QQP:Quora 问题对;

类似的问题对为正样本,如下:

正样本
How can I improve my communication and verbal skills? 
What should we do to improve communication skills?

不类似的问题对为负样本,如下:

负样本
Why are you so sexy? 
How sexy are you?
  • Flickr30k:每个图像都有 5 集体进行形容,能够认为同一图像的任意两个形容为一对 $(x_{i}, x_{i}^{+})$ 数据对;
    以下图为例:

对图片中的人物的 5 段形容,如下:

人物形容
Gray haired man in black suit and yellow tie working in a financial environment.
A graying man in a suit is perplexed at a business meeting.
A businessman in a yellow tie gives a frustrated look.
A man in a yellow tie is rubbing the back of his neck.
A man with a yellow tie looks concerned.
  • ParaNMT:大规模的回译数据集;

针对原数据进行机器翻译,取得回译数据,如下:

原数据:so, what’s half an hour?
回译数据:half an hour won’t kill you.
  • NLI datasets:自然语言推理数据集,包含:SNLI 和 MNLI。

自然语言推理数据集,蕴含蕴含、矛盾和中立;蕴含示意第二句话能够推理出第一句话;矛盾示意第二句话不能推理出第一句话;中立示意两句话无关;举例如下:

蕴含样本
well you see that on television also 
You can see that on television, as well.
矛盾样本
but that takes too much planning 
It doesn't take much planning.
中立样本
Conceptually cream skimming has two basic dimensions - product and geography. 
Product and geography are what make cream skimming work.

在四种数据集上, 间接应用 $(x_{i}, x_{i}^{+})$ 数据对进行训练的后果如下表所示,

能够发现,NLI 数据集上,采纳语义蕴含对作为 $(x_{i}, x_{i}^{+})$ 数据对的成果最好;并且统计发现,语义蕴含对 (SNLI + MNLI) 的词汇重叠仅占比 39%,而 QQP 和 ParaNMT 数据集占比 60% 和 55%。最终,抉择 NLI 数据集进行监督学习。

2.4.2 难负例的应用

NLI 数据集中,一个前提假如文本,具备对应的蕴含文本和矛盾文本,将矛盾文本作为难负例;即,$(x_{i}, x_{i}^{+})$ 数据对变成 $(x_{i}, x_{i}^{+}, x_{i}^{-})$ 数据组,其中,$x_{i}^{+}$ 为蕴含文本,$x_{i}^{-}$ 为矛盾文本;监督学习 SimCSE 的训练指标变成:
$l_{i}=-\log\frac{e^{sim(h_{i},h_{i}^{+})/\tau}}{\sum_{j=1}^{N} (e^{sim(h_{i},h_{j}^{+})/\tau} +e^{sim(h_{i},h_{j}^{-})/\tau})}$
通过上表能够发现,减少矛盾文本作为难负例后,成果有所提高。
直观上,辨别难负例(矛盾文本)和 Batch 内其余负例可能是无益的,将监督学习 SimCSE 的训练指标变成:
$l_{i}=-\log\frac{e^{sim(h_{i},h_{i}^{+})/\tau}}{\sum_{j=1}^{N} (e^{sim(h_{i},h_{j}^{+})/\tau} + \alpha^{1_{i}^{j}} e^{sim(h_{i},h_{j}^{-})/\tau})}$
用不同的 α 值训练 SimCSE 模型,并在 STS- B 开发集上对训练的模型进行评估,发现当 α 为 1 时成果最优,并且中性数据不会带来更多的收益,如下表所示,

2.5. 各向异性问题

最近的钻研发现了语言表征中的各向异性问题,即训练后的 embeddings 仅占据在向量空间中狭隘的局部,重大限度了向量的表现力。
缓解这个问题的一个简略办法是后处理,能够打消次要的主成分或将 embeddings 映射到各向同性散布。另一种常见的解决方案是在训练过程中增加正则项。
而比照学习的优化指标能够改善缓解各向异性问题,当负例数趋近于无穷大时,比照学习指标的渐近示意为:
$- \frac{1}{\tau}\mathop{E}\limits_{(x_{i}, x_{i}^{+}) \sim p_{pos}}[f(x)^{T}f(x^+)] + \mathop{E}\limits_{x \sim p_{data}}[\log \mathop{E}\limits_{x^- \sim p_{data}}[e^{f(x)^{T}f(x^-)/ \tau}]]$
其中,第一项使正例之间更类似,第二项使将负例之间离开。而第二项在优化过程中,会压平向量空间的奇怪谱,因而比照学习无望缓解表征进化问题,进步句向量表征的平均性。并通过下图,能够发现,

  • 尽管预训练 embeddings 具备良好的对齐性,但其平均性较差;
  • 后处理办法,大大改善平均性,但也使其对齐性变差;
  • 无监督 SimCSE 无效地进步了预训练 embeddings 的平均性,同时放弃了良好的对齐性;
  • 有监督 SimCSE,能够进一步提高对齐性。

2.6. 试验细节

对 7 个语义文本类似度 (STS) 工作进行了试验,将无监督和有监督的 SimCSE 与 STS 工作中的最先进的句子嵌入办法进行了比拟,能够发现,无监督和有监督的 SimCSE 均获得了 sota 的成果,具体如下表所示,

2.6.1 训练参数

对于有监督的 SimCSE,对模型进行 3 个轮的训练,在 STS- B 的开发集上每训练 250 步进行一次模型验证,并保留测试集上最优成果的节点。对于无监督的 SimCSE 与有监督的 SimCSE 操作统一,但仅训练一个 epoch。并对批次大小和学习率进行网格搜寻,找寻最优参数,如下图所示,

试验发现,只有相应地调整学习速率,SimCSE 对批量大小并不敏感,这与比照学习须要大批次的发现相矛盾。可能起因为所有 SimCSE 模型都是在原有预训练模型根底上持续训练的,曾经提供了较好的初始化参数。

2.6.2MLP Layer

对于无监督和有监督的 SimCSE,训练过程均采纳在带有一个 MLP 层的 [CLS] 向量作为句向量表征。但,对于无监督的 SimCSE,在测试中抛弃了 MLP 层,仅应用 [CLS] 向量作为句向量表征,具体试验如下表所示,

2.6.3MLM

在训练过程中引入 masked language modeling 变量,能够提到模型的迁徙成果,如下表所示,

但值得注意的是,迁移性的进步,会造成原始工作上的成果降落。

2.6.4 温度

温度次要用于调整 softmax 函数的平滑水平,在训练过程中,温度为 0.05 时,成果最佳。

SimCSE 论文,在无监督句向量表征上,通过简略的 dropout 形式,结构了比照学习的正例,达到堪比监督学习效果,堪称大道至简。并且在监督学习上,比照学习框架成果也获得了 SOTA。

  • 参考文献
  • SimCSE: Simple Contrastive Learning of Sentence Embeddings

更多文章请关注公重号:汀丶人工智能

3.NLP 更多具体介绍:数据加强、智能标注、用意辨认算法 | 多分类算法、文本信息抽取、多模态信息抽取、可解释性剖析、性能调优、模型压缩算法等

前人栽树后人乘凉,本专栏提供材料:数据加强、智能标注、用意辨认算法 | 多分类算法、文本信息抽取、多模态信息抽取、可解释性剖析、性能调优、模型压缩算法等我的项目代码整合,省去你大把工夫,效率晋升。帮忙你疾速实现工作落地,以及科研 baseline。

NLP 专栏简介:数据加强、智能标注、用意辨认算法 | 多分类算法、文本信息抽取、多模态信息抽取、可解释性剖析、性能调优、模型压缩算法等

正文完
 0