今天给大家讲讲聊天机器人中的一些基本概念和关键技术。
所有的机器人都可以大致分为两类:任务型的机器人和闲聊型的机器人。
这两种机器人分别有一些特性。
对于任务型机器人呢,比如订书订餐订票等等,它需要比较精准的理解,另外,比较难以收集数据。
对于闲聊的机器人呢,语料比较好收集,一些电影台词,平时一些社交网络上的对话都可以,不过它的应用更多的是娱乐性质的,而且模型比较难评价。
基于任务型的聊天机器人主要包含四个模块:
- Spoken Language Understanding(SLU) ,将自然语言转化为intent和slot-values,比如“我想吃中餐,有什么推荐的吗”,intent是‘推荐餐厅’, slot-values是‘菜系-中餐’。
- Dialogue State Tracking(DST),跟踪对话状态并且输出当前对话状态。这个模块是任务型对话中最核心的模块。它描述的是其于多个slot-values值的多元状态分布。而且这个值是会随着状态的进行产生变化。比如,有如下的用户行为:“我想吃日菜…额,如果没有的话,法餐也可以…不行的话就中餐吧”,随着对话进行,用户的行为是可能变化的。slot分为informable slot,以及request slot。前者是会变化的,比如用户选餐厅给的约束条件,而后者是固定的,比如某家餐厅的位置。
- Dialogue Policy Learning(DPL),根据当前对话状态决定机器的行为,输出一个向量。它有三个输入,用户的intention,对话的state,根据state从数据库中查找的info,然后生成一个行为输出。
- Natural Language