Closed Jay-Jia closed 6 years ago
同樣有這個問題...稍微查了一下 好像seq2seq很多都會這樣做,尤其在NMT上 似乎論文做的實驗數據都是有reverse效果較好 不知道是不是因為encoder時sequence的第一個字離decoder時的第一個字比較近 所以attention效果更好?
这个做法来源于NMT那篇论文如果我没记错的话,论文里没有详细说明这么做的好处,只是从实验角度上验证了这么做效果比较好。你可以按照你说的那样理解,就是如果按照原始顺序那么记忆关系应该是1~N,2~N+1...,也就是说每个单词之间的距离都是N,如果反序的话,记忆关系应该是N~N-1,N+1~N-2...,虽然距离会逐渐变大,但整体平均距离还是N。有点类似于和为10的两个数的积,55>64>37>28>1*9一样,所以反序之后效果会好一点,个人理解,不一定准确
关于反序这个问题: 是不是因为decoder前期(前几个时刻)解码跟encoder的context关系比较大, 而后半部分的解码主要以来decoder这个语言模型, 我准备在你实验基础上做一个对比实验, 在测试的时候只保留句子的前半部分然后再反序, 对比一下性能
我個人認為是讓序列的前半段離decoder越近越好,因為decoder也是從序列的前半段開始輸出。
jinming notifications@github.com 於 2018年11月2日 週五 下午10:54寫道:
关于反序这个问题: 是不是因为decoder前期(前几个时刻)解码跟encoder的context关系比较大, 而后半部分的解码主要以来decoder这个语言模型, 我准备在你实验基础上做一个对比实验, 在测试的时候只保留句子的前半部分然后再反序, 对比一下性能
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/lc222/seq2seq_chatbot_new/issues/6#issuecomment-435406251, or mute the thread https://github.com/notifications/unsubscribe-auth/AXnX33LkS5fMt4yM7QpTRgfpH75dZ2byks5urFyKgaJpZM4TGq-p .
https://github.com/lc222/seq2seq_chatbot_new/blob/8d60e3ec8d122c843476464aeff4d0bf5d8adfd7/data_helpers.py#L52