WingsBrokenAngel / Semantics-AssistedVideoCaptioning

Source code for Semantics-Assisted Video Captioning Model Trained with Scheduled Sampling Strategy
MIT License
56 stars 17 forks source link

请问sentence length loss在代码中体现在哪里 #5

Closed tangyuhao2016 closed 4 years ago

tangyuhao2016 commented 4 years ago

非常感谢您开源代码,我仔细阅读了您的文章并重新复现了代码,收获很多。但是也存在一些疑问: 提取300个单词作为语义分支的训练标签,提取语义特征,该特征被映射到0-1之间。 问题1:语义特征和lstm的视觉输入、前一时刻的word-embedding,前一时刻的隐藏层h(t-1)分别对应相乘,达到语义融合的目的吗? 问题2:文章提到人工选取k个单词,那么选取的标准是什么呢?为什么选择300个,如何找到这300个?(我在您的代码中,去除了schedule sampling仅使用semantic,发现提升很大 ) 问题3:(最困惑的问题)文章提到的sentence-length-related loss function具体体现在代码的哪里呢,我仔细阅读了您的源码,没有找到这部分内容,请您指点,非常感谢!

以下是我在您源码的基础上做的实验(没有找到sentence loss源码,所以无法去除进行对比): Base(仅使用LSTM),Base + schedule sampling,Base + semantic,参数未作改变,50epoch结果如下:

MSRVTT | B-4 | C | M | R | Overall | Time BASE | 40.3 | 41.3 | 26.1 | 60.1 | 0.896 | 19epo/3900s/10478s BASE+Samp | 39.1 | 41.8 | 25.9 | 60.1 | 0.915 | 22epo/4500s/10210s BASE+Semantic | 44.0 | 50.2 | 28.4 | 62.4 | 0.948 | 50epoch/11113.7s

Semantic的作用非常大。 针对上述三个问题尤其问题3,希望得到您的帮助

luo3300612 commented 4 years ago

sentence length loss 在这里,就是通过weighted_mask实现的,我也复现了一个pytorch版本的,在这里,欢迎交流哈~

tangyuhao2016 commented 4 years ago

sentence length loss 在这里,就是通过weighted_mask实现的,我也复现了一个pytorch版本的,在这里,欢迎交流哈~

非常感些您的回复,仍然有一些实验细节困扰我。回复太慢了 我是南航的博士,看了您的邮箱好像是南大的。可否加您的微信,探讨code里的问题,我对semantic和sentence loss很感兴趣。WX:tyh1552981316

WingsBrokenAngel commented 4 years ago

答1:如果简单地说相乘就不能体会到其中的奥妙。我这个方法其实来源于Semantic Compositional Networks for Visual Captioning:http://openaccess.thecvf.com/content_cvpr_2017/html/Gan_Semantic_Compositional_Networks_CVPR_2017_paper.html。这个方法在我的论文有详细的数学公式表述,代码也可参考。 答2:将单词按照出现次数从大到小排序,选择前300个有实际意义的单词。具体见答1中的文献。 答3:就是在运行时动态统计句长。

预定采样训练方法在普通LSTM上效果不明显,这在其他文献中也是报道过的。在我的模型中,预定采样可以起到百尺竿头更进一步的作用。相同的方法在不同的模型中效果略有差别。我这篇论文的题目就包含了semantics-assisted,正文中提出了衡量语义质量的指标,并有针对地进行优化。质量好的语义信息对模型的帮助非常大。

Haoran Chen