文章的细分就是句子,把没个句子转换成对应的向量
类似K和V,做相似度计算和实际值的可以不一样,提取注意力的向量和参与实际值运算的向量是可以不一样的,类似自注意力一样,提取后可以把问题和提取出来的值丢进另外一神经网络
可以反过来调整答案,构成闭环
根据参数调整系数
改变memory里面的值,就是原始的输入值
不同的注意力要均衡效果才好,要限制某些条件,无非就是去调整损失函数,然后梯度更神经网络的参数,然后更新输出值
训练和测试不是很匹配
训练的时候输入的是真正的答案,测试输入的是上一时刻输出的结果
不匹配一步错步步错了,就是个状态转移方程一样,树状图,所谓的曝光偏差就是测试的时候,是训练的时候没有见过的,直接就乱了,可以把模型当做个人一样的学习状态
训练的时候直接给输出也训练不起来,先用实际值输入训练,然后采用随机的方式选择实际值和输出值作为下一时刻的输入训练,等模型学好了再用,缓解了曝光偏差,后面是有参考输出值的
测试生成的时候用Beam Search,一个时刻最大,未必是整条链路最大,采用多条路径并行预测,每次取局部链路累乘的最大,不是某一个的最大
用强化学习的方法让产生的句子更像正常的句子,产生完整的句子后给个奖励
一个是loss,一个是整个句子是否像句人话,符合语法
是否像句人话直接去参与loss,这个是类似0/1的离散,后导致梯度调节的时候损失不变化,导致不能更新,所以用强化方法,用总和的方法