AI | 自注意力机制(Self-Attention)

文章介绍了自注意力机制在自然语言处理中的重要性,特别是在词性标注中的应用,以及如何通过自动学习上下文来改进模型性能。重点讨论了自注意力机制的基本原理、矩阵运算和Transformer模型,强调了Transformer在通用AI领域的影响力。

01 | 为什么需要自注意力机制?

自然语言处理领域(NLP)的输入通常是一句话或几个连续语义字符的嵌入词向量,因此输入整体表现为“向量集合”的形式,即VectorSet。

使用嵌入词向量的原因起初是机器学习模型处理的输入必须是数值向量形式,因此必须将单个语义字符转变为对应的向量;而早期的One-Hot编码形式虽然可以将每个字符都映射为独一无二的向量编码,但是却失去了字符间的语义相似性;正因如此,基于文本数据事先得到字符的嵌入词向量便成为了后续语义分析的前置工作(预训练),且通常决定后续预测或分类任务的表现。

言归正传。

考虑一个具体的NLP应用:词性标注,其目标是为每一个单词标注词性,如名词、动词、冠词等。比如对于一句英文“I saw a saw”,对于懂英文的我们而言,自然知道其意思为“我看到了一把锯”,同样也可以尝试为其进行词性标注,第一个“saw”为动词,第二个“saw”则为名词。

解决上述任务的一种自然想法是:训练一个统一的MLP(多层感知机或神经网络),然后当输入“I”时输出“名词”,输入第一个“saw”时输出“动词”,输入第二个“saw”时输出“名词”。

然而很快你会发现存在问题:当输入就是单词“saw”时,输出的结果可能是“名词”也可能是“动词”,而对于训练好的MLP(或全连接层FC)而言,只要输入相同,输出就应该一样才对!

人们很快发现原因是没有考虑单词的上下文(Context)。所以一种改进的版本是设定一个长度为3的Window,每次分析单词时,综合考虑其前后各一个、总共三个单词的信息,这样就可以一定程度避免上述问题。

之所以说一定程度,是因为“window”方案显然需要考虑超参数窗口大小的问题,一般考虑设定所有相关Context的最大长度作为Window,但是势必会导致冗余的计算与存储成本。

那么有没有办法让模型自动学习到任一字符分析需要的所有相关上下文呢?

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值