这个赛道的目标是设立基于知识图谱的主动聊天任务。知识驱动对话-官网地址
对话目标g,其中g=START->TOPIC_A->TOPIC_B;表示机器从冷启动状态主动聊到话题A,然后聊到话题B。意味着在该任务中,由机器主动的引导对话;在该任务中,具体的话题包括电影和娱乐人物主体。
相关知识信息M,其中M=f1,f2,...,fn. 包括三类,分别是:话题A的知识信息,话题B的知识信息,话题A和话题B的关联信息。在该任务中,具体的相关知识信息包括电影票房,导演和评价等,以SPO形式表示。也就是(Subject, Predicate, Object),即(实体一,谓词,实体二)。
当前对话序列H=u1,u2,...u(t-1)
机器回复ut.
自动评估指标和人工评估指标结合。自动评估指标考虑三个层面的度量,分别是字级别(F1-score),词级别(BLEU)和回复多样性(DISTINCT)。关于回复多样性,还是基于词的计算,不过考察的是生成词的另外一个维度。在参考2中作者这样写道:
distinct-1 and distinct-2 are respectively the number of distinct unigrams and bigrams divided by total number of generated words
参考PyTorch官方提供的tutorial(见参考4),从seq2seq的角度解决问题的方法是,将多轮对话拆分成平行句。例如,针对当前对话序列H=u1,u2,...u(t-1),可以拆分成t-2组样本,分别是:u1->u2;u2->u3;...;u(t-2)->u(t-1);但是,这样的划分方式存在明显的问题是:句子之间的平滑。这应该是一个问题,但是还没有深入思考过。
目前,重构了PyTorch官方的Chatbot的Tutorial代码,将各个模块解耦出来,顺带发现了一个Bug。在此基础上,准备实现一个baseline,代码地址
实现思路上,主要参考论文《A Knowledge-Grounded Neural Conversation Model》,包括两个主要部分:
第一:如何将知识图谱的信息嵌入到模型中;
第二: memory机制的实现;
补充:
IJCAI16的文章《Neural Generative Question Answering》的3.2节提出了两种方式用于输入和KG的交互:
第一: Bilinear Model
第二: CNN-based Matching Model
参考:
1.第六届全国社会媒体处理大会-SMP2017中文人机对话技术评测(ECDT)
包含两个任务:用户意图领域分类和特定域任务型人机对话在线评测
2.《A Diversity-Promoting Objective Function for Neural Conversation Models》
3.《A Persona-Based Neural Conversation Model》