我们提出了一种编码器-解码器框架的新扩展,叫review network。这种 review network是通用的,能够增强任意现有的编码器-解码器模型:在这篇论文中,我们探讨了带有CNN和RNN编码器的RNN解码器。该review network在编码器隐藏状态下执行一些review步骤,并在每一次review后输出一个 thought vector;这些 thought vectors 在解码器中被用作注意力机制(attention machine)的输入。我们发现在我们的框架中,卷积的编码-解码器是一个特例。经过实证,我们发现我们的框架在提升图像和源代码描述的任务上超过了目前所有最先进的编码器-解码器系统。
项目地址:https://github.com/kimiyoung/review_net
你可以在这个 repo 中使用这个代码来生成一个 MSCOCO 评估服务器(CIDE.r=0.96+), 这个过程需要几个小时。
无需微调,没有花哨的技巧。仅训练三个端到端的 review network,然后做一个集成:
特征提取:并行 2 小时
单一模型训练:6 小时
集成模型训练:30 分钟
描述生成的波束搜索:并行 3 小时
下面是我们的系统在 MSCOCO 评估服务器上与其他先进系统的比较(根据已发表的论文)
Model | BLEU-4 | METEOR | ROUGE-L | CIDEr | Fine-tuned | Task specific features |
---|---|---|---|---|---|---|
Attention | 0.537 | 0.322 | 0.654 | 0.893 | No | No |
MS Research | 0.567 | 0.331 | 0.662 | 0.925 | No | Yes |
Google NIC | 0.587 | 0.346 | 0.682 | 0.946 | Yes | No |
Semantic Attention | 0.599 | 0.335 | 0.682 | 0.958 | No | Yes |
Review Net | 0.597 | 0.347 | 0.686 | 0.969 | No | No |
在 image_caption_online 目录下,你可以使用里面的代码重现我们的评估服务器的结果。
在 image_caption_offline 目录下,你可以使用离线评估重新运行我们论文中的实验。
添加代码描述
另一个有趣的任务是预测一条源代码的注释。在这个 repo 中,除了一个review network的代码外,我们也开放了一个带有 train/dev/test 分类的数据集。
查看 code_caption 目录。
下面是我们的框架系统在代码描述数据集上与基线的比较。
Model | LLH | CS-1 | CS-2 | CS-3 | CS-4 | CS-5 |
---|---|---|---|---|---|---|
LSTM Language Model | -5.34 | 0.2340 | 0.2763 | 0.3000 | 0.3153 | 0.3290 |
Encoder-Decoder | -5.25 | 0.2535 | 0.2976 | 0.3201 | 0.3367 | 0.3507 |
Encoder-Decoder (Bidir) | -5.19 | 0.2632 | 0.3068 | 0.3290 | 0.3442 | 0.3570 |
Attentive Encoder-Decoder (Bidir) | -5.14 | 0.2716 | 0.3152 | 0.3364 | 0.3523 | 0.3651 |
Review Net | -5.06 | 0.2889 | 0.3361 | 0.3579 | 0.3731 | 0.3840 |
用于描述生成的review networks(Review Networks for Caption Generation),这个 repo 中包含的代码和数据可在这篇论文中找到。