深度学习 - 词嵌入与词性

机器算法验证 神经网络 深度学习 自然语言 卷积神经网络 词嵌入
2022-03-16 02:26:12

我正在使用卷积神经网络 (CNN) 架构构建句子分类器。我想在我的 CNN 之外使用预先训练的模型(例如GoogleNews(基于 word2vec))进行词嵌入。我想知道是否值得在这个模型中添加词性信息,如果是,如何?

我看到以下选项:

  1. 仅使用 word2vec 将单词嵌入到 300 个特征向量中
  2. 在我的 CNN 中使用两个通道——一个用于 word2vec,一个用于词性标签。我是否也必须将词性标签嵌入到 300 个特征中?
  3. 将词性标签嵌入到其他一些特征(比如 20 个特征),并将这个 20 个特征向量连接到 word2vec 向量(产生 320 个特征向量)

如果 #2 或 #3 更可取,哪些方法可用于将 POS 标签嵌入到向量表示中?

2个回答

1.连接word2vec和POS特征

将 POS 信息添加到您的分类器中很好。您当然会想要创建一个训练/开发/测试拆分,例如 5 路交叉验证,以测试添加此信息在多大程度上改善了您的结果(它取决于数据,实际上取决于您的数据,只有您可以测试这个,使用您自己的数据)。

要结合 POS 和 word2vec 功能,您可以简单地将它们连接起来。我假设当您说“CNN”时,您的意思是“一维 CNN”,对吗?因此,如果您只是使用 word2vec 功能,您的输入数据将类似于:

[batch size][sequence length][word2vec dimensions (ie 300)]

即,一个batch size * sequence_length * word2vec_dim大小的张量。因此,与 POS 特征连接,您的输入数据张量将变为:

[batch size][sequence length][
    word2vec dimensions (ie 300) + POS dimensions (ie 20)]

即一个batch size * sequence_length * 320大小的张量。

2.sense2vec

您可能还想查看来自 Trask et al, 2016, https://arxiv.org/pdf/1511.06388.pdf的 sense2vec,它利用 POS 信息来消除 word2vec 嵌入的歧义:

“本文提出了一种新颖的方法,通过基于监督消歧为每个单词建模多个嵌入来解决这些问题,这为消费型 NLP 模型选择语义消歧嵌入提供了一种快速准确的方法。我们证明这些嵌入可以消除歧义我们进一步评估了词性消歧嵌入在神经依赖解析中的对比意义,例如名义和口头意义以及细微差别的意义,在 6 种语言中,未标记附件分数的平均错误减少了 8% 以上。 "

我知道这是一个老问题,但由于还没有答案,我会添加一个。

这里的直觉是有动机的:通过使用一个好的现有解析器将语法结构提供给你的模型,这样你的模型就不必从头开始学习理解语法结构。

CMU 的 SEST/SEDT 模型(最近)实现了这些方面的一些东西他们实际上没有标记词性,而是输入完整的解析树。结果似乎是有利的。