首页 > 解决方案 > 总结 ML 中的词嵌入向量会破坏它们的含义吗?

问题描述

例如,我有一个段落,我想以二进制方式分类。但是因为输入必须有一个固定的长度,我需要确保每个段落都由一个统一的数量表示。

我所做的一件事是获取段落中的每个单词,使用 GloVe word2vec 对其进行向量化,然后将所有向量相加以创建一个“段落”向量,然后我将其作为模型的输入输入。在这样做的过程中,我是否破坏了这些词可能具有的任何意义?考虑到这两个句子将具有相同的向量:“我的狗咬戴夫”和“戴夫咬我的狗”,我该如何解决这个问题?我接近这个错误吗?

还有什么其他方法可以训练我的模型?如果我把每个单词都输入到我的模型中,我怎么知道我应该输入多少单词?我如何输入这些单词?以二维数组的形式,其中每个词向量是一列?

我希望能够训练一个可以准确分类文本的模型。令人惊讶的是,仅通过使用这种总结方法,对于像 RandomForestClassifier 这样相对简单的模型,我得到了很高的(> 90%)。有什么见解吗?

编辑:我收到的一个建议是将我的数据特征化为 2D 数组,其中每个单词都是一列,CNN 可以在该列上工作。我收到的另一个建议是通过 huggingface 转换器使用迁移学习来获取整个段落的向量。哪一个更可行?

标签: machine-learningdeep-learningneural-networknlp

解决方案


我希望能够训练一个可以准确分类文本的模型。令人惊讶的是,仅通过使用这种总结方法,对于像 RandomForestClassifier 这样相对简单的模型,我得到了很高的结果(>90%)。有什么见解吗?

如果您查找有关聚合词嵌入的论文,您会发现实际上有时会发生这种情况,尤其是在文本较短的情况下。

还有什么其他方法可以训练我的模型?如果我把每个单词都输入到我的模型中,我怎么知道我应该输入多少单词?我如何输入这些单词?以二维数组的形式,其中每个词向量是一列?

您是否尝试过关键字提取?它可以缓解一些平均问题

在这样做的过程中,我是否破坏了这些词可能具有的任何意义?

正如您所说,您丢弃了有关词序的信息。但这甚至还不是最糟糕的部分:对于较长的文档,如果您嵌入所有内容,则大多数情况下均值将被常用词(“如何”、“喜欢”、“做”等)支配。顺便说一句,看看我对这个问题的回答

除此之外,我见过的一个技巧是平均词向量,但在词嵌入矩阵上减去 PCA 的第一主成分。有关详细信息,您可以查看例如这个 repo,它也链接到论文(顺便说一下,这篇论文建议您可以忽略“平滑逆频率”的东西,因为主成分减少是有用的部分)。


推荐阅读