简单地说,encoder–decoder是模拟人类认知的一个过程。
认知或认识(英语:cognition)在心理學中是指通过形成概念、知觉、判断或想象等心理活动来获取知识的过程,即個體思维进行信息处理(information processing)的心理功能【维基百科】。而encoder–decoder就是在模拟这一信息处理过程。encoder记忆和理解信息,并提炼信息通常会形成一个低秩的向量(相对于输入),在这一过程中,可以只依赖于输入的信息,也可以在模型构建时添加先验规则、attention机制等等。就如同人在接触到一些新的信息之后通常也会利用常识与先验知识去试图理解与抽象化这些信息一样。而中间的编码形式就对应于人脑中的记忆。而decoder回忆与运用这些信息,再将低秩的加工后的信息抽取出来,这时也可以混合其它信息,解码成需要用的形式。encoder–decoder中的参数训练对应人脑对这种信息处理和运用的方法的能力习得过程。
比如基于encoder–decoder的机器翻译,就是说让机器先用一种语言的方式理解一句话,然后再将机器的理解用另一种语言翻译出来。这时判断理解的过程除了使用标注的训练数据之外还可以使用类似Auto-encoder的方法,通过机器是否可以将中间向量还原成编码前的内容来判断机器的编码方式是否保留了所有有效信息。当然,在decoder句子生成的时候还会有一些像语言模型的信息加入确保输出的句子像话。
而一些更复杂的encoder–decoder的运用比如这个
https://cs224d.stanford.edu/reports/KapashiDarshan.pdf
作者:Erutan Lai
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。