首先讲讲注意力:
多头注意力(Multi-head Attention)和单头注意力(Single-head Attention)是注意力机制在Transformer模型中的两种不同变体。
单头注意力:
在单头注意力中,输入序列中的每个位置都只能关注到输入序列中的其他位置的一个加权组合。具体而言,对于给定的查询(query)、键(key)和值(value),通过计算查询与每个键的相关性得到注意力分布,然后将值按照这个分布进行加权求和,得到输出。
多头注意力:
在多头注意力中,通过并行地进行多个单头注意力操作,生成多组注意力输出。每个注意力头都学习到不同的注意力权重,从而可以捕捉到输入序列中不同方面的信息。然后将多个注意力头的输出连接起来,并通过一个线性变换来融合它们的结果。最后得到的融合结果就是多头注意力的最终输出。
区别:
-
关注范围: 单头注意力只能关注到输入序列中的一个加权组合,而多头注意力通过并行地进行多个注意力操作,能够同时关注到不同方面的信息。
-
模型表达能力: 多头注意力具有更强的模型表达能力,能够更好地捕捉输入序列中的复杂关系,因为它能够学习到多组不同的注意力权重