当前位置: 首页 > news >正文

Transformer 通关秘籍10:词向量运算:queen=king-man+wowem

经过前面的介绍,相信你搞懂了词嵌入向量所代表的是单词在高维空间的特征表示了。
在学习词嵌入向量的过程中,一个最著名的理解词嵌入向量在高维数学空间的例子,莫过于实现 queen = king - Man + Woman 的数学运算了。
本节将从这个例子出发,揭示词向量背后的隐藏含义,并在最后附上通过GoogleVec的预训练模型来实现上述词向量运算的Python代码。
本文在撰写时参考了很多国外的优秀博客,参考链接在文章最后。

这里有一个全程一站式的 Transformer 讲解和实战辅导,带你从零手写一个可对话的大模型,点击链接查看详情从零手写大模型实战

queen = king - Man + Woman 示例

下面展示的单词“ king ”的词嵌入向量(该向量是在 Wikipedia 数据集上使用 GolVe训练得到的)。
[ 0.50451 , 0.68607 , -0.59517 , -0.022801, 0.60046 , -0.13498 , -0.08813 , 0.47377 , -0.61798 , -0.31012 , -0.076666, 1.493 , -0.034189, -0.98173 , 0.68229 , 0.81722 , -0.51874 , -0.31503 , -0.55809 , 0.66421 , 0.1961 , -0.13495 , -0.11476 , -0.30344 , 0.41177 , -2.223 , -1.0756 , -1.0783 , -0.34354 , 0.33505 , 1.9927 , -0.04234 , -0.64319 , 0.71125 , 0.49159 , 0.16754 , 0.34344 , -0.25663 , -0.8523 , 0.1661 , 0.40102 , 1.1685 , -1.0137 , -0.21585 , -0.15155 , 0.78321 , -0.91241 , -1.6106 , -0.64426 , -0.51042 ]
该向量共 50 个数字,单从数字来看,我们并不能看到太多的东西,但是我们用另一种方法来把这些数字进行可视化展示。
方法如下:每个数字如果接近 2,则为红色,如果接近0则为白色,如果接近-2则为绿色。
有很多方法可以实现类似的可视化,这里略过,直接看将词向量可视化之后的结果。

接下来,我们忽略上图中的数字,仅关注颜色,并且将一些我们认为含义相近的单词(这里选择了 Man 和 Woman )的可视化结果一起展示:

从上图,你是不是能发现一些端倪:Woman 和 Man 在颜色分布上,比 Woman 和 king 更加接近。
我们继续分析,继续放一些更加有关联的单词的可视化结果。

上面放了: queen , king , Man , Woman , boy , girl , water (无关)的可视化结果。我们逐个分析一下:

  1. 在中间有一条非常明显的红线,从上到下一直贯穿,这条线代表的数字可能代表了一些信息(但是我们不知道是什么信息。)
  2. 你可以看到, Woman 和 girl 在很多地方颜色很相似,这一点在 Man 和 boy 的对比上也可以看出来。
  3. boy 和 girl 也有一些相似的地方,但是和 Woman 以及 Man 相比,又有一些不一致的地方,这些不一致或许说明代表的是“成人”信息。
  4. 在最下面增加了 water 单词的可视化,可以看到在上面有一条蓝色的线从上到下贯穿,一直到 water 则停止消失了,这条蓝色的线或许代表的是“人类”这种信息。
  5. queen 和 king 的对比中,有一些相似但与其他不一致的地方,这些有可能代表了“皇室”的信息。
    总之,经过上面的分析,我们可以看出,有相似特征的单词在某些数字(可视化后的颜色)上也会存在相似之处,但并非完全一致。
    这代表了 token 与 token 之间仅仅在某些维度上是相似的,在其他维度上并不一致,比如“性别”、“皇室”等维度。
    Python 实现这个公式
    为了更好的理解这个现象,我们使用 Python 来进行更加深入的探索。
    我们使用 Gensim 库以及一个预训练好的模型(包含了 token 以及词嵌入向量)来完成。
    Gensim 库是一个可以用于主题建模和文档相似性检索的开源 Python 库,特别适用于处理大规模文本数据。
    可以通过以下命令安装:
    pip3 install --upgrade gensim -i https://pypi.tuna.tsinghua.edu.cn/simple
    安装完之后,前往这个网站下载预训练好的GoogleNews模型。
    GoogleNews 模型包含了 token 及其关联的词向量的文件,是在 Google 的新闻数据集(约 1000 亿词)上进行训练的;它包含了 300 万个单词和短语,每个词向量的维度是 300 维(300个数字)。
    该模型大概 1.5G 大小,比较大,下载会花费较长时间。
    下载完成后,解压该模型文件,解压后大概 3.7G,为一个 bin 文件。
    使用如下代码进行测试:
from gensim.models import KeyedVectors
# load the google word2vec model
filename = 'GoogleNews-vectors-negative300.bin'
model = KeyedVectors.load_word2vec_format(filename, binary=True)# calculate: ( king - Man ) + Woman  = ?
result = model.most_similar(positive=[' Woman ', ' king '], negative=[' Man '], topn=1)
print(result)

上述代码的打印结果为:

[(' queen ', 0.7118193507194519)]

说明在词向量的高维数学空间中,通过计算 king - Man + Woman ,得到的结果是 queen 。
注意: 上述 queen 结果是通过 model.most_similar 函数得到的,也即是词嵌入空间中与 king - Man + Woman 的结果最接近的 token 是 queen ,并非严格的相等,而是近似。
上述代码中展示的近似度为0.7,是通过两个词向量的余弦相似度计算得到的,余弦相似度在之前几节介绍过,如果不记得了可以返回去再复习一下。
当然,你也可以尝试计算 father - Man + Woman = mother 等逻辑。
本文代码可以在这里获得。
参考:

  1. gensim库:https://github.com/piskvorky/gensim/tree/develop
  2. 词向量实现:https://machinelearningmastery.com/develop-word-embeddings-python-gensim/
  3. GoogleNews预训练模型下载:https://drive.usercontent.google.com/download?id=0B7XkCwpI5KDYNlNUTTlSS21pQmM&export=download&authuser=0
  4. 数学上解释 queen = king - Man + Woman 的原理:https://p.migdal.pl/blog/2017/01/ king - Man - Woman - queen -why

相关文章:

  • WebFuture:瀚高数据库新建用户设置权限脚本
  • C++中回调函数详解
  • opencv(C++) 变换图像与形态学操作
  • 【Git】Commit Hash vs Change-Id
  • 一张Billing项目的流程图
  • opencv(C++) 图像滤波
  • AR眼镜+AI视频盒子+视频监控联网平台:消防救援的智能革命
  • FileZillaServer(1) -- 记录
  • 模型可信度
  • 详解Kubernetes Scheduler 的调度策略
  • 基于 STM32 的农村污水处理控制系统设计与实现
  • HTML 表单与输入:基础语法到核心应用全解析
  • Kotlin 实战:Android 设备语言与国家地区的 5 种获取方式
  • 说说 Kotlin 中的 Any 与 Java 中的 Object 有何异同?
  • 国标GB28181视频平台EasyGBS助力公交/客运搭建全场景实时监控安全管理
  • 对于ARM开发各种手册的分类
  • 在springboot,禁止查询数据库种的某字段
  • 如何将 PDF 文件中的文本提取为 YAML(教程)
  • 代码随想录算法训练营 Day58 图论Ⅷ 拓扑排序 Dijkstra
  • 前端vue中使用signalr
  • 智能网站建设软件/东莞网站公司哪家好
  • 北京网站建设在哪里天/b站推广入口2023mmm无病毒
  • 专题网站建设策划方案/全网营销整合推广
  • 营销型网站的推广/seo优化对网店的推广的作用为
  • 华为企业网站建设分析/广告联盟app
  • 云南网页/北京seo平台