自然语言处理从入门到应用——全局向量的词嵌入:GloVe(Global Vectors for Word Representation)词向量

分类目录:《自然语言处理从入门到应用》总目录


无论是基于神经网络语言模型还是Word2vec的词向量预训练方法,本质上都是利用文本中词与词在局部上下文中的共现信息作为自监督学习信号。除此之外,另一类常用于估计词向量的方法是基于矩阵分解的方法,例如潜在语义分析(参考《自然语言处理从入门到应用——文本的表示方法》)等。这类方法首先对语料进行统计分析,并获得含有全局统计信息的“词–上下文”共现矩阵,然后利用奇异值分解(Singular Value Decomposition,SVD)对该矩阵进行降维,进而得到词的低维表示。然而,传统的矩阵分解方法得到的词向量不具备良好的几何性质,因此,结合词向量以及矩阵分解的思想,提出了GloVe(Global Vectors for Word Representation)模型。

预训练任务

GloVe模型的基本思想是利用词向量对“词—上下文”共现矩阵进行预测(或者回归),从而实现隐式的矩阵分解。首先,构建共现矩阵 M M M,其中 M w , c M_{w, c} Mw,c表示词 w w w与上下文 c c c在受限窗口大小内的共现次数。GloVe模型在构建 M M M的过程中进一步考虑了 w w w c c c的距离,认为距离较远的 ( w , c ) (w, c) (w,c)对于全局共现次数的贡献较小,因此采用以下基于共现距离进行加权的计算方式:
M w , c = ∑ i 1 d i ( w , c ) M_{w, c}=\sum_i\frac{1}{d_i(w, c)} Mw,c=idi(w,c)1

式中, d i ( w , c ) d_i(w, c) di(w,c)表示在第 i i i次共现发生时, w w w c c c之间的距离。在获得矩阵 M M M之后,利用词与上下文向量表示对 M M M中的元素(取对数)进行回归计算。具体形式为:
v w T v c ′ + b w + b c ′ = log ⁡ M w , c v^T_wv_c'+b_w+b_c'=\log{M_{w, c}} vwTvc+bw+bc=logMw,c

式中, v w v_w vw v c ′ v_c' vc分别表示 w w w c c c的向量表示; b w b_w bw b c ′ b_c' bc分别表示相应的偏置项。对以上回归问题进行求解,即可获得词与上下文的向量表示。

参数估计

θ = { E , E ′ , b , b ′ } \theta=\{E, E', b, b'\} θ={ E,E,b,b}表示GloVe模型中所有可学习的参数, D D D表示训练语料中所有共现的 ( w , c ) (w, c) (w,c)样本集合。GloVe模型通过优化以下加权回归损失函数进行学习:
L ( θ , M ) = ∑ ( w , c ) ∈ D f ( M w , c ) ( v w T v c ′ + b w + b c ′ − log ⁡ M w , c ) 2 L(\theta, M) = \sum_{(w, c)\in D}f(M_{w, c})(v^T_wv_c'+b_w+b_c'-\log{M_{w, c}})^2 L(θ,M)=(w,c)Df(Mw,c)(vwTvc+bw+bclogMw,c)2

式中, f ( M w , c ) f(M_{w, c}) f(Mw,c)表示每一个 ( w , c ) (w, c) (w,c)样本的权重。样本的权重与其共现次数相关。首先,共现次数很少的样本通常被认为含有较大的噪声,所蕴含的有用信息相对于频繁共现的样本也更少,因此希望给予较低的权重;其次,对于高频共现的样本,也需要避免给予过高的权重。因此,GloVe采用了以下的分段函数进行加权:
f ( M w , c ) = { ( M w , c m max ) α , if M w , c ≤ m max 1 , otherwise \begin{aligned} f(M_{w, c})= \left \{ \begin{array}{ll} (\frac{M_{w, c}}{m^{\text{max}}})^\alpha,&\quad\text{if}\quad M_{w, c}\leq m^{\text{max}}\\ 1, &\quad\text{otherwise} \end{array} \right. \end{aligned} f(Mw,c)={ (mmaxMw,c)α,1,ifMw,cmmaxotherwise

M w , c M_{w, c} Mw,c不超过阈值 m max m^{\text{max}} mmax时, f ( M w , c ) f(M_{w, c}) f(Mw,c)的值随 M w , c M_{w, c} Mw,c递增且小于或等于1,其增长速率由 α \alpha α控制;而当 M w , c > m max M_{w, c}>m^{\text{max}} Mw,c>mmax时, f ( M w , c ) f(M_{w, c}) f(Mw,c)恒为1。

参考文献:
[1] 车万翔, 崔一鸣, 郭江. 自然语言处理:基于预训练模型的方法[M]. 电子工业出版社, 2021.
[2] 邵浩, 刘一烽. 预训练语言模型[M]. 电子工业出版社, 2021.
[3] 何晗. 自然语言处理入门[M]. 人民邮电出版社, 2019
[4] Sudharsan Ravichandiran. BERT基础教程:Transformer大模型实战[M]. 人民邮电出版社, 2023
[5] 吴茂贵, 王红星. 深入浅出Embedding:原理解析与应用实战[M]. 机械工业出版社, 2021.

猜你喜欢

转载自blog.csdn.net/hy592070616/article/details/131253286