BERT背景介绍——Attention机制
学习BERT一段时间了,但是还是没搞懂attention是什么,今天再来学习一下。
Attention机制
图片形象化展示了人类在看到一副图像时是如何高效分配有限的注意力资源的,其中红色区域表明视觉系统更关注的目标,很明显对于图片所示的场景,人们会把注意力更多投入到人的脸部,文本的标题以及文章首句等位置。深度学习中的注意力机制从本质上讲和人类的选择性视觉注意力机制类似,核心目标也是从众多信息中选择出对当前任务目标更关键的信息。
在神经网络模型处理大量输入信息的过程中,利用注意力机制,可以做到只选择一些关键的输入信息进行处理,来提高神经网络的效率。如上在计算机视觉和自然语言处理中。
Attention机制数学原理——加权求和
从数学公式上和代码实现上Attention可以理解为加权求和。假设????=[????_1,????_2,…,????_????]表示N个输入信息,为了节省计算资源,不需要让神经网络处理这N个输入信息,而只需要从X中选择一些与任务相关的信息输入进行计算。注意力机制在具体实现上有很多种类型,例如:Self-Attention、Soft Attention、Hard Attention等。
接下来的例子以Soft Attention为例子来阐述。 Soft Attention是指在选择信息的时候,不是从N个信息中只选择1个,而是计算N个输入信息的加权平均,再输入到神经网络中计算。
Soft Attention
把输入信息向量X看做是一个信息存储器,现在给定一个查询向量q,用来查找并选择X中的某些信息,那么就需要知道被选择信息的索引位置。定义一个注意力变量????∈[1, ????]来表示被选择信息的索引位置,即????=????来表示选择了第i个输入信息,然后计算在给定了q和X的情况下,选择第i个输入信息的概率????_????:
注意力分布????????表示在给定查询????时,输入信息向量????中第????个信息与查询????的相关程度。采用“软性”信息选择机制给出查询所得的结果,就是用加权平均的方式对输入信息进行汇总,得到Attention值: