【问题标题】:how to fine-tune word2vec when training our CNN for text classification?在训练我们的 CNN 进行文本分类时如何微调 word2vec?
【发布时间】:2017-03-01 19:16:13
【问题描述】:

我有 3 个关于微调词向量的问题。请帮帮我。我会很感激的!非常感谢!

  1. 当我训练自己的 CNN 进行文本分类时,我使用 Word2vec 来初始化单词,然后我只是使用这些预训练的向量作为我的输入特征来训练 CNN,所以如果我没有嵌入层,它肯定不能通过反向传播进行任何微调。我的问题是如果我想做微调,是否意味着创建一个嵌入层?以及如何创建它?

  2. 当我们训练 Word2vec 时,我们使用的是无监督训练,对吗?就我而言,我使用skip-gram模型来获得我的预训练word2vec;但是当我有 vec.bin 并在文本分类模型 (CNN) 中使用它作为我的单词初始化器时,如果我可以微调 vec.bin 中的单词到向量映射,是否意味着我必须拥有CNN 网络结构与训练 Word2vec 时的网络结构完全相同?微调的东西会改变 vec.bin 还是只是微调计算机内存?

  3. skip-gram 模型和 CBOW 模型是否仅用于无监督 Word2vec 训练?或者他们也可以申请其他通用文本分类任务? Word2vec 无监督训练有监督微调之间的网络有什么不同?

@Franck Dernoncourt 谢谢你提醒我。我在这里是绿色的,并希望从强大的社区中学到一些东西。有时间请看我的问题,再次感谢!

【问题讨论】:

    标签: machine-learning nlp artificial-intelligence deep-learning


    【解决方案1】:

    回答你的第一个问题-

    当您在 Embedding 构造函数中设置 trainable=True 时。您的预训练嵌入设置为 weightsembedding layer。现在,在 weights 上发生的任何微调都与 w2v(CBOW or SG) 无关。如果你想微调,你必须使用这些技术中的任何一种微调你的w2v 模型。 Refer to these answers.

    答案 2-

    weightsembedding layer 的任何微调都不会影响您的vec.bin。这些更新的weights 与模型一起保存,但理论上您可以将它们取出。

    答案 3 -

    gensim 仅实现这两种方法(SGCBOW)。但是,有多种新方法可用于训练词向量,例如 MLM(掩码语言建模)。 glove 尝试对单词 co-occurences 的概率进行建模。

    如果您想使用自己的自定义方法进行微调。您只需指定一个任务(如text classification),然后保存更新的嵌入层权重。您必须妥善处理索引,以便为每个单词分配其对应的向量。

    【讨论】:

      【解决方案2】:

      1) 您需要的只是a good example of using pretrained word embedding with trainable/fixed embedding layer,并在代码中进行了以下更改。在 Keras 中,您可以默认更新此层,要将其从训练中排除,您需要将 trainable 设置为 False。

      embedding_layer = Embedding(nb_words + 1,
                                  EMBEDDING_DIM,
                                  weights=[embedding_matrix],
                                  input_length=MAX_SEQUENCE_LENGTH,
                                  trainable=True)
      

      2)您的 w2v 仅用于嵌入层初始化,与您要使用的 CNN 结构无关。只会更新内存中的权重。

      【讨论】:

      • 非常感谢!我明白了。还有一个问题:当我用 CBOW 模型训练我的 w2v 时这有关系吗?(因为我认为 w2v 可以用 skip-gram 或 CBOW 训练我的话)
      • @PrinceofPersia 这取决于。对我来说,300 维的 skip-gram 总是比 300 维的 CBOW 好。例如github.com/StevenLOL/ialp2016_Shared_Task/blob/master/paper/…
      猜你喜欢
      • 2017-02-27
      • 2021-04-26
      • 2023-03-04
      • 2020-10-05
      • 2022-08-20
      • 2019-08-19
      • 1970-01-01
      • 1970-01-01
      • 2018-05-13
      相关资源
      最近更新 更多