什么是最好的?添加、连接或平均字向量?

2024-05-14 03:33:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在研究一个递归语言模型。为了学习可用于初始化语言模型的单词嵌入,我使用了gensim的word2vec模型。 经过训练,word2vec模型为词汇表中的每个单词保存两个向量:单词嵌入(输入/隐藏矩阵的行)和上下文嵌入(隐藏/输出矩阵的列)。

this post中所述,至少有三种常用方法组合这两个嵌入向量:

  1. 对每个词的上下文和词向量求和
  2. 求和平均值
  3. 连接上下文和词向量

然而,我找不到关于最佳策略的合适的论文或报告。所以我的问题是:

  1. 是否有一个共同的解决方案,是求和,平均或连接向量?
  2. 还是最好的方法完全取决于所讨论的任务?如果是,那么什么策略最适合单词级语言模型?
  3. 为什么要合并向量呢?为什么不为每个单词使用“原始”单词嵌入,即那些包含在输入和隐藏神经元之间的权重矩阵中的单词。

相关(但未回答)问题:


Tags: 词汇表方法模型语言矩阵word2vecthis单词
3条回答

我在斯坦福大学“自然语言处理深度学习”讲座(2016年3月,第2课)中找到了答案。有空here。在第46分钟,Richard Socher指出,通常的方法是平均两个词向量。

您应该至少阅读一次this研究工作,以获得使用不同代数运算符组合单词嵌入的完整概念。这是我的研究。

在本文中,您还可以看到组合词向量的其他方法。

简而言之,L1规范化平均词向量和词和是很好的表示。

我想我试着根据评论来回答。

您要链接的问题是:“word vectors如何连接词向量以形成句子向量”

词向量可以单独比较。但人们往往想把句子、段落或文件放在上下文中,即单词的集合。然后问题就来了,如何将它们组合成一个向量(gensim为这个用例提供doc2vec)。

这似乎不适用于你的情况,我只会与给定的词向量。您可以调整参数,如嵌入的大小、训练数据和其他算法。你甚至可以组合不同算法的向量来创建一种“集成向量”(例如带手套的word2vec)。但这可能不会更有效率。

有时在语言中,同一个词有不同的含义,这取决于句子中的词的类型或词的组合。e、 “游戏”与“公平游戏”有着不同的含义。Sense2Vec提供了一个为那些复合词生成词向量的建议:https://explosion.ai/blog/sense2vec-with-spacy (当然,在这种情况下,你已经需要一些理解句子结构的东西,比如SpaCy)

相关问题 更多 >