对话系统的指标分为两大类:客观评价指标和主观评价指标
其中客观评价指标分为词重叠评价指标和词向量评价指标。
【词重叠评价指标】
根据生成语句与参考答案语句之间的词重叠率来进行评价
【词向量评价指标】
通过了解每一个词的意思来判断回复的相关性,词向量是实现这种评价方法的基础。
通过余弦距离得到两者相似度进行比较。
【思想】
BLEU就是比较模型的生成语句和参考答案语句中的n-gram词组在整个训练语料中共现次数。
该方法认为如果共现次数越多,则越准确,效果越好。
一般采用BLEU-4
【原理】
Pn(r,r^) P n ( r , r ^ ) 计算n-gram的短语词组在整个数据集中的准确度
注:此处n-gram的值为1,2,3,….,n
w w 表示各个n-gram的权重。
BP是长度过短惩罚因子,由BP的公式可知取值范围是(0,1],候选句子越短,越接近0。我们不想让生成的答案长度太短,所以加一个惩罚因子来改善效果。
【特点】
仅在词向量基础上比较生成语句和参考答案语句的相似性,很难捕捉长距离的语义。
【原理】
【特点】
仅在词向量基础上比较生成语句和参考答案语句的相似性,很难捕捉长距离的语义。
【思想】
该方法使用句向量计算生成语句和参考答案语句之间相似度。
【原理】
语句的句向量:通过语句中每个词的词向量求均值来计算
分别计算出生成语句和参考答案语句的句向量,再计算二者余弦相似度进行比较。
困惑度
【语言模型】
给出一句话的前k个词,希望它可以预测第k+1个词是什么,即给出一个第k+1 个词可能出现的概率的分布p(x_{k+1}|x_1,x_2,…,x_k)
【思想】
困惑度(Perplexity)是衡量语言模型好坏的指标,估算一句话看该句子是否通顺。
它主要是根据每个词来估计一句话出现的概率,并用句子长度作normalize。
【原理】
困惑度越小,p(w_i)越大,期望的句子sentence出现的概率就越高。
【另一种表示】
从表达式上看和前面的意义是一样的,只不过w_i不再是单个词,它表示第i个bigram或其他单位量。
【用法】
当使用tf.contrib.seq2seq.sequence_loss()计算模型loss时,困惑度直接将计算出的loss取指数。
train_prep=math.exp(float(mean_loss)) if mean_loss < 300 else math.inf
【影响因素】