词向量表征

介绍了Word2Vec、Glove和FastText生成词向量的原理以及各种方法的局限性 

感谢fastText原理及实践 - 知乎

本文参考以上链接

1、Word2Vec

(1)CBOW:用上下文预测目标词汇

Input layer:上下文单词的onehot,其中C为输入上下文单词的个数,V为每个单词的dim

则其输入的(X1, X2, ... , Xc)的shape为C*V

Hidden layer:所有输入的onehot乘以W,进行相加求平均值,此时h为1*N

Output layer:然后h乘以W‘得到一个V-dim概率分布,概率最大的index对应的单词为预测值

其中:定义loss function(一般采用交叉熵,用来衡量真实标记和预测标记的相似度),采用梯度下降的方法更新W和W’,训练完成后,输入层的单词乘以W就是所需要的词向量

对于词库非常庞大的时候,则隐层矩阵的维度也会相当大,在反向传递中计算会很大,可以将多个单词当成一个word来进行处理

(2)skip-gram:用目标词汇来预测上下文

相比传统的one-hot词向量的优势:

  • 低维稠密:one-hot类型词向量是一种高维稀疏的表示方法,计算效率低

  • 蕴涵语义:one-hot类型词映射到高维空间中是相互正交的,词与词之间没有任何关联,word2Vec的思想:具有相同上下文的词语包含相似的语义

自身缺点:

  • 使用唯一词向量,对于一词多义的情况,无法正确处理

  • 只能利用一定窗长的上下文环境,即利用局部信息,没法利用整个语料库的全局信息

2、FastText

FastText = CBOW(Word2Vec) + h-softmax

FastText的三个组成部分:模型架构、层次softmax和N-gram特征  

模型架构:类似于CBOW

Input layer:输入是不仅是文本中单词还有其n-gram特征,这些特征用来表示单个文档

Hidden layer:输入特征向量通过线性变换映射到中间层(即对Input layer中的输入向量进行累加后取均值)

Output layer:预测文本所属于的标签

层次softmax:

解决在标准的softmax分类中,分类标签过多而导致计算复杂度高的问题

在哈夫曼编码的基础上,对标签进行编码

N-gram特征:

传统的词袋模型无法考虑到词之间的顺序,因此引入N-gram特征

例:”我看你“ 传统的词袋模型特征为”我“ ”看“ ”你“ 与”你看我“的特征是一样的无法进行区分

引入N-gram:对于2-gram特征为”我看“ ”看你“ ”你看我“特征为”你看“ ”看我“ 可以进行区分

  • 缺点:

    因为Hidden layer是通过简单的求和取平均值得到的,这种方式会丢失词的顺序信息,因此引入了N-gram特征

3、GloVe

Glove本质是加权最小二乘回归模型,引入共现概率矩阵。

目标获取每个词的向量表示,且词向量中包含了共现矩阵中信息,体现出词之间的关系

共现矩阵:统计单词-单词之间共现次数

例如:I like deep learning. I like NLP. I enjoy flying.

当前窗口为1,根据预料所生成的共现矩阵

img

好处:能够很好的表达词语与词语之间的关系、对整个语料库进行统计  

共现概率:

词i和词j的共现概率(即词j出现在词i环境下的概率)= (词j出现在词i环境的次数) / (任意词出现在i的环境的次数)

img

  • Glove训练过程:

    统计共现矩阵,初始化W和W‘以及偏置向量B和B’,构建损失函数,使用梯度下降算法更新参数

  • 优点:相比较word2Vec结构简单,速度更快,采用有监督学习,Label为log Xij

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

请多关赵

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

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

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

打赏作者

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

抵扣说明:

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

余额充值