Python Rasa NLU:置信度分数计算

Python Rasa NLU:置信度分数计算,python,tensorflow,metrics,rasa-nlu,Python,Tensorflow,Metrics,Rasa Nlu,我试图了解rasa nlu(ver-0.12.3)输出的信心分数实际上是什么,以及它们是如何计算的 我一直在从事tensorflow嵌入的意图分类任务。一旦我的模型经过训练并解析了新的/测试数据,我就会收到一个信心分数以及每个可能的意图。但我几乎不知道这个信心分数到底代表什么 正如文档中提到的,它并不代表概率。在对结果进行一些观察之后,这似乎是一种一对多类型的评估,即对于单个文本输入,我可以获得多个意图,并且具有较高的置信度分数 在快速查看之后,我认为它是在“Embedded\u intent\

我试图了解rasa nlu(ver-0.12.3)输出的信心分数实际上是什么,以及它们是如何计算的

我一直在从事tensorflow嵌入的意图分类任务。一旦我的模型经过训练并解析了新的/测试数据,我就会收到一个信心分数以及每个可能的意图。但我几乎不知道这个信心分数到底代表什么

正如文档中提到的,它并不代表概率。在对结果进行一些观察之后,这似乎是一种一对多类型的评估,即对于单个文本输入,我可以获得多个意图,并且具有较高的置信度分数

在快速查看之后,我认为它是在“Embedded\u intent\u classifier.py”文件(下面的相关代码段)中的“\u tf\u sim”函数中计算的

请有人确认/澄清它是如何工作的,或者信心分数在这里的确切含义是什么

    def _tf_sim(self, a, b):
    """Define similarity"""

    if self.similarity_type == 'cosine':
        a = tf.nn.l2_normalize(a, -1)
        b = tf.nn.l2_normalize(b, -1)

    if self.similarity_type == 'cosine' or self.similarity_type == 'inner':
        sim = tf.reduce_sum(tf.expand_dims(a, 1) * b, -1)

        # similarity between intent embeddings
        sim_emb = tf.reduce_sum(b[:, 0:1, :] * b[:, 1:, :], -1)

        return sim, sim_emb
    else:
        raise ValueError("Wrong similarity type {}, "
                         "should be 'cosine' or 'inner'"
                         "".format(self.similarity_type))

意图分类器
intent_分类器\u tensorflow_embedding
()是一种基于Facebook的方法

在这种方法中,意图示例及其标签都嵌入在同一个多维空间中。因此,意图特征向量和这个句子的标签都乘以一个权重矩阵,它将它们映射到一个n维空间。在训练过程中,调整这两个权重矩阵,以便映射的意图向量与其标签的映射向量相似,并且与其他标签尽可能不同。因此,相似性是使用。如果向量指向同一方向,对于其他角度,这种相似性为
1