Closed tangyuhao2016 closed 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
非常感谢您开源代码,我仔细阅读了您的文章并重新复现了代码,收获很多。但是也存在一些疑问: 提取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,希望得到您的帮助