当前位置:   article > 正文

word2vec技术通俗易懂的解释_训练模型是数学模型吗

训练模型是数学模型吗

word2vec思路很简单,我觉得网上很多介绍都弄得太复杂、太细节化了,下面说说我的看法。

1. 数学模型

word2vec说白了就是一个映射:
w o r d → F v e c (1) \tag1 word \stackrel{F} \to vec wordFvec(1)

那么word、vec、F 如何定义呢?

  • word 采用 one-hot 编码,如果一种语言有 m 个单词的词汇量,这个就是一个 m 维向量。感觉这个向量是不是块头很大?如何提升效率不是本文要解决的问题,我们还是把原理先弄明白吧。
  • vec 是普通的向量,不妨假设是 n 维向量。
  • F 就是神经网络模型。

2. 模型的训练方法

神经网络模型(2) 无法实现标注其训练数据,如果知道如何标注,这个问题就不用研究了。因此,我们得探讨一个间接的方法来训练这个模型。

2.1 确定训练数据的形式

我们不妨利用一批实际文本做训练样本,这样做的好处是不需要人为标注。

我们假设一个 word 的意义取决于句子中该 word 所在句子中前后顺序排列的其他单词。如果两个 word 在大量的文献中,他们在句子中所处的前后位置关系很接近,我们认为这两个 word 的意义是相近的。

2.2 从训练数据中生成数据 word 和标签 label

从训练数据,提取 word 很容易,主要问题聚焦在标签 label 如何生成。

对于一个 word,我们可以用它所在句子中的其他单词作为其标签。作为简化方案,选择 word 所在句子前后若干个单词,比如前后各取 3 个单词,组成一个词袋,来做其标签。这样的话,word 的标签 label 也是一个 m 维向量。

当然了,同一个 word 在不同的句子中,就会有不同的标签。这个没啥关系,通过大量的训练,我们总会得到 word 到 label 的分量的一个概率分布。意义相近的 word,其语境的概率分布也会相近。

2.3 训练模型

把数学模型(1) 扩展一下:
w o r d → F v e c → G l a b e l (2) \tag2 word \stackrel{F} \to vec \stackrel{G} \to label wordFvecGlabel(2)

这样一来,经过大量语料训练之后,模型(2)就完成了。当然,也就顺便得到了模型(1)。目前我们一般不会直接用自己的语料训练词向量,而是使用别人在超大量语料库上训好的词向量,直接用这些现成的词向量进行下游任务。除了word2vec之外,比较常用的还有GloVe。至于ELMo和BERT,它的原理就跟w2v完全不同了,这个需要单独学习。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/761370
推荐阅读
相关标签
  

闽ICP备14008679号