facebookresearch / ParlAI

A framework for training and evaluating AI models on a variety of openly available dialogue datasets.
https://parl.ai
MIT License
10.48k stars 2.09k forks source link

MovieDialog:Task:1 KB usage #391

Closed sebastianblank closed 6 years ago

sebastianblank commented 6 years ago

Hi,

I'm currently working with Memory Networks on the MovieDialog Dataset. I was wondering about the usage of the knowledge base (movie_kb.txt).

ParlAI/parlai/tasks/moviedialog/agents.py contains three different Teachers:

  1. Class KBTeacher(FbDialogTeacher)
  2. Class TaskTeacher(FbDialogTeacher)
  3. Class DefaultTeacher(MultiTaskTeacher)

I expected the MemnnAgent to interact with the MovieDialog TaskTeacher for the representation of the short-term memory and with the KBTeacher for the representation of the long-term memory.

When I run the model with the following call (I tried it for Task 1 and 3): $ python /users/…/ParlAI/examples/train_model.py -m memnn -t moviedialog:task:3 -mf '/tmp/model_movieDD3' -bs 256 --embedding-size 50 all the interactions in the parleys take place between the MemnnAgent and the MovieDialog Task Teacher. It seems like the constructor of KBTeacher is never called and when I rename the file of the KBs there is no problem caused by a missing file.

My question is: Did I miss to enter an argument that enables the usage of the KB or is there some other story behind it?

Thanks in advance !

Best Regards, Sebastian

jaseweston commented 6 years ago

The idea is that the KB Teacher could be used to be "taught about the KB" essentially by hearing its contents. This could then be used by an agent which could store this in its memory. We haven't implemented any agents that do that yet though, as far as I know..

alexholdenmiller commented 6 years ago

That is to say: if you do one full epoch of parleys between the kbteacher and an agent, it will have heard every fact. The model has to remember that and then figure out what to do with them during the training phase on the questions.

Closing for now--let us know if you have any more questions!

li910802 commented 5 years ago

I have the same confuse that how to train a KBQA model and how to combine the knowledge base with the question answer task. @alexholdenmiller @jaseweston