word2vec迁移学习

word2vec可以作为预训练模型进行迁移学习文本特征提取吗

参考GPT和自己的思路:

是的,word2vec是一种非常常用的预训练模型,在自然语言处理领域有很高的应用价值。可以通过将预训练的模型作为初始模型,然后通过微调来提高模型在特定任务上的性能。因此,可以将word2vec作为预训练模型来进行迁移学习,用于文本特征提取。

  • 关于该问题,我找了一篇非常好的博客,你可以看看是否有帮助,链接:Word2Vec学习(自用)
  • 除此之外, 这篇博客: word2vec 学习总结——模型总结中的 2、word2vec 的两种框架          部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  •        针对word2vec的模型实现,又有两种不同的框架:

          (1) 一种是 Hierarchical softmax 框架,这个框架的基础是Huffman 树,可以参考这个:word2vec 学习总结——基础知识。大概的过程是:

    step 1:根据语料中的词频建立一颗Huffman 树,树的每个叶子节点对应词典中的一个词。

    step 2:对于每一个训练样本 {x=(w_t-1,w_t+1,w_t-2,w_t+2 ),y=w_t},找到Huffman 树的根节点到叶子节点 w_t 的路径 l_w,这个路径上的每一个节点都是一个二分类器。

    step 3:输入的 x 的几个词求和后形成新的向量作为输入,然后依次经过路径 l_w 上的每一个非叶子节点,最终到达w_t。

    step 4:在这条路径的每一个节点上都会根据子节点的选择产生一个概率值,这些概率相乘之后作为最后的似然值,计算梯度,更新路径上非叶子节点的分类器的参数。

           具体的目标函数、梯度计算、参数更新,可以参考这篇文章:word2vec 中的数学原理详解(四)基于 Hierarchical Softmax 的模型

           (2)另一种是 negative sampling 框架。

             这个框架的基础是负采样,感觉这个框架下的计算跟Hierarchical softmax 框架下的计算非常像,只是在构造目标函数时的方式不一样(感觉这句话好废话),主要的过程如下:

    step 1:对于每一个输入的训练样本  {x=(w_t-1,w_t+1,w_t-2,w_t+2 ),y=w_t},把它当做正样本。在词典中采样m个词,和x一起形成负样本

    step 2:针对每个目标词(包括正样本和负样本),都有其对应的一个参数 θ,训练样本的 x 与相应的θ相乘,然后经过sigmod计算到对应y的概率值

    step 3:第二步中的概率值相乘得到似然值,根据梯度上升更新各个参数 θ,以及输入的词向量。

           具体的负采样怎么做,目标函数、梯度计算、参数更新,可以参考这篇文章:word2vec 中的数学原理详解(五)基于 Negative Sampling 的模型

           与Hierarchical softmax 框架相比,negative sampling 框架不再使用Huffman树,而是采用随机负采样,能大幅度提高性能,同时也能在词向量的质量上有所提高。

     

    参考文章:

    (1)word2vec 中的数学原理详解:超级详细的word2vec模型的讲解

    (2)[NLP] 秒懂词向量Word2vec的本质:从另一种“输入向量”和“输出向量”的角度去理解word2vec,也是很经典的一种理解方式