美文网首页
聊聊word2vec

聊聊word2vec

作者: 刘单纯 | 来源:发表于2020-07-07 15:55 被阅读0次

1. 自然语言的表示

在word2vec出现之前,自然语言通常以词作为基本单位,进行one-hot encoding,这样做最大的弊端是完全不能Get到任意两个词的相似度,任意两个向量的内积都是0,且维度会根据单词数量增加,对于现在的语料来说,千万个单词的语料库都是很常见的。

2. 词嵌入

词嵌入(word embedding)其实是将高维(V)的词向量压缩到了低维(M),其中V>>M,最终的Embedding Matrix的尺寸就是V*M。这样我们就能很容易的计算任意两个词之间的相似性,例如余弦相似度。

举个例子

  • 假设词表V的大小是10000,有一句话【我 爱 中国】,其中【我】在词表的第2个位置记作O^2,【爱】在词表的第128个位置记作O^{128},【中国】在词表的第256个位置记作O^{256}.我们需要将其嵌入到100维的矩阵中

    image.png
    image.png
  • 我们要计算【我】的词向量,直接使用np.dot(E,O^2)即可得到一个100维的词向量表示

word2vec

Word2vec是由Mikolov T在2013年提出的,查了下,Doc2vec,FastText都是他提出来的,牛人!

word2vec训练方式有两种

  • cbow 本质就是完形填空,根据上下文预测中心词。
  • skip-gram 根据中心词预测上下文


    image.png

训练时,会将随机初始化Embedding Matrix,分别将上下文每个词向量作为输入,如果上下文选择是4,词向量的维度是100,那么堆叠之后输入的维度就是4*100,经过一层Wx+b,对结果进行softmax,如果词库大小是10000,那么softmax的结果也是10000维,通过多轮迭代即可得到Embedding Matrix


image.png

训练trick

  • 分层softmax
    由于词汇表可能会很大导致计算很慢,所以使用霍夫曼树构造节点,将时间复杂度降到O(log_{n}),这里就不展开讲,有兴趣可以看下刘建平老师的博客 基于Hierarchical Softmax的模型

分享

在我们实际的业务场景下使用覆盖率还不错,有兴趣的拿去。腾讯200维800万词向量

参考

相关文章

  • 聊聊word2vec

    1. 自然语言的表示 在word2vec出现之前,自然语言通常以词作为基本单位,进行one-hot encodin...

  • Word2Vec原理,彻底搞懂

    References: 图解Word2vec 经典再读之Word2Vec word2vec Parameter L...

  • word2vector简介

    word2vec官网:https://code.google.com/p/word2vec/ word2vec是g...

  • word2vec

    word2vec word2vec 构建中文词向量

  • Word2Vector 算法

    谈谈谷歌word2vec的原理github上的资料(1) word2vec 中的数学原理详解 word2vec源码...

  • Word2vec(gensim)使用

    1 Word2vec(gensim) 1.1 Word2vec介绍 word2vec是一个将单词转换成向量形式的工...

  • word2vec 的相关概念

    1、word2vec 的概念 word2vec :将词映射到一个词空间中,故 word2vec 被称为词嵌入;并且...

  • word2vec使用教程

    word2vec使用教程,参考如下: word2vec github[https://github.com/ha...

  • 聊天机器人-word2vec

    1. 为什么使用word2vec? 2. How To Learn Word2Vec? We are workin...

  • word2vec与fasttext前篇

    word2vec思想 word2vec的核心是神经网络,采用 CBOW(Continuous Bag-Of-Wor...

网友评论

      本文标题:聊聊word2vec

      本文链接:https://www.haomeiwen.com/subject/lriaqktx.html