提纲
1 简介 2 Evaluation 3 Meena 4 总结 参考文献
1 简介
**Meena是谷歌在20年发布的一款多轮开放域对话机器人,是一种端到端解决方案,以最小化困惑度ppl为目标进行优化。** 该团队还提出了一种人工评价指标SSA跟两种不同的评价模式,用于评估对话机器人的性能,同时验证了SSA跟语言模型困惑度ppl之间存在明显强相关,想要获得更接近人类水平的对话机器人,就需要更小困惑度的语言模型。
2 Evaluation
如何评价机器人生成回复的效果是一个巨大的挑战,为此, **Meena提出了一种人工评价的指标以及两种不同评估模式** ,可以衡量机器生成的对话回复接近真人水平的程度。
这里的评价指标包括两个,第一个是 Sensibleness , 判断回复对于对话上文是否有意义 。包括是否符合常识,是否符合逻辑,但是仅依靠这个指标的话容易让机器人倾向于那些笼统或者苍白的回复,例如万金油回复“我不知道”,“你说的对”。于是又提出了另一个指标 Specificity, 用于判断回复对于上文是否具有针对性 ,例如用户说“我喜欢打羽毛球”,机器人回复“我也是”,这样的回复会被认为是符合 sensibleness 但不符合 specificity ,但是如果机器人回复 ” 我也是,但是我的水平比不上林丹 ” ,这样的回复就会被认为是 sensibleness 且 specificity 。
为了兼顾这两个指标,Meena提出了 **SSA(sensibleness and specificity average),就是上述两个指标的平均值,作为评估机器回复有多接近人类水平的参考。** 通过比较多个机器人的SSA跟human likeness,发现SSA跟human likeness存在较高的正相关,是一个合理的对话机器人评价指标。
图1: SSA 跟human likeness的关系对比
有了评价指标后,Meena也提出了两种不同的评估模式,第一种是static,就是给定1~3轮的历史对话,输入到模型生成回复,让人根据回复打分,另一种是interactive,由机器人先打招呼“Hi”,然后让用户跟机器人进行任何主题或者领域的多轮交互聊天,直到进行了14~28轮对话,再对这些对话内容进行评测。
3 Meena
Meena采用的是参数量高达2.6B的Evolved Transformer(ET,一种通过NAS搜索得到的transformer变体),包含一个ET encoder模块跟13个ET decoder模块。训练数据来自网上的社交对话, **通过挖掘跟过滤整理成(context, response)这样的数据对,其中context是所有历史对话,最多包括7轮对话,而response表示当前对话内容。** 整个数据集包括341GB文本,40B个词,远超GPT2训练用到的的40GB网络数据。
传统的beam search容易生成重复且无趣的回复,为了避免生成太过笼统以及苍白无力的回复,Meena采用了更加复杂的解码策略。 **解码策略采用基于温度的概率计算方法,重新计算了每个候选词的概率,再进行采样。** ,如果文本T取值较大,模型更倾向生成稀有的词,容易给不正确的token赋予过高的权重,反之则会倾向于常见的词,虽然更加稳妥但是缺乏特异性。
图2: 基于温度的概率计算方式
文章结论需要注意的一点是, **模型训练过程是以最小化困惑度ppl为目标,后续在两种不同评估模式中,都发现困惑度ppl跟上述人工评价指标sensibleness,specificity以及SSA存在强相关** (两种评价模式下都有这种现象,进一步说明这不是由于数据集偏差导致),这是不是就意味着不用人工参与模型的评测了?ppl可以作为一种自动评价指标,只要努力降低语言模型的困惑度ppl,就可以让机器人更接近人类水平。
图3: interactive下sensibleness,specificity跟ppl的关系
4 总结
**当时看到Meena的文章时,只记得通过优化得到更小困惑度ppl的语言模型,就能得到更接近真人水平的对话机器人,但是在真实场景下,最小困惑度的语言模型往往不是体验效果最佳的,真人评测的步骤还是不能缺失。在LaMDA, Sparrow, instructGPT这些方法问世后,更能感受到这还是远远不够的,只看ppl或者SSA还是远不能衡量用户对于对话效果的真实反馈。**
参考文献
1.(2020) Towards a human-like open-domain chatbot