平均两个 Word2vec 向量以获得单个单词的统一表示

数据挖掘 特征提取 词嵌入 word2vec
2021-10-09 12:53:22

我一直在研究 Word2vec 算法的训练数据。由于我们需要单词保持原始状态,因此我们不会在预处理阶段将它们设为小写。因此,有些词有不同的变体(例如“Earth”和“earth”)。

我能想到的唯一方法是对“地球”和“地球”的向量进行平均,以创建一个向量来表示这个词。(因为特征向量的维度相似)

这是一个“好的”方法吗?如果不是,那么处理此问题的好方法是什么?

注意:降低预处理中的所有单词目前不是一个选项。

编辑:关于特征尺寸是否真正线性的信息也会有所帮助。

编辑2:结合两个答案patapouf_aiyazhi给出最佳结果。这些是如何结合的?加权平均改进了结果,但是通过缩放的 sigmoid 函数将词频放在最好的结果中,因为以线性方式使用词频赋予了它们比它们承受的更多的重要性。

2个回答

仅仅对它们进行平均可能并不好,因为这会假设它们具有相同的权重,并且如果大写和未大写版本在您的训练数据中出现的频率非常不同,则情况可能并非如此。

一个渐进的改进是将它们与它们在语料库中的频率成比例地平均。所以说地球出现了 159 次,地球出现了 1239 次,比如:

v(地球和地球) = 159/(159+1239) * v(地球) + 1239/(159+1239) *v(地球)。

向量应该对语义进行线性编码,所以这应该给你一个合理的近似值。

“Earth”和“earth”这两个词可能具有相同的含义,但根据 word2vec 算法,它是从词的位置推导出语义信息。

因此,通常情况下,“地球”最常出现在句子的开头作为主语,而“地球”则主要以宾语形式出现在结尾。因此,最接近的相邻词可能会有所不同,但总的来说,两个句子都可能包含诸如“污染、气候、水、国家”之类的词。

总之,我猜随着窗口大小的增加,它似乎保留了相同的语义信息,只是稍作改动,其中“地球”将具有一些主题信息,而“地球”将具有对象信息。因此,平均不会产生太大影响,而且似乎是一种可能的情况。但是随着窗口大小的减小,它很可能具有不同的含义。