在了解什么是嵌入(embeddings)之前,我们需要先搞清楚一个词语在NLP中是如何被表示的

注:本次不涉及任何具体算法,只是单纯对概念的理解

词汇表征

One-Hot

词汇的表示方法有很多,最有名的肯定是独热编码(One-Hot )了。因为不是重点,所以下面只简单介绍一下

废话不多说,上图!

假设我们有10000个词,Man位于第5391个,Woman位于9853,如果想要唯一表示这些词怎么办?

我们可以根据词的总量创建一个n行一列的矩阵,在某个词出现的地方标注为1,其余都用0填充,这样就可以唯一表示某个词了(如上图中的Man),这就是One-Hot编码的基本原理

为什么它常常被提到?可能因为比较好理解吧

但One-Hot其实有很多问题的,例如:

  • 数据量大了就炸了
  • 词与词之间没有关联性

关于第二个缺点这里单独说明一下

设想你已经有一个训练好的语言模型,可以预测句子下一个词是什么,如:

我想喝可口()#模型会判断出完整句子为“我想喝可口可乐”

但是换一下

我想喝百事()#这时候你的模型可能不知道“百事”与“可口”之间的联系,自然它不会输出“我想喝百事可乐”的结果

这种情况我们称为泛化性差。

那么想要提高泛化性,我们势必要获得词语之间的关系

一种自然的思路就是增加维度

高维词语表征

这里为什么不说一种具体的方法呢?因为我还是想从举例入手,避免一步太大扯着蛋

废话不多说,还是上图

我们还是沿用之前的例子,只是这里我们加入了Apple和CS两个新词

这次试试用特征化的表示方法来表示这些词,因此,我们的学习对象从词的唯一表示变成了词的特征

例如,我们想知道这些词语与性别(gender)这个特征之间的关系

因为Man和Woman本质上就是性别的指代,这两个词应该最接近性别(gender)特征,所以我们假设男人的性别值是-1,女人的是1。

King和男人是非常相关的则可设为-0.95,Queen则与女人非常相关,可设为0.97,Apple和CS则与性别没什么关系,这显然是符合我们认知的。

注意:这里的数字只是为了说明相关性,不是由某种计算得出的(暂时不是),你也可以把King设成-0.91

图中其余特征表示原理类似

又如游戏(Game)与CS这个词相关性大,因此CS的数值为0.98,而其余的就很低,表明他们与游戏这个特征没什么关系

那么好了,现在我们把特征扩展到500个

也就是说,我们有了500个维度去衡量一个词语

此时右边出现了一些由数值构成的奇怪阵列(你在看glove之类的模型时经常会看见这种东西)

现在,我们还是用一个矩阵表示一个词,这个矩阵的大小为500行1列,由某个词的特征构成从而具有唯一性

由此,Man就可以表示为e_5391,同理可以表示其他词汇

因此,高维表示会比One-Hot有更好的泛化能力。

这种用300维的特征去表示一个词语的方法就称为嵌入(embeddings),至于为什么叫嵌入,我猜可能与高维图像的表示有关,类似于一种嵌套。

最新文章

  1. SQL Server中的高可用性(3)----复制
  2. CRC在线计算器
  3. jsp常用指令
  4. HTML5 API 之 history
  5. 用MT.exe将exe中的manifest文件提取出来和将manifest文件放入exe中
  6. Qt 学习之路:二进制文件读写
  7. cas+tomcat+shiro实现单点登录-3-CAS服务器深入配置(连接MYSQL)
  8. FreeCodeCamp:Title Case a Sentence
  9. birt报表报错, There is no report design object available.org.eclipse.birt.report.exception.ViewerExcepti
  10. UltraEdit 中的常用正则表达式
  11. JQgrid表格的使用
  12. nodeJS中的包
  13. Java开发工具(Eclipse中内容辅助键的使用)
  14. UE4 custom depth 自定义深度
  15. python 云打码 hhtp接口
  16. 反调试——jmp到那个地址
  17. jquery添加属性使用attr、prop。
  18. 【深度学习】一文读懂机器学习常用损失函数(Loss Function)
  19. Atcoder Beginner Contest 118 D-Match Matching(完全背包)
  20. leecode第一百四十八题(排序链表)

热门文章

  1. 实施CRM系统后 企业客户服务的改变
  2. 强哥PHP学习笔记
  3. Sed常用功能个人整理
  4. BUUCTF(十)[GXYCTF2019]Ping Ping Ping 1
  5. 如何解决在WordPress安装Redis插件时需要输入FTP问题?
  6. k8s运行容器之Job应用(6)
  7. python基础之字典、集合
  8. mysql基础之mariadb的安装,连接,用户,密码,权限设置语句详解
  9. Python3统计gitlab上的代码量
  10. 6.3-4 zip、unzip