带有 POS 的 Word2Vec 没有产生预期的结果?

Word2Vec with POS not producing expected results?

我正在尝试使用 Word2Vec 嵌入来衡量词性信息的影响,但没有获得预期的结果。

我希望 POS 包含 word2vec 嵌入在机器翻译任务中表现更好,但实际上表现更差。

我正在使用 Gensim 从同一个语料库创建两组嵌入,一组是普通的 Word2Vec,另一组,我正在将标记更改为“[WORD]__[POS]”。

我正在通过在 Seq2Seq 机器翻译任务中使用嵌入来衡量性能差异。我正在使用 BLEU

评估这两种方法

这就是我使用 SpaCy 训练 word2vec + POS 嵌入的方式:

sentences = []
    for sent in doc.sents:
        tokens = []
        for t in sent:
            tokens += ["{}__{}".format(t.text, t.pos_)]
        sentences += tokens
    pos_train += [sentences]

这是我使用 Keras + Tensorflow 的基准机器翻译模型:

encoder_inputs = Input(shape=(None, num_encoder_tokens))
encoder = LSTM(LATENT_DIM, return_state=True)
_, state_h, state_c = encoder(encoder_inputs)
encoder_states = [state_h, state_c]

decoder_inputs = Input(shape=(None, num_decoder_tokens))
decoder_lstm = LSTM(LATENT_DIM, return_sequences=True, return_state=True)
decoder_outputs, _, _ = decoder_lstm(decoder_inputs, initial_state=encoder_states)
decoder_dense = Dense(num_decoder_tokens, activation='softmax')
decoder_outputs = decoder_dense(decoder_outputs)

model = Model([encoder_inputs, decoder_inputs], decoder_outputs)

使用 BLEU,Word2Vec+POS 方法的得分始终与 Word2Vec 相同,或者比正常的 Word2Vec 嵌入低 0.01-0.02 分。

有谁知道为什么会这样?我的推理或期望有差距吗?

我也希望获得准确的 part-of-speech 信息来改进翻译 – 但我不知道其他人是否报告过这样的改进。关于为什么它可能不会的一些(不知情的)猜想:

  • 可能其中一种语言的词性标记不是很准确,或者您的数据存在其他一些特定的异常挑战

  • 也许使用内部 __ 创建复合标记的方法在一些极端情况下会干扰评估——例如,如果原始语料库保留了任何已经存在的标记__其中

  • 也许对于某些数据不足的情况,不同 parts-of-speech 的 similar-meaning 同形异义词的碰撞实际上 有助于 加厚 meaning-to-meaning翻译。 (例如,可能给定 shop_NOUNshop_VERB 的语义相关性,最好有 100 个 shop 的碰撞示例,而不是每个 50 个。)

一些调试思路(除了明显的"double-check everything"):

  • 仔细查看 plain-vs-POS 方法得分不同的那些测试用例;看看是否有任何模式——比如奇怪的 tokens/punctuation、非标准语法等——提供线索 __POS 装饰在哪里受到伤害

  • 尝试其他语言对和其他(私有或 public)索引数据集,看看在其他地方(或一般情况下)POS-tagging 是否有帮助,并且有一些东西extra-challenging 关于您的特定 dataset/language-pair

  • 考虑到 multiplication-of-tokens(通过将同形异义词拆分为 POS-specific 变体)以可能与其他限制相互作用的方式改变了模型大小和 word-distributions (如 min_countmax_vocab_size 等)以修改训练的方式。特别是,也许 larger-vocabulary POS 模型应该获得更多的训练时期,或者更大的 word-vector 维度,以反映其更大的词汇量和更低的平均 word-occurrences.

祝你好运!