The goal of this track is to set up active chat tasks based on knowledge graphs. Knowledge-driven dialogue-official website address
Conversation target g, where g=START->TOPIC_A->TOPIC_B; means that the machine actively chats from the cold start state to topic A, and then to topic B. This means that in this task, the machine actively guides the conversation; in this task, specific topics include movies and entertainment characters.
Related knowledge information M, where M=f1, f2,...,fn. includes three categories, namely: knowledge information of topic A, knowledge information of topic B, and related information of topic A and topic B. In this task, specific relevant knowledge information includes movie box office, director and evaluation, etc., expressed in the form of SPO. That is (Subject, Predicate, Object), that is (entity one, predicate, entity two).
Current dialogue sequence H=u1,u2,...u(t-1)
The machine replies ut.
Combination of automatic evaluation indicators and manual evaluation indicators. The automatic evaluation index considers three levels of measurement, namely character level (F1-score), word level (BLEU) and reply diversity (DISTINCT). Regarding the diversity of responses, it is still based on word calculation, but it examines another dimension of generated words. In Reference 2 the author writes:
distinct-1 and distinct-2 are respectively the number of distinct unigrams and bigrams divided by total number of generated words
Referring to the tutorial officially provided by PyTorch (see Reference 4), the way to solve the problem from the perspective of seq2seq is to split the multiple rounds of dialogue into parallel sentences. For example, the current dialogue sequence H=u1,u2,...u(t-1) can be split into t-2 groups of samples, which are: u1->u2;u2->u3;...;u (t-2)->u(t-1); However, there is an obvious problem with this division method: smoothness between sentences. This should be a question, but I haven't thought about it deeply.
Currently, the Tutorial code of PyTorch's official Chatbot has been refactored, each module has been decoupled, and a bug has been discovered. On this basis, prepare to implement a baseline, code address
For implementation ideas, we mainly refer to the paper "A Knowledge-Grounded Neural Conversation Model", which includes two main parts:
First: how to embed the information of the knowledge graph into the model;
Second: the implementation of the memory mechanism;
Replenish:
Section 3.2 of the IJCAI16 article "Neural Generative Question Answering" proposes two methods for interaction between input and KG:
First: Bilinear Model
Second: CNN-based Matching Model
refer to:
0.www2018,《DKN: Deep Knowledge-Aware Network for News Recommendation》
1. The 6th National Social Media Processing Conference-SMP2017 Chinese Human-Computer Dialogue Technology Evaluation (ECDT)
Contains two tasks: user intention domain classification and domain-specific task-based human-computer dialogue online evaluation
2.《A Diversity-Promoting Objective Function for Neural Conversation Models》
3.《A Persona-Based Neural Conversation Model》
4. chatbot tutorial with pytorch
5.2018 JDDC dialogue competition runner-up plan
6. How can a machine guess what you are thinking? Alibaba Xiaomi prediction platform decrypted
7. Disassemble the core of Alibaba Xiaomi and see the implementation logic of intelligent human-computer interaction
8. Reveal the secret in one article! The whole process of building a knowledge graph from the bottom up
9. How does the knowledge graph created for e-commerce sense user needs?
10. How do Alibaba engineers implement the health knowledge map?