图注意力网络

同质图的注意力网络
注意力网络的机制:
想象你在看一张图片,但你只能注意到图片中的一部分。这部分可能是图片中最引人注目的部分,或者是与你当前任务相关的部分。这就是注意力的概念:你的大脑选择性地关注某些信息,而忽略其他信息。在深度学习中,注意力网络就像是模拟人类的这种注意力机制。它会给予不同部分不同的“重视程度”,然后根据这些权重来组合输入数据。比如说,如果你在看一张猫的图片,但图片中有很多东西,而猫占了大部分,那么注意力网络可能会更关注那个猫的部分,而不是其他不那么重要的部分。整个网络的运作方式就像是一个筛子,它会把输入数据过滤并突出显示最重要的部分,然后用这些重要的部分来做决策或者产生输出。这样,网络就能够更有效地处理信息,提高学习和预测的准确性。
输入表示:首先,网络接收到输入数据,这些数据可能是一组特征向量、序列数据或者图数据。每个输入都有一个表示(representation),代表了它在模型中的特征。
计算注意力权重:接下来,网络会计算每个输入的注意力权重。这些权重决定了每个输入在后续处理中的重要性。通常,计算注意力权重的方法是通过将每个输入与一个学习得到的权重向量进行加权求和,然后应用激活函数使得权重之和为1。这样就得到了每个输入的注意力分布。
加权组合:有了注意力权重之后,网络将利用这些权重对输入进行加权组合。这意味着对每个输入,根据其对应的注意力权重,将它与其他输入进行加权组合,得到一个加权的输入向量。
输出计算:最后,网络将加权组合后的输入向量输入到后续的层中进行处理。这可能是一个全连接层、循环神经网络层、或者是另一个注意力层。输出的结果通常是网络在给定任务上的预测或者表示。
单头注意力机制
计算注意力分数: 首先,为了确定每个输入在注意力机制中的重要性,需要计算它们与其他输入之间的相关性。这可以通过将输入之间的相似度进行比较来实现,通常使用点积(dot product)、加权和或其他相似度度量方法来计算注意力分数。
应用 softmax: 在得到注意力分数后,为了确保每个输入的注意力权重之和为1,常常会应用 softmax 函数。这会将注意力分数转换成注意力权重,使其成为一个概率分布,用于加权输入。
加权求和: 最后,利用计算得到的注意力权重对输入进行加权求和。每个输入的加权和将成为该输入的新表示(representation),反映了其在给定上下文中的重要性。
多头注意力机制
线性变换: 首先,对输入进行线性变换,将其投影到多个不同的注意力空间中。这个线性变换通常由学习得到的权重矩阵完成。
分头注意力计算: 对于每个头,计算注意力分数并应用 softmax 函数以获得注意力权重。这个过程与单头注意力机制类似,但是在多头中需要为每个头计算独立的注意力分数。
加权求和: 对于每个头得到的注意力权重,分别将其应用到原始输入上,然后将多个头的输出进行加权求和。这个加权求和过程可以使用学习得到的权重矩阵来完成,以确保模型更好地利用不同头的信息。
最终输出: 多头注意力机制的最终输出通常是加权求和后的注意力表示,可以直接用于后续的任务,如分类、预测等。
单头和多头注意力网络和同质图和异质图之间的联系
单头或多头注意力机制都可以应用于同质图和异质图的建模中。它们的选择取决于任务的复杂性和需要模型关注的信息。
对于同质图,可以选择使用单头或多头注意力机制来捕捉节点之间的关系,并进行节点分类、链接预测等任务。
对于异质图,由于图中的节点和边可能有不同的类型,通常需要更丰富和灵活的表示能力。在这种情况下,多头注意力机制可能更适合,因为它可以同时从不同类型的节点和边上学习不同的关注模式,提供更全面的信息表示。