0

RASA NLU 使用什么样的模型来提取词嵌入后的实体和意图?

4

1 回答 1

2

Rasa 的这篇文阐明了一些方面。

使用 Rasa,您将首先训练一个矢量化器,将每个文档转换为一个 -N维矢量,其中N是您的词汇表的大小。这正是 scikit-learn 的CountVectorizer所做的。

相反,每个意图嵌入都构建为一个单热向量(1如果您有“混合”意图,则构建为具有更多 s 的向量)。这些向量中的每一个都具有文档嵌入的相同维度,所以我猜N实际上可能是(词汇量大小)+(意图数)。

那时,Rasa 将训练一个神经网络(默认:2 个隐藏层),其中损失函数旨在最大化文档d和意图之间的相似性,i如果在训练集中d被标记为(并最小化与所有其他意图嵌入的相似性) )。默认情况下,相似度计算为余弦相似度。id

每个新的、看不见的文档都由神经网络嵌入,并为每个意图计算其相似性。与新文档最相似的意图将作为预测标签返回。


老答案:

它不是 LSTM。他们说他们的方法受到了 Facebook 的 StarSpace的启发。

我没有发现上面的论文很有启发性,但是查看 Starspace 的 Github repo,据说文本分类用例与他们之前的工作TagSpace具有相同的设置。

TagSpace论文更加清晰,并解释了他们如何使用 CNN 将每个文档嵌入到空间中,以使其与相关类向量的距离最小化。单词、文档和类(“标签”)都嵌入在相同的d维空间中,并且它们的距离通过余弦相似度或内积来测量。

于 2019-02-07T18:01:29.883 回答