首页 > 其他分享 >word2vec (一) 简介与训练过程概要

word2vec (一) 简介与训练过程概要

时间:2023-06-01 14:33:37浏览次数:39  
标签:表示 word2vec 概要 简介 模型 维度 向量 语言

词的向量化与word2vec简介

word2vec最初是Tomas Mikolov发表的一篇文章[1],同时开源了相应的代码,作用是将所有词语投影到K维的向量空间,每个词语都可以用一个K维向量表示。

为什么要将词用向量来表示呢?这样可以给词语一个数学上的表示,使之可以适用于某些算法或数学模型。通常将词语表示成向量有如下两种方法。

一、one-hot 表示法

假如语料库里一共有N个词,one-hot表示即是为每个词分配一个唯一的索引,并且将每个词表示为N维的向量,在该词索引对应的维度值为1,其余维度均为0。如一共有三个词:今天、天气、真好,那么三个词的词向量分别可以是[1,0,0],[0,1,0],[0,0,1]。这种简单的表示方法已经可以解决相当一部分NLP的问题,不过仍然存在不足,即词向量与词向量之间都是相互独立的,我们无法通过这种词向量得知两个词在语义上是否相似,并且如果N非常大,这种高维稀疏的表示也有可能引发维度灾难。为了解决上述问题,就有了词向量的第二种表示方法。

二、Distributed 表示法

word2vec就是通过这种方法将词表示为向量,即通过训练将词表示为限定维度K的实数向量,这种非稀疏表示的向量很容易求它们之间的距离(欧式、余弦等),从而判断词与词语义上的相似性。如K=3时,我们得到的实数向量可以是[0.5,0.22,0.7]这样。

不过Distributed表示法并不是word2vec诞生才有的,这种方法早在1986年Hinton就提出了[2]。word2vec之所以 会产生这么大的影响,是因为它采用了简化的模型,使得训练速度大为提升,让word embedding这项技术(也就是词的distributed表示)变得较为实用。

概率语言模型

在详细介绍word2vec的原理之前还需要简单的提一下概率语言模型。概率语言模型就是表示语言的基本单位(通常为句子)的概率分布函数。有了语言模型我们可以判断一句话是自然语言的概率,或者让机器开口说话(根据语言模型生成一句话)。

见原文!

word2vec训练过程

见原文!

word2vec用的是神经网络模型,分为两种,cbow与skip-gram,每个模型的训练方法又分别有两种,hierarchical sofmax与negative sampling。

Reference

[1] Tomas Mikolov, Kai Chen, Greg Corrado, and Jeffrey Dean. Efficient Estimation of Word Representations in Vector Space. In Proceedings of Workshop at ICLR, 2013.

[2] A. Mnih and G. Hinton. Three new graphical models for statistical language modelling. Proceedings of the 24th international conference on Machine learning,pages 641–648, 2007

标签:表示,word2vec,概要,简介,模型,维度,向量,语言
From: https://blog.51cto.com/u_11908275/6393827

相关文章

  • GBDT(MART) 迭代决策树入门教程 | 简介
    GBDT(MART)迭代决策树入门教程|简介 在网上看到一篇对从代码层面理解gbdt比较好的文章,转载记录一下:        GBDT(Gradient Boosting Decision Tree) 又叫 MART(Multiple Additive Regression Tree),是一种迭代的决策树算法,该算法由多棵决策树组成,所有树的结......
  • 扩散模型 - 简介、DDPM
    扩散模型1扩散模型(DM)扩散模型(DiffusionModel)起源于非均衡热动力学(non-equilibriumthermodynamics),是一类基于概率似然(likelihood)的生成模型。当前对扩散模型的研究主要围绕三种主流的实现:去噪扩散概率模型(DenoisingDiffusionProbabilisticModels/DDPMs)基于分数的生成......
  • 1.1. Java简介与安装
    Java简介Java是一种广泛使用的计算机编程语言,由JamesGosling和他的团队在SunMicrosystems公司开发,于1995年首次发布。Java的设计理念是“一次编写,到处运行”,这意味着Java应用程序可以在任何支持Java运行时环境(JRE)的设备上运行,而无需重新编译。Java的主要特点包括:面向对象:Jav......
  • 掌握嵌入式Linux编程0简介
    简介多年来,Linux一直是嵌入式计算的主流。然而,涵盖这一主题的书籍却少之又少:本书旨在填补这一空白。术语"嵌入式Linux"没有很好的定义,可以应用于从恒温器到Wi-Fi路由器到工业控制单元等各种设备内部的操作系统。然而,它们都是建立在相同的基本开源软件上。这些就是我在本书中描......
  • 软件在环(SIL)测试简介(上)
    这是孙工自动驾驶的第17篇原创。“本文先通过与实车测试的对比引出软件在环测试的内容,然后分别介绍软件在环测试的不同模块,最后介绍通过集成开发搭建完整测试环境的思路。可能有疏漏,供大家批评。”注:《MIL、SIL、PIL和HIL是个啥》中描述了各种XIL手段,但是本文采用相对粗糙的分类......
  • 神经网络中embedding层作用——本质就是word2vec,数据降维,同时可以很方便计算同义词(各
    Embeddingtflearn.layers.embedding_ops.embedding(incoming,input_dim,output_dim,validate_indices=False,weights_init='truncated_normal',trainable=True,restore=True,reuse=False,scope=None,name='Embedding')Embeddinglayerforase......
  • CHNS 中国健康与营养调查 简介
    CHNS数据库网站于2018年6月12日更新了数据集内容,包括生物标记物检测数据、营养、农业、城镇化、教育等共22个数据集及51个变量字典文件,项目数据集压缩文件解压后可通过SAS软件格式打开并使用,变量字典为PDF格式(图13)。更新后的数据集涵盖1989年~2015年共10次调研数据的纵向整合数据,这......
  • NoSQL数据库简介
    利用nginx做反向代理分布式集群存在session如何存储的问题?1、存储到客户端cookie,不安全,网络负担效率低2、存在文件服务器或者数据库里,大量的IO效率问题2、session复制,session数据冗余,节点越多浪费越大3、NoSQL数据库,缓存数据库,完全存在内存中,速度快,数据结构简单NoSQL作为缓存......
  • Abstract Factory Pattern 抽象工厂模式简介与 C# 示例【创建型】【设计模式来了】
    〇、简介1、什么是抽象工厂模式?一句话解释:  通过对抽象类和抽象工厂的一组实现,独立出一系列新的操作,客户端无需了解其逻辑直接访问。抽象工厂模式(AbstractFactoryPattern)是一种创建型模式。它用于创建一组相关对象的家族。强调的是一组对象之间的协作关系,而不是单个对象之......
  • Chirpstack服务器简介和搭建教程
    LoRaWAN网络主要优势体现在低成本、广域连接和低功耗,同时具有较多的开源平台可供使用。使用Chirpstack服务器可以快速搭建本地LoRaWAN网络。本文重点介绍一下Chirpstack服务器是做什么的和Chirpstack服务器的安装教程:Chirpstack是一款多组件的、部署简单的开源服务器,同时也是使用最......