去年写过《基于CNN的阅读理解式问答模型:DGCNN》,介绍了一个纯卷积的简单的问答模型。当时是用Tensorflow实现的,而且没有开源,这几天抽空用Keras复现了一下,决定开源。

模型综述 #

关于DGCNN的基本介绍,这里不再赘述。本文的模型并不是之前模型的重复实现,而是有所改动,这里只介绍一下被改动的地方。

1、这里放出的模型,线下验证集的分数大概是0.72(之前大约是0.75);

2、本次模型以字为单位,使用笔者之前探索出来的“字词混合Embedding”(之前是以词为单位);

3、本次模型完全去掉了人工特征(之前用了8个人工特征);

4、本次模型去掉了位置Embedding(之前将位置Embedding拼接到输入上);

5、模型架构和训练细节有所微调。

其中,以字为单位是为了让模型的标注更灵活(避免分词错误);去掉人工特征也增强了模型的灵活性,并且提高了预测速度;至于去掉位置Embedding,是因为测了几次发现位置Embedding并没有明显提升;其它调整,比如用了最新的RAdam优化器进行训练,等等。

这次开放模型并没有精细追求分数的提高,只是纯粹引入一个Keras版本供大家参考,笔者相信提升空间还有不少,有兴趣的朋友自行调试即可(代码和数据集均已开放)。

开源地址 #

Github地址:https://github.com/bojone/dgcnn_for_reading_comprehension
(运行环境:Python 2.7 + Tensorflow 1.8 + Keras 2.2.4。运行环境问题勿扰,谢谢!)

词向量:https://pan.baidu.com/s/1YYE2T3f-lPyLBrJuUowAsA,密码:5p0h

数据集:https://pan.baidu.com/s/11C21BAupOpiYWoOx23J7Mg,密码:dh9w

(数据集的开源如有不当之处,敬请来信告知,笔者会尽快删除。)

最后的话 #

祝大家试用愉快,欢迎多多交流~

转载到请包括本文地址:https://spaces.ac.cn/archives/6906

更详细的转载事宜请参考:《科学空间FAQ》

如果您还有什么疑惑或建议,欢迎在下方评论区继续讨论。

如果您觉得本文还不错,欢迎分享/打赏本文。打赏并非要从中获得收益,而是希望知道科学空间获得了多少读者的真心关注。当然,如果你无视它,也不会影响你的阅读。再次表示欢迎和感谢!

如果您需要引用本文,请参考:

苏剑林. (Aug. 20, 2019). 《开源一版DGCNN阅读理解问答模型(Keras版) 》[Blog post]. Retrieved from https://spaces.ac.cn/archives/6906

@online{kexuefm-6906,
        title={开源一版DGCNN阅读理解问答模型(Keras版)},
        author={苏剑林},
        year={2019},
        month={Aug},
        url={\url{https://spaces.ac.cn/archives/6906}},
}