写点什么

带你了解 NLP 的词嵌入

  • 2022-11-11
    中国香港
  • 本文字数:1610 字

    阅读完需:约 5 分钟

本文分享自华为云社区《【MindSpore易点通】深度学习系列-词嵌入》,作者:Skytier。

1 特征表示


在自然语言处理中,有一个很关键的概念是词嵌入,这是语言表示的一种方式,可以让算法自动的理解一些同类别的词,比如苹果、橘子,比如袜子、手套。



one-hot 向量


之前小编给大家提到的词典库里一共有 15000 个元素,用 one-hot 向量来表示词。比如苹果 apple 在词典里是第 1142 个,那么对应向量只在第 1142 行为 1,其余均为 0,表示为



同理,其他的元素比如橘子 orange、袜子 socks、手套 gloves 都可以这样表示,但是同时这种方法也将把每个词孤立了起来,使得算法对相关词的泛化能力不够强。


比如我们通常会说:“I want a glass of orange juice.”但如果算法并不知道 apple 和 orange 的类似性(这两个 one-hot 向量的内积是 0),那么当其遇到“I want a glass of apple __”时,并不知道这里也应该填写 juice。


如果用特征化的表示来表示库里的每个词,学习它们的特征或者数值。



比如我们想知道 apple 和 arange 与性别的特征关系,实际它们并没有太大的关系,所以特征值接近于 0;第二、三个特征是与高贵和年龄的关系,特征值也没有太大的参考价值,接近于 0;但是第四个特征是和食物有关,由于 apple 和 arange 都是水果食物,所以它们的特征值接近于 1;......最终我们罗列了 300 个不同的特征,所以每个单词都是由一个 300 维的向量来表示的,符号表示为



虽然 apple 和 orange 可能有些特征不太一样,但总的来说大部分特征都有相似的值,那么上述我们提到的问题,算法就可以明白 orange juice 和 apple juice 也是类似的,算法的泛化性因此得到了提高。



这样我们就可以选用 t-SNE 算法来对特征向量可视化,通过观察这种词嵌入的表示方法,最终同类别的单词会聚集在一块,词嵌入算法对于相近的概念,学到的特征也比较类似。

2 词嵌入的使用


参考案例——句中找人名:Jack Li is a teacher.



使用词嵌入作为输入训练好的模型,如果看到一个新的输入:“Jack Li is a farmer.”因为知道 teacher 和 farmer 很相近,那么算法很容易就知道 Jack Li 是一个人的名字。同时,如果遇到不太常见的单词,比如:Jack Li is a cultivator.(假设训练集里没有 cultivator 这个单词),但是词嵌入的算法通过考察大量的无标签文本,会发现 farmer、teacher、cultivator 相近,把它们都聚集在一块。这样一来即使只有一个很小的训练集,但是使用迁移学习,把从大量的无标签文本中学习到的知识迁移到一个任务中——比如少量标记的训练数据集的命名实体识别任务。


如何用词嵌入做迁移学习的步骤:


1.先从大量的文本集中学习词嵌入。

2.用这些词嵌入模型把它迁移到新的只有少量标注训练集的任务中,比如说用 300 维的词嵌入来表示单词,这样就可以用更低维度的特征向量代替原来的 10000 维的 one-hot 向量。

3.当在新的任务上训练模型时,只有少量的标记数据集,可以选择不进行微调,而是用新的数据调整词嵌入。


当你的任务的训练集相对较小时,词嵌入的作用最明显,所以它广泛用于 NLP 领域,但是其对于一些语言模型和机器翻译并不适用。

3 类比推理


词嵌入有一个非常强大的特性就是可以帮助实现类比推理。比如从性别这个特征上来说,如果 man 应该对应 woman,那么算法可以推导出 king 对应 queen。



假设用一个四维向量来表示 man,表示为


同理


最终对应向量进行减法运算时我们会发现一个神奇的现象:



其实也很好理解:当算法被问及 man 对 woman 相当于 king 对什么时,算法所做的就是计算



然后找出一个向量



也就是说需要的就是找到单词 w 来最大化



的相似度,然后通过该方程以及相似度函数可以找到一个使得相似度最大的单词 queen。

最常用的相似度函数是余弦相似度,假如在向量 u 和 v 之间定义相似度:



如果 u 和 v 非常相似,那么它们的内积将会很大,那么该式就是 u 和 v 的夹角Φ的余弦值,实际就是计算两向量夹角Φ角的余弦。夹角为 0 度时,余弦相似度就是 1,当夹角是 90 度角时余弦相似度就是 0,当夹角是 180 度时相似度等于-1,因此角度越小,两个向量越相似。



点击关注,第一时间了解华为云新鲜技术~

发布于: 刚刚阅读数: 3
用户头像

提供全面深入的云计算技术干货 2020-07-14 加入

华为云开发者社区,提供全面深入的云计算前景分析、丰富的技术干货、程序样例,分享华为云前沿资讯动态,方便开发者快速成长与发展,欢迎提问、互动,多方位了解云计算! 传送门:https://bbs.huaweicloud.com/

评论

发布
暂无评论
带你了解NLP的词嵌入_人工智能_华为云开发者联盟_InfoQ写作社区