©PaperWeekly 原创 · 作者|海晨威
学校|同济大学硕士生
研究方向|自然语言处理
在当前的 NLP 领域,Transformer / BERT 已然成为基础应用,而 Self-Attention 则是两者的核心部分,下面尝试用 Q&A 和源码的形式深入 Self-Attention 的细节。
Q&A
1. Self-Attention 的核心是什么?
Self-Attention 的核心是用文本中的其它词来增强目标词的语义表示,从而更好的利用上下文的信息。
2. Self-Attention 的时间复杂度是怎么计算的?
Self-Attention 时间复杂度: ,这里,n 是序列的长度,d 是 embedding 的维度,不考虑 batch 维。
Self-Attention 包括三个步骤:相似度计算,softmax 和加权平均。
它们分别的时间复杂度是:
相似度计算 可以看作大小为 和 的两个矩阵相乘: