GloVe:Global Vectors for Word Representation(2014-1-2)

模型介绍

GloVe是由斯坦福大学提出于2014年在论文《GloVe:Global Vectors for Word Representation》中提出的模型,它的全称是Global Vectors,它主要将count based与direct prediction两种方法结合,即用到了语料库的全局信息,又用到了局部的上下文特征。它能做到这一点主要是依靠引入的一个共现矩阵,即co-occurrence probabilities matrix。

传统的学习词向量的模型主要分为两种类型:count based和direct prediction。其中count based method主要是构建一个global matrix,然后对该矩阵进行分解,进而得到文本与单词的相关信息,但是该矩阵是一个稀疏矩阵,进行SVD分解的代价是很大的,导致该算法的效率不高;direct prediction method主要是利用一个滑动的local context window来直接对文本进行预测,但是该方法用到的信息仅限于window内,没有用到全局信息。而Glove就是结合了这两者从而得到的一个新算法

介绍GloVe之前,我们首先需要介绍一下它所用到的两个方法,count based和direct prediction。

count based method

顾名思义,该方法是基于count计数的,我们简要介绍一下count based的经典模型LSA(Latent Semantic Analysis),以此来了解count based的工作原理。LSA没有使用到神经网络,属于无监督学习,具有统计的韵味。

LSA实现原理主要是构造了一个单词-文本矩阵X,该矩阵的每行表示单词,每列表示文档,矩阵中的元素 x i j x_{ij} xij 表示第i个单词在第j个文档中出现的次数。将单词-文本矩阵进行SVD分解有:X=ABC(在分解时,我们选定主题k,只保留前k个最大的奇异值进行分解)。

其中A称为左奇异矩阵,它的每一行表示的是一个单词与主题的相关性,它的每一列表示每个单词出现的频繁程度;B是一个对角阵,它的对角元素是奇异值,代表了各个主题的权重;C称为右奇异矩阵,它的每一列表示的是一个文档与主题的相关性,它的每一行表示每个文档中出现词的个数的近似。

随后,我们可以将分解后的结果提取出来进行聚类,这样实现的效果,可以提取文本集合中的近义词,得到了语义级别的模型。

direct prediction

direct prediction的经典模型就是word2vec,它就是即时的利用一个滑动窗口,直接进行语言模型的预测。使用到了浅层神经网络进行训练,具体可以参考这里

模型结构

GloVe也是训练词向量的一种方法,GloVe融合了矩阵分解Latent Semantic Analysis (LSA)的全局统计信息和local context window优势。融入全局的先验统计信息,可以加快模型的训练速度,又可以控制词的相对权重。GloVe是count-based的模型,因为没有使用神经网络。

GloVe首先基于语料库构建词的共现矩阵,然后基于共现矩阵和GloVe模型学习词向量。

共现矩阵

设共现矩阵为X,其元素为 X i j X_{ij} Xij X i j X_{ij} Xij的意义为:在整个语料库中,单词i和单词j共同出现在一个窗口中的次数。

设有语料库:i love you but you love him i am sad。这个小小的语料库只有1个句子,涉及到7个单词:i、love、you、but、him、am、sad。如果我们采用一个窗口宽度为5(左右长度都为2)的统计窗口,那么就有以下窗口内容:

窗口标号中心词窗口内容
0ii love you
1lovei love you but
2youi love you but you
3butlove you but you love
4youyou but you love him
5lovebut you love him i
6himyou love him i am
7ilove him i am sad
8amhim i am sad
9sadi am sad

窗口0、1长度小于5是因为中心词左侧内容少于2个,同理窗口8、9长度也小于5。

以窗口5为例说明如何构造共现矩阵,中心词为love,语境词为but、you、him、i;则执行: X l o v e , b u t + = 1 , X l o v e , y o u + = 1 , X l o v e , h i m + = 1 , X l o v e , i + = 1 X_{love,but}+=1,X_{love,you}+=1,X_{love,him}+=1,X_{love,i}+=1 Xlove,but+=1,Xlove,you+=1,Xlove,him+=1,Xlove,i+=1。使用窗口将整个语料库遍历一遍,即可得到共现矩阵X。

Glove模型

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

模型参考

论文地址:https://aclanthology.org/D14-1162.pdf
代码地址:https://github.com/stanfordnlp/GloVe

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不负韶华ღ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值