首页 > 解决方案 > 对 DSSM 中的单词散列感到困惑?

问题描述

在这篇论文Learning Deep Structured Semantic Models for Web Search using Clickthrough Data中,它使用词散列技术将单词的单热表示转换为字母三元组的(稀疏)向量。

例如,根据我的理解,一个单词look首先被分解为字母三元组,[#lo, loo, ook, ok#]然后表示为一个向量,其中每个三元组都有一个,其他地方则为零。通过这样做,它可以减少单词向量的维度,同时如论文中所说的那样几乎没有冲突。

我的困惑是,通常如果我们使用词袋表示来表示基于 one-hot 表示的文档,我们只计算每个单词的出现次数。但是我可以想象,如果我们使用基于字母三元组的词袋,很容易会有不同的词共享共同的模式,因此通过这种表示来恢复文档中哪些词的信息似乎很困难。

我理解正确吗?这个问题是如何解决的?或者论文中的查询/标题实验并不重要?

标签: machine-learningtextnlpwordinformation-retrieval

解决方案


但是我可以想象,如果我们使用基于字母三元组的词袋,很容易会有不同的词共享共同的模式,因此通过这种表示来恢复文档中哪些词的信息似乎很困难。

这是正确的,因为该模型并没有明确旨在通过使用来自单词的信息来学习后验概率。相反,它使用来自三元组的信息。

这个问题是如何解决的?或者论文中的查询/标题实验并不重要?

这个问题可以通过添加一个 CNN/LSTM 层来表示来自 trigram 输入的更高(接近于单词)抽象来解决。本文报告的研究在三元组输入之上使用了 CNN,如下所示。

在此处输入图像描述


推荐阅读