Google开源基于Deep Learning的word2vec工具

简介:

摘要:谷歌已经使用Deep Learning技术开发了许多新方法来解析语言,目前,谷歌开源了一款基于Deep Learning的学习工具——word2vec,这是首款面向大众的Deep Learning学习工具。

word2vec(word to vector)顾名思义,这是一个将单词转换成向量形式的工具。通过转换,可以把对文本内容的处理简化为向量空间中的向量运算,计算出向量空间上的相似度,来表示文本语义上的相似度。

word2vec为计算向量词提供了一种有效的连续词袋(bag-of-words)和skip-gram架构实现,word2vec遵循Apache License 2.0开源协议。

如何转换?

word2vec主要是将文本语料库转换成词向量。它会先从训练文本数据中构建一个词汇,然后获取向量表示词,由此产生的词向量可以作为某项功能用在许多自然语言处理和机器学习应用中。

在举例子之前,引入余弦距离(Cosine distance)这个概念(摘自维基百科):

通过测量两个向量内积空间的夹角的余弦值来度量它们之间的相似性。0度角的余弦值是1,而其他任何角度的余弦值都不大于1;并且其最小值是-1。从而两个向量之间的角度的余弦值确定两个向量是否大致指向相同的方向。两个向量有相同的指向时,余弦相似度的值为1;两个向量夹角为90°时,余弦相似度的值为0;两个向量指向完全相反的方向时,余弦相似度的值为-1。在比较过程中,向量的规模大小不予考虑,仅仅考虑到向量的指向方向。余弦相似度通常用于两个向量的夹角小于90°之内,因此余弦相似度的值为0到1之间。

然后可以通过distance工具根据转换后的向量计算出余弦距离,来表示向量(词语)的相似度。例如,你输入“france”,distance工具会计算并显示与“france”距离最相近的词,如下:

              Word             Cosine distance
      -------------------------------------------
                spain              0.678515
              belgium              0.665923
          netherlands              0.652428
                italy              0.633130
          switzerland              0.622323
           luxembourg              0.610033
             portugal              0.577154
               russia              0.571507
              germany              0.563291
            catalonia              0.534176
在word2vec中主要有两种学习算法:连续词袋和连续skip-gram,switch-cbow允许用户选择学习算法。这两种算法有助于预测其它句子的词汇。 

从词转换到句子或更长的文本

在一些特定的应用程序中,它还可以用于多个词汇,例如,“san francisco”,这样它就会通过预先处理数据集,让其形成句子,找到与“san francisco”余弦距离最近的内容:

              Word          Cosine distance
-------------------------------------------
          los_angeles              0.666175
          golden_gate              0.571522
              oakland              0.557521
           california              0.554623
            san_diego              0.534939
             pasadena              0.519115
              seattle              0.512098
                taiko              0.507570
              houston              0.499762
     chicago_illinois              0.491598

如何衡量词向量质量 

可能影响到词向量质量的几个因素:

  • 训练数据的数量和质量
  • 向量的大小
  • 训练算法

向量的质量对任何一个应用程序都非常重要,然而,根据复杂的任务来探索不同的超参数设置可能会过于苛刻。因此,我们设计了简单的测试集,来快速评估矢量词的质量。

词聚类(Word clustering)

词向量也可以从巨大的数据集中导出词类,通过执行词向量顶部的K-means聚类即可实现,脚本演示地址:./demo-classes.sh,最后输出的是一个词汇表文件和与之对应的类ID标识,例如: 

carnivores 234
carnivorous 234
cetaceans 234
cormorant 234
coyotes 234
crocodile 234
crocodiles 234
crustaceans 234
cultivated 234
danios 234
.
.
.
acceptance 412
argue 412
argues 412
arguing 412
argument 412
arguments 412
belief 412
believe 412
challenge 412
claim 412

性能

在多核CPU上(使用开关‘-threads N’),通过使用并行训练可以显著提高训练速度,超参数选择对性能也至关重要(包括速度和准确率),主要选择有:

  • 架构:skip-gram(慢、对罕见字有利)vs CBOW(快)
  • 训练算法:分层softmax(对罕见字有利)vs 负采样(对常见词和低纬向量有利)
  • 欠采样频繁词:可以提高结果的准确性和速度(适用范围1e-3到1e-5)
  • 维度词向量:通常情况下表现都很好
  • 文本(window)大小:skip-gram通常在10附近,CBOW通常在5附近

去哪里收集训练数据

随着训练数据的增加,词向量质量也显著提升,如果以研究为目的的,可以考虑线上数据集: 

快速入门

  1. 代码下载:http://word2vec.googlecode.com/svn/trunk/
  2. 运行“make”编译word2vec工具
  3. 运行demo脚本:./demo-word.sh and ./demo-phrases.sh

原文发布时间为:2013-08-27

本文来自云栖社区合作伙伴“Linux中国”

相关文章
|
3月前
|
机器学习/深度学习 算法 物联网
Google开源Tunix:JAX生态的LLM微调方案来了
Tunix是Google推出的基于JAX的LLM后训练库,支持微调、强化学习与知识蒸馏,集成Flax NNX,主打TPU优化与模块化设计,支持QLoRA等高效训练方法,适用于高性能分布式训练场景。
348 13
Google开源Tunix:JAX生态的LLM微调方案来了
|
7月前
|
存储 人工智能 前端开发
Google揭秘Agent架构三大核心:工具、模型与编排层实战指南
本文为Google发布的Agent白皮书全文翻译。本文揭示了智能体如何突破传统AI边界,通过模型、工具与编排层的三位一体架构,实现自主推理与现实交互。它不仅详解了ReAct、思维树等认知框架的运作逻辑,更通过航班预订、旅行规划等案例,展示了智能体如何调用Extensions、Functions和Data Stores,将抽象指令转化为真实世界操作。文中提出的“智能体链式组合”概念,预示了未来多智能体协作解决复杂问题的革命性潜力——这不仅是技术升级,更是AI赋能产业的范式颠覆。
2075 1
|
10月前
|
人工智能 边缘计算 自然语言处理
Google 发布其开源模型系列最新模型 Gemma 3
Google 发布了其开源模型系列的最新成员 Gemma 3,这是一款轻量级、高性能的 AI 模型,支持多语言和复杂任务。它具备 140+ 语言支持、128K-token 上下文窗口、增强的多模态分析能力以及函数调用功能,适用于聊天 AI、代码生成等多种场景。Gemma 3 在性能上超越 Llama 3-8B 和 Mistral 7B,且仅需单 GPU 即可运行,大幅降低计算成本。提供 1B 至 27B 不同参数规模版本,满足多样化需求,并优化了量化模型以适应边缘计算和移动设备。其多模态设计整合了 SigLIP 图像编码器,扩展上下文窗口至 128k token,显著提升了视觉和文本理解能力。
674 3
Google 发布其开源模型系列最新模型 Gemma 3
|
12月前
|
人工智能 前端开发 API
Gemini Coder:基于 Google Gemini API 的开源 Web 应用生成工具,支持实时编辑和预览
Gemini Coder 是一款基于 Google Gemini API 的 AI 应用生成工具,支持通过文本描述快速生成代码,并提供实时代码编辑和预览功能,简化开发流程。
855 38
Gemini Coder:基于 Google Gemini API 的开源 Web 应用生成工具,支持实时编辑和预览
|
机器学习/深度学习 人工智能 TensorFlow
TensorFlow 是一个由 Google 开发的开源深度学习框架
TensorFlow 是一个由 Google 开发的开源深度学习框架
336 3
|
10月前
|
人工智能 编解码 自然语言处理
Gemma3:Google开源多模态神器,轻量高效,精通140+语言,解锁文本与图像任务
在当今快速发展的 AI 领域,多模态模型正逐渐成为推动技术革新的重要力量。Google 最新推出的 Gemma 3 模型,凭借其轻量级、多模态的特性,为文本生成和图像理解任务带来了全新的可能性。它不仅支持文本和图像输入,还具备强大的语言处理能力,覆盖超过 140 种语言,并且能够在资源有限的设备上高效运行。从问答到摘要,从推理到图像分析,Gemma 3 正在重新定义 AI 模型的边界,为开发者和研究人员提供了一个极具潜力的工具。
875 0
|
数据可视化 JavaScript 前端开发
Google开源了可视化编程框架Visual Blocks for ML
Visual Blocks for ML是一个由Google开发的开源可视化编程框架。它使你能够在易于使用的无代码图形编辑器中创建ML管道。
465 0
|
机器学习/深度学习 数据采集 物联网
【机器学习】Google开源大模型Gemma2:原理、微调训练及推理部署实战
【机器学习】Google开源大模型Gemma2:原理、微调训练及推理部署实战
866 0
|
人工智能 自然语言处理 机器人
[AI Google] 新的生成媒体模型和工具,专为创作者设计和构建
探索谷歌最新的生成媒体模型:用于高分辨率视频生成的 Veo 和用于卓越文本生成图像能力的 Imagen 3。还可以了解使用 Music AI Sandbox 创作的新演示录音。
[AI Google] 新的生成媒体模型和工具,专为创作者设计和构建
|
缓存 Java Maven
Google guava工具类库的介绍和使用
Google guava工具类库的介绍和使用

热门文章

最新文章

推荐镜像

更多