【深度学习】NLP 与词嵌入

本文为深度学习的学习笔记,讲解NLP 与词嵌入。欢迎在评论区与我交流 😀

词汇表征

单词表示

词嵌入是语言表示的一种形式,可以让算法自动理解类似的词语,例如男人和女人。

在之前的【循环神经网络 RNN】中,我们使用 one-hot 向量来表示词,例如 man 是词典中的第 5391 个单词,可以表示为只在 5319 处为 1 的向量,记为 O 5391 O_{5391} O5391

在这里插入图片描述

这种表示方法的缺点是每个词都是独立的,对相关词的泛化能力不强。例如我们已经学到了一个语言模型,预测“I want a glass of orange ____” 中空的单词是什么,模型预测为 juice。但当模型看到 “I want a glass of apple ____” 时,因为任意两个 one-hot 向量的内积都是 0,算法不知道 apple 和 orange 的关系,所以模型很难预测下一个单词为 juice。

特征化表示:词嵌入

词嵌入是 NLP 中最重要的概念之一。

使用特征化的表示方法可以很好地表示单词间的相关性。例如我们使用性别、高贵、年龄、是否为食物等 300 个特征来表示单词,得到的结果如下:

在这里插入图片描述

每个单词可以表示为一个 300 维的向量,用 e 5391 e_{5391} e5391 表示 man 的向量。这样,相似单词就具有相似的向量,算法也具有更好的泛化能力。

可视化词嵌入

学习到 300 维的向量或词嵌入时,我们可以将 300 维的数据使用可视化算法(常用 t-SNE 算法)嵌入到二维空间中。下图中男人和女人聚集在一起,动物、水果、数字则各自聚集在一起。

在这里插入图片描述

词嵌入算法对于相近的概念学到的特征也是相似的,可视化时也会映射为相似的特征向量。嵌入的意思就是每个单词被嵌入到空间的一个点上。

使用词嵌入

命名实体识别的例子

例如我们要从句子“Sally Johnson is an orange farmer”中找出人名,我们之所以能确定 “Sally Johnson” 是人名,是因为种橘子的农民肯定是一个人。如果我们使用词嵌入的表示方式,当模型判断 “Robert Lin is an apple farmer” 中的人名时,因为知道苹果和橘子是相似的,因此 “Robert Lin” 也被预测为人名。

在这里插入图片描述

但当其中的 “apple farmer” 变为一个不常见的单词时,例如榴莲培育家,若我们只有一个很小的标记训练集,其中可能没有这两个单词。

如果有一个已经学好的词嵌入,由特征向量的相似性会知道榴莲是水果,培育家和农民是一类,那么我们会从 “种橙子的农民” 归纳出榴莲培育家也是一个人。得到这个归纳结果是因为词嵌入算法会考察大量的无标签文本集,从而发现橙子和榴莲特征相近。因此我们可以使用迁移学习,将网上无标签文本集中学到的能辨别橙子、榴莲都是水果的知识迁移到命名实体识别的任务中。

迁移学习和词嵌入

  1. 从大量文本集中学习词嵌入,或者直接下载开源的预训练好的词嵌入模型
  2. 将词嵌入模型迁移到当前具有少量标记训练集的任务中,从而用更低维度(更紧凑)的特征向量代替原来的 one-hot 向量。但 one-hot 向量计算很快
  3. 命名实体识别任务的标记数据集很大时,需要用新的数据微调词嵌入。

关于迁移学习见【深度卷积网络】。

词嵌入与人脸编码

在人脸识别中,我们训练了一个孪生网络结构,用来学习人脸的 128 维的表示,通过比较编码结果来判断两张图片是否是同一个人脸。这和词嵌入很相似。

人脸编码中,我们任意输入一张图片(可不在训练集中),都能输出图片中人脸的编码。而在词嵌入中,我们有固定的词汇表,对应每个词汇表中的单词学习固定的词嵌入。如果出现了词汇表以外的单词,则记为 UNK。

关于人脸编码见【人脸识别】。

词嵌入的特性

词嵌入可以帮助实现类比推理,虽然类比推理不是一个重要的任务,但可以帮助我们理解词嵌入的原理。

类比

例如这是词嵌入捕捉的一系列单词的特征表示,如果 man 对应 woman,那么 king 对应什么?我们这里用四维的嵌入向量来表示一个单词,man 的向量记为 e m a n e_{man} eman

在这里插入图片描述

通过计算可以得到:
e m a n − e w o m e n ≈ [ − 2 0 0 0 ] e_{man}-e_{women}\approx\left[\begin{matrix} -2\\ 0\\ 0\\ 0 \end{matrix} \right] emanewomen2000

e k i n g − e q u e e n ≈ [ − 2 0 0 0 ] e_{king}-e_{queen}\approx\left[\begin{matrix} -2\\ 0\\ 0\\ 0 \end{matrix} \right] ekingequeen2000

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值