关于nlp:词向量Word-Embedding原理及生成方法

35次阅读

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

前言

Word Embedding 是整个自然语言解决(NLP)中最罕用的技术点之一,广泛应用于企业的建模实际中。咱们应用 Word Embedding 可能将天然文本语言映射为计算机语言,而后输出到神经网络模型中学习和计算。如何更深刻地了解以及疾速上手生成 Word Embedding 呢?本文对 Word Embedding 原理和生成办法进行了解说。

一、Word Embedding 初探

什么是 Word Embedding

一句话概述,Word Embedding 即词向量,是一种函数映射关系。咱们晓得,在机器学习中,特色都是以数值的模式进行传递的。同样的,在 NLP 中,文本特色也须要被映射成数值向量。例如,咱们将单词“你好”进行 Word Embedding 后,能够把其映射成一个 5 维向量:你好 ——> (0.1, 0.5, 0.3, 0.2, 0.2)。

词向量的映射过程

一般来说,咱们采纳“词 ——> 向量空间 1 ——> 向量空间 2”的映射过程实现文本单词向量化。整个映射过程能够分为两步:

1、词 ——> 向量空间 1

该步骤解决把一个词转换成 vector(数值向量)的问题。例如,将文本单词转换成 One-Hot 向量。

2、向量空间 1 ——> 向量空间 2

该步骤解决 vector 的优化问题,即在曾经有了一个 vector 的状况下,寻求更好的方法优化它。

二、应用 One-Hot 和 SVD 求 Word Embedding 办法

One-Hot(词——> 向量空间 1)

One-Hot 是目前最常见的用于提取文本特色的办法之一。本文应用 One-Hot 实现映射过程的第一步,即词——> 向量空间 1。

咱们将语料库中的每一个词都作为一个特色列,如果语料库中有 V 个词,则有 V 个特色列,例如:

在这一映射过程中,One-Hot 存在以下毛病:1)容易产生稠密特色;2)容易引发维度爆炸;3)使得词间失去语义关系。

例如,依照常识,旅店(hotel)和汽车旅店(motel)间应该是具备某种相似性的,然而咱们的映射后果却表明他们的向量积为 0。旅店(hotel)和汽车旅店(motel)之间的相似性等于其和猫(cat)之间的相似性,这显然是不合理的。

改良方向:

1)尝试将词向量映射到一个更低维的空间;

2)同时放弃词向量在该低维空间中具备语义相似性,如此,越相干的词,它们的向量在这个低维空间里就能靠得越近。

SVD(向量空间 1——> 向量空间 2)

1、如何示意出词和词间的关系

SVD,即奇怪值合成(Singular Value Decomposition),是在机器学习畛域广泛应用的算法,它不仅能够用于降维算法中的特色合成,也广泛应用于举荐零碎,以及自然语言解决等畛域,是很多机器学习算法的基石。本文应用 SVD 来解决 vector 的优化问题。

咱们首先结构了一个亲和矩阵(affinity matrix),先保障在不降维的状况下,可能反映出词和词间的关系。结构亲和矩阵的形式有很多种,这里列举较常见的两种形式。

形式一

假如你有 N 篇文章,一共有 M 个去重词,则能够结构亲和矩阵如下:

其中每一个值示意单词在某篇文章中的呈现次数。这个矩阵能够反映词的一些性质。比方一个词是“收获”,那么它可能在“农学”类的文章里呈现得多一些;一个词是“电影”,那么它可能在“艺术”类的文章中呈现得多一些。

形式二

假如咱们有 M 个去重单词,则可结构 M * M 的矩阵,其中每个值示意相应的两个单词在一篇文章里独特呈现的次数,例如:

2、对亲和矩阵进行合成

有了亲和矩阵,就能够对其进行 SVD 合成,这个目标就是进行降维了,后果如下:

咱们把原亲和矩阵 X(右边)分解成了左边的三局部,左边的三个局部从左到右能够这么了解:

U 矩阵 :从旧的高维向量空间到低维向量空间的一种转换关系;

σ 矩阵 :方差矩阵。每一列示意低维空间中每一个坐标轴的信息蕴含量。方差越大,阐明在该坐标轴上数据稳定显著,则信息蕴含量越丰盛。在降维时,咱们首先思考保留方差最大的若干个坐标轴;

V 矩阵 :每个词向量的新示意形式。在和前两个矩阵相乘后,失去最终的词向量示意形式。

此时,左边的矩阵仍然是 V 维的,还没有实现降维。因而,正如前文所说,咱们取 top k 大的方差列,将 U,σ 和 V 三个矩阵依照方差从大到小的顺序排列好,这样就能失去最终的降维后的后果了:

3、SVD 毛病

1)亲和矩阵的维度可能常常变,因为总有新的单词加进来,每加进来一次就要从新做 SVD 合成,因而这个办法不太通用;2)亲和矩阵可能很稠密,因为很多单词并不会成对呈现。

改良思路:

1)在升高稠密性方面,能够不仅仅关注和一个单词有上下文关系的那些词;2)对于一个模型从没有见过一个单词,则思考从上下文关系中猜到它的信息,以减少通用性。

沿着这两个思路,咱们能够思考引入 CBOW 和 Skip-Gram,来求 word embedding。

三、CBOW 和 Skip-Gram 求 Word Embedding

CBOW 的全称是 continuous bag of words(间断词袋模型),其本质也是通过 context word(背景词)来预测一个单词是否是中心词(center word)。Skip-Gram 算法则是在给定中心词(center word)的状况下,预测一个单词是否是它的上下文(context)。

本文主题是 embedding,这里咱们提到预测中心词和上下文的最终目标还是通过中心词和上下文,去训练失去单词语义上的关系,同时把降维做了,这样就能够失去最终想要的 embedding 了。

CBOW

思路:

假如已知一个 center word 和一串 context

可尝试训练一个矩阵 V,它的作用是把单词映射到新的向量空间中去(这就是咱们想要的 embedding!)

同时还可训练一个矩阵 U,它的作用是把 embedding 后的向量映射到概率空间,计算一个词是 center word 的概率。

训练过程:

过程详述:

(1)假如 X 的 C 次方是两头词,且 context 的长度为 m,那么 context 样本能够示意成

其中每一个元素都是一个 One-Hot vector。

(2)对于这些 One-Hot 变量,咱们心愿能够用 Word Embedding 将它映射到一个更低维的空间。这里要补充介绍一下,Word Embedding 是一种 function,映射到更低维的空间是为了升高稠密性,并放弃词中的语义关系。

(3)获得 embedding 后输出 vector 的平均值。之所以要取平均值,是因为这些单词都具备上下文分割,为了训练不便,咱们能够用一个更紧凑的办法示意它们。

(4)这样,咱们就实现了一个文本在低维空间中的均匀 embedding。

接下来,咱们须要训练一个参数矩阵,对这个均匀 embedding 进行计算,从而输入均匀 embedding 中每一个词是中心词的概率。

CBOW 一条龙训练过程回顾

softmax 训练打分参数矩阵

穿插熵:

skip-gram


skip-gram 已知中心词,预测 context。此处不再赘述。

总结

本文对 Word Embedding 原理和生成办法进行了解说,对 Word Embedding 生成过程中的相干问题进行了解答,心愿能帮忙读者晋升 Word Embedding 的实际效率。

现在,机器学习疾速倒退,并利用到泛滥行业场景。作为一家数据智能企业,个推在大规模机器学习和自然语言解决畛域继续摸索,也将 Word Embedding 利用到标签建模等方面。目前,个推曾经构建起笼罩数千种标签的平面画像体系,为挪动互联网、品牌营销、公共服务等畛域的客户发展用户洞察、人口剖析、数据化经营等继续提供助力。

后续个推还将持续分享在算法建模、机器学习等畛域的干货内容,请放弃关注哦。

正文完
 0