【问题标题】:Rasa NLU: Confidence Score ComputationRasa NLU:置信度计算
【发布时间】:2018-09-13 08:17:34
【问题描述】:

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

我一直致力于使用 tensorflow 嵌入进行意图分类任务。一旦我的模型经过训练并解析新/测试数据,我就会收到一个置信度分数以及每个可能的意图。但我几乎不知道这个置信度分数实际上代表什么。

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

快速查看code后,我认为它是在“embedding_intent_classifier.py”文件中的“_tf_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))

【问题讨论】:

    标签: python tensorflow metrics rasa-nlu


    【解决方案1】:

    意图分类器intent_classifier_tensorflow_embedding (docs) 是一种基于 Facebook 的 StarSpace paper 的方法。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-21
      • 1970-01-01
      • 1970-01-01
      • 2019-06-03
      • 1970-01-01
      相关资源
      最近更新 更多