cbow word2vec 损失_NLP自学笔记I——word2vec

词向量文本数据与结构化统计数据存在较多差异,最为明显的一点是:许多模型不直接接受文本数据输入,需要通过一定的手段先将文本数据转化为数值向量。最直观的转化方法是独热码(one-hot),即找来一本拥有V个词的词典,给词典内每个词编上从1开始逐次递增的号码,所有词都可以表示为一个长度为V的单位向量,该向量除特定位置上的元素为1外,其余元素均为零。独热码非常直观,缺点也很明显,那就是形成的词向量维度较高...
摘要由CSDN通过智能技术生成

8e3673500f2ba21ae3f1741db50b117b.png

词向量

文本数据与结构化统计数据存在较多差异,最为明显的一点是:许多模型不直接接受文本数据输入,需要通过一定的手段先将文本数据转化为数值向量。

最直观的转化方法是独热码(one-hot),即找来一本拥有V个词的词典,给词典内每个词编上从1开始逐次递增的号码,所有词都可以表示为一个长度为V的单位向量,该向量除特定位置上的元素为1外,其余元素均为零。独热码非常直观,缺点也很明显,那就是形成的词向量维度较高,需要消耗大量的计算机资源来储存和处理它,还会遭遇维度诅咒,影响算法效果。那么,我们有没有办法对词向量进行降维?

所谓降维就是将原来长度为V的向量用另一个长度为n<<V的向量表示,这是有可能实现的,因为独热码给出的词向量很稀疏,只有一个元素拥有非零值,绝不是一种高效的信息储存方式。此外,对词向量降维也非常容易,可引入一个维度为

的矩阵
,已知可将矩阵视为线性变换,如果想将维度为V的词向量
转化为维度为n的词向量
,只要执行如下操作就可以了:
因为独热码表示的词向量只有一个非零元素且值为1,上式实际上就是取矩阵
的列。如果我们找到了这样的矩阵
,那么它的各个列就是我们想要的词向量。如果确实存在合理的低维词向量,那么把它们并排放起来就能拿到满足上述条件的矩阵

现在问题来了,矩阵

可以随便取么?如果不可以,矩阵
应当满足什么性质呢?

词的相似性

我们想要的低维词向量应该拥有这样一个性质:相似的词拥有相似的词向量

什么是相似的词向量?两个向量比较相似可以认为是距离比较接近,比如说算一下两个词向量的欧氏距离,距离较小则认为相似度较高。当然,在这里使用的是余弦相似度,即考察两个向量之间的夹角,给出余弦相似度的计算公式如下:

分子是两个向量的点乘,分母是为了将点乘结果标准化到[-1,1]。
越大,两个词向量越相似,或者说
的值越大,向量
和向量
就越相似。使用独热码表示的词向量永远彼此正交,余弦相似度永远为零,完全无法刻画词与词之间的相似性。

什么是相似的词?大佬对相似词做出的定义是这样的:

words are similar if they appear in similar contexts. --Harris, 1954

意思是说开心一般都是出现在我很开心这样的搭配中,我很开心这个词的附近,是开心的上下文(contexts)。高兴一般也出现在我很高兴这样的搭配中,我很也是高兴的上下文,这两个词的上下文非常相似,两者就是相似词。

一些用的比较多的搭配也是相似词,比如说我很开心这两个词也经常出现在相似的上下文中,如:今天又洞房花烛夜了,我很开心今天又喝旺仔牛奶了,我很开心今天又享受福报了,我很开心,在这些句子中今天又xxx了同时

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值