掘金 人工智能 21小时前
Transformer 通关秘籍11:Word2Vec 及工具的使用
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文介绍了Word2Vec这一由Google开发的著名算法模型,它能有效地将文本转换为词向量,保留文本在向量空间的语义关系。Word2Vec支持两种训练算法:连续词袋算法(CBOW)通过上下文预测中心词,跳元算法(Skip-gram)通过中心词预测上下文。Google开源了Word2Vec工具包,方便用户进行词向量相关测试,例如计算单词相似度。理解Word2Vec有助于将人类可理解的文本转换为高维空间的词向量,为自然语言模型提供输入。

💡Word2Vec是由Google在2013年推出的算法模型(也可理解为工具包),用于创建词嵌入向量,将文本映射到词向量空间,并保留文本的语义关系。

📚Word2Vec模型支持两种训练算法:CBOW(连续词袋算法)通过上下文单词预测中心词;Skip-gram(跳元算法)通过中心词预测上下文,两种算法旨在更好地预测文本中的词,从而进行语义学习。

🛠️Google开源了Word2Vec工具包,提供了C++源码,用户可以通过编译后使用工具计算单词相似度,例如使用distance程序,通过余弦距离计算单词的相似程度。

将文字文本转换为词向量(word embedding)的过程中,一个非常著名的算法模型应该就是 Word2Vec 了。

相信大家或多或少都听说过,本节就来简单介绍一下 Word2Vec 。

什么是 Word2Vec ?

Word2Vec 可以非常有效的创建词嵌入向量,你可以把它理解为是一个算法模型,也可以理解为是一个工具包。

它 2013 年由 Google 推出,自问世以来,一直被广泛的应用在自然语言处理的词嵌入向量的表达过程中,它可以完成文本到词向量的映射,同时保留文本在向量空间的语义关系。

关于文本在向量空间的语义关系,可以参考10、词向量运算:queen=king-man+wowem的内容。

所以我们可以说, Word2Vec 是一个算法模型,人们利用这个模型对大量的文本数据进行训练,从而使模型可以输出训练好的词向量。

在使用 Word2Vec 模型训练时,其内部支持使用两种不同的训练算法进行训练:

什么是上下文词和中心词呢?

假设有如下的句子:We are about to study the idea of deep learning.

如果已知 We are about to 和 the idea of deep learning,去预测 study,那么就相当于通过上下文去预测中心词,此时实用的也就是 CBOW 算法。

反过来,如果给定了单词 study,去预测句子中的其他上下文词(比如 idea),则是使用了 Skip-gram 算法。

这两种算法是 Word2Vec 中支持的两种算法,这里暂时不多介绍两种算法的细节。大家只需要知道,无论是连续词袋算法还是跳元算法,都是用来更好的预测文本中的词,以此来达到对大量单词进行语义学习的目的,从而产生更加有效的词向量。

Word2Vec 工具

Google 将 Word2Vec 进行了开源,并且提供了一套简洁可用的工具包。我们可以非常方便的使用这些工具来进行词向量相关的测试。

开源的源代码仓库 github 链接为:github.com/dav/ Word2Vec 。

该仓库为 C++ 源码仓库,使用前需要确保具备 C++ 源码的编译和运行环境。

如何编译?

代码下载之后,在 src 目录下,执行 ‘make’ 命令便可完成代码仓库的编译,编译生成的可执行文件会放在 bin 目录下。

在bin目录下,可以执行对应的可执行程序来测试词向量。

比如可以使用 distance程序来计算单词的相似程度。

例如,你可以执行下面的命令后,进入工具交互界面。

./distance ~/GoogleNews-vectors-negative300.bin

上述命令中的 GoogleNews-vectors-negative300.bin 是需要提前下载到本地中,是一个已经训练好的词嵌入模型(包含了词嵌入向量)文件,该文件的下载方式在10、词向量运算:queen=king-man+wowem有介绍。

需要先将其下载到本地电脑中,再进行使用。

执行完上述命令后,在交互界面输入“compute"单词。

distance 工具会输出该单词在词汇表中所处的位置,下图显示 compute 单词位于词汇表中的第 33688 的位置。

同时,distance 工具会给出与 compute 单词最接近的其他单词(使用余弦距离表示),比如 computation,calculate等。

你可以使用该工具测试其他单词。

该源码仓库完成编译后,还包含了很多其他的工具,详细的使用可以参考官方指南:code.google.com/archive/p/ Word2Vec /。

本节仅需要知道 Word2Vec 是Google开发的一个用来将文本转换为词向量的算法模型(工具)即可,并且该模型内置支持了两种不同的算法完成文本到词向量的转换,分别是 CBOW 和 Skip-gram 算法。

CBOW 和 Skip-gram 两种算法的细节非本专栏重点,这里就不深入介绍了,感兴趣的同学可以去百度一下。

总结一下

至此,我们把自然语言处理模型需要的预处理预备知识基本介绍完了。

这些知识包括: token 的概念,词汇表, token 转换到词向量的必要性以及一些代码演示。相信看到这里你应该对这些基础概念有了一定的了解。

事实上,以上的预备知识和操作,仅仅完成了一件事,那就是将人类可以理解的文本,转换到了高维空间的词向量。

只有将文本转换为词向量后,才可以输入给自然语言模型进行处理。

另外,对于基于 transformer 架构的模型而言,单有词向量是不够的,还需要使用位置编码来对文本信息进一步处理。这一点可以查看本节最上面的配图以了解这个过程。

只有将词向量和位置编码结合起来,才能作为真正的输入给到 transformer 架构(大模型)。

这一部分内容,为了逻辑连贯,并且更好理解,在后面介绍 transformer 技术细节时,再进行位置编码的相关介绍,主要会包括:transformer 的输入为什么需要位置编码,以及相关的算法和原理。

我创建了一个《小而精的AI学习圈》知识星球,星球上有几十万字原创高质量的技术专栏分享,同时你也可以在星球向我提问。点击这里,我们星球见! >>>
点击这里查看所有 AI 技术专栏

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

Word2Vec 词向量 自然语言处理
相关文章