为什么NLP中需要词嵌入 word embeddings(学习心得)

NLP中一个关键理念就是词嵌入。这是语言表示的一种方式。让机器理解词语的对应关系。
在这里插入图片描述

我们的词表,比如有10000个词,如果我们都是用 one-hot vector 来表示

比如两个 one-hot vector,分别是 man 和 woman。
比如 Man 这个单词,在 5391 处是 1,其他位置都是 0
Woman,在 9853 处是 1,其他位置为 0
这种方法把每个词孤立起来了。算法对相关词的泛化能力 generalize the cross words 不强
这是因为任何两个 one-hot vector 的内积为 0。也就是两者无关。

任意两个 vector 之间的距离都一样!所以每个词都是不相关的。
这样的结果就是,算法觉得吃苹果和吃橘子没有关系。而事实上“苹果”和“橘子”具有某种相关性,而算法如果能学习到这种相关性,就能提高泛化能力。
在这里插入图片描述

这里设置多个维度,每个维度设置为 -1~1的区间,以参数的大小来衡量极性。
这里假设我们设置了300个不同的衡量维度,即每个单词对应一个 300 维的向量
这个时候我们获得的“苹果”“橘子”的向量就不一样了,两个向量会有相关性

比如某些属性上,颜色不太一样,但是水果属性都很高,食物属性等大多数属性都非常类似
当算法理解到什么是苹果的时候,很容易理解橘子是什么,即获得了更好的泛化效果
这就能够比 one-hot vector 更好地表示不同的单词

  • 但是我们最终获得的属性,并不会像这里的例子一样好解释,因为是机器自己学到的
    在这里插入图片描述

有趣的是,可以把300维的向量内嵌到一个二位空间里面,以便于 visualize

常用的算法叫做 t-SNE 算法,来自于 Laurens van der Maaten 和 Geoff Hinton 的论文
我们会发现有聚类效果,比如都是人的会靠的比较近,都是数字的在一堆,水果在另一堆
把词在高纬空间中表示,这个过程就叫做 embeddings 嵌入,这就好比把每一个单词拿出来,嵌入到一个 300 维/或更高维度的空间里面

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值