本项目是ICLR 2019论文《面向任务的对话的全局到本地存储指针网络》的PyTorch代码实现
by Chien-Sheng Wu, Richard Socher, Caiming Xiong. ICLR 2019. [PDF][Open Reivew]
论文地址:
https://arxiv.org/pdf/1901.04713
Github项目地址:(点击此链接可直接跳转)
https://github.com/jasonwu0731/GLMP
代码使用PyTorch>= 0.4编写。 如果你在工作中使用此工具包中包含的任何源代码或数据集,请引用以下文章。 bibtex字段如下:
@inproceedings{wu2019global, title={Global-to-local Memory Pointer Networks for Task-Oriented Dialogue}, author={Wu, Chien-Sheng and Socher, Richard and Xiong, Caiming}, booktitle={Proceedings of the International Conference on Learning Representations (ICLR)}, year={2019}}
端到端面向任务的对话是具有挑战性的,因为知识库通常很大,而且是动态的,很难融入到学习框架中。我们提出全局到本地存储指针(GLMP)网络来解决这个问题。 在我们的模型中,提出了一种全局存储编码器和本地存储解码器来共享外部知识。编码器对对话历史进行编码,修改全局上下文表示,并生成全局存储指针。解码器首先生成带有未填充槽的草图响应。接下来,它传递全局存储指针以过滤相关信息的外部知识,然后通过本地存储指针实例化插槽。实验结果表明,该模型能有效地提高复制精度,减轻常见的词汇量不足问题。因此,GLMP能够在自动和人工评估的模拟bAbI对话数据集和人 - 人斯坦福多域对话数据集中改进以前的模型。
我们创建了myTrain.py来训练模型。 你可以运行:GLMP bAbI dialogue t1-5:
❱❱❱ python3 myTrain.py -lr=0.001 -l=1 -hdd=128 -dr=0.2 -dec=GLMP -bsz=8 -ds=babi -t=1
或 GLMP SMD
❱❱❱ python3 myTrain.py -lr=0.001 -l=1 -hdd=128 -dr=0.2 -dec=GLMP -bsz=8 -ds=kvr
在训练时,保存具有最佳验证的模型。如果希望重用模型,请将-path=path_name_model添加到函数调用中。通过使用每一个响应精度,WER,F1和BLEU来评估模型。
我们创建了myTest.py来训练模型。 你可以运行:GLMP bAbI t1-5:
❱❱❱ python myTest.py -ds=babi -path=<path_to_saved_model>
或 GLMP SMD
❱❱❱ python myTest.py -ds=kvr -path=<path_to_saved_model> -rec=1
SMD导航域中的内存警示可视化。左列是全局内存指针G,中列是没有全局权重的内存指针,右列是最终内存指针