Lee Han:团长,有个问题请教。对于对话机器人日常用户产生的对话语料,现在业界产品(小爱,小度,siri,小冰…)都是怎么做标注的?特别是针对新意图的发掘都是怎么做的?有什么开放的标注工具吗?
以下回答内容,来自团员明德和左左左左的分享:
针对这个问题,主要从常见标注方法、新意图挖掘方式和标注工具三个方面来解答:
对于未知意图日志中未转人工或被点踩的那部分,在积累到一定数量(确保能聚出几个比较集中的簇)后先跑聚类,再对聚类结果中的每一个簇进行统一标注,标注结果主要分为以下两类:
用每一个簇的中心句(一般聚类中可以直接提取出中心句,如果没有的话就提取每个簇中的第一句)去跑现有的意图模型,把预测阈值top5或top10的意图组合作为意图标注的范围,如果top5或top10的意图组合中没有合适的意图,可以再取top10或top20的进行标注,最终再请未参与标注的人员帮忙做一下交叉确认。
top5示例如下:
如果某一个簇中的日志,或者多个簇中都有同一组相似问法的日志,无法被现有意图覆盖,并且日志数量在所有日志中占比不低(说明被问到的频率不低),可以直接提取出来作为一个新的意图;
上述的判断规则也可以直接做成功能,系统提取出可能的新意图后再由人工审核确认,提高新意图挖掘的效率;
对于已知意图日志中未转人工或被点踩的那部分,由于数量较多,主要对其中预测阈值较低(接近出话阈值下限)的那部分日志进行人工标注,特别是对于同一个用户之后三轮的聊天日志中转人工或被点踩的需要重点关注;
确定标注日志范围后,可以通过聚类模型跑一下关键词(效果不明显的话,也可以利用NER模型识别出来的实体作为关键词),找出高频关键词后进行归类,优先对高频关键词对应的日志进行标注;
在人工标注中涉及到的标注统一性问题可以参考以下饭团文章:
最终统一处理标注出来的错误意图,先通过调整两个意图下的语料(同时调整相似语料),如果还是无法匹配到正确的意图,需要考虑意图合并拆分或调整算法模型;
意图调整示例如下(红色数字代表调整步骤):
意图合并示例如下:
意图拆分示例如下:
首先,人工判定转人工或点踩的原因,主要分为以下几类(可从上到下依次进行判断):
由于未知意图转人工或被点踩的日志,在未知意图标注中需要优先处理,除了上一句机器人回复之外也可以再分析下之前三轮到五轮同一个用户的聊天日志,确认是否有无意图或意图匹配错误的日志;
找到所有的问题日志后,主要通过调整已有意图语料或新增意图两种方式修复:
已匹配到意图依旧被转人工或被点踩,先分析下之前三轮到五轮同一个用户的聊天日志,确认是否有无意图的日志,如果没有无意图日志,通过人工判断机器人回复日志对应的意图和用户原话意图是否一致:
上述两类原因都未符合的时候,可以从机器人回复内容的文字长度、结构合理性、措辞表达、是否直接解决用户问题等出发,找到优化点完成调优后,可以多找目标用户验证调优效果;
一般根据日志类型,如果日志中涉及到某一类NER的问法,可以把这一类问法的日志集中起来后统一标注这一类NER机器人回复的准备率;
在底层分词模型确定后,一般会根据其它类型标注(比如NER准确率标注、转人工或点踩日志标注等)中发现的分词错误,做正确分词标注后修正现有的分词模型;
新意图挖掘可以从对话语料的回答正确和回答错误的语料中挖掘。
从未正确回答的未知意图日志语料中的挖掘方式同第一点中的未知意图标注方法;
对于已知意图的日志,由于数量较多,可以从以下三类中选一类进行标注:
确定日志范围后,挖掘方式同第一点中的已知意图标注方法,人工逐条对每条日志的领域、意图、实体和机器人回复进行标注,在标注为错误意图的日志中,无法通过调整语料修复的那部分可能需要通过合并成新的意图或加入新的意图,作为新意图挖掘的一种来源。
目前开放的标注工具主要有腾讯Labelme和Prodigy,支持通用的标注需求;
对于主流的分类标注和实体标注,不建议使用通用标注工具,各家公司的算法模型都会在基础算法上进行调整,标注内容的导出格式和标注字段也需要满足各家算法的个性化需求,通用的标注工具较难满足。
-END-
以上内容,来自知识星球“AI产品经理大本营”,识别下图二维码,即可加入。
---------------------
作者:黄钊hanniman,前图灵机器人-人才战略官,前腾讯产品经理,8年AI行业经验,11年互联网背景,微信公众号/知乎/在行ID“hanniman”,“AI产品经理大本营”创建者,分享原创AI产品干货,200页PPT《人工智能产品经理的新起点》被业内广泛好评,下载量1万+。