Bert框架详解(上)

目录

一、传统的自然语言处理框架存在的问题

1、RNN网络计算时存在的问题

2、传统word2vec存在的问题

二、Bert模型机制

1、编码-解码框架(Encoder-Decoder)

(1)、编码器(Encoder)

(2)、解码器(Decoder))

[2、自注意力机制(self attention)](#2、自注意力机制(self attention))

(1)、注意力机制

(2)、自注意力机制

3、多头机制(multi-headed)

4、三角函数位置编码


一、传统的自然语言处理框架存在的问题

1、RNN网络计算时存在的问题

(1)、串联,导致数据必须从h1-h2-...hm。数据训练时间变长,因为需要要等h1的结果出来才能计算h2;

(2)、并行计算效果不好,也就是不能多台服务器同时训练一个网络。

2、传统word2vec存在的问题

(1)、词向量一旦训练好了,就不会改变;

(2)、不同语境中的词含义不同,例如 【a、你真不是东西。 b、东西】 因此根据上下文不同的语境,应该有多个不同的词向量。

Bert模型的编码-解码框架就能解决上述问题

二、Bert模型机制

Encoder-Decoder:也就是编码-解码框架,目前大部分attention模型都是依附于Encoder-Decoder框架进行实现。 在NLP中Encoder-Decoder框架主要被用来处理序列-序列问题。也就是输入一个序列,生成一个序列的问题。这两个序列可以分别是任意长度。

比如:

文本摘要:输入一篇文章(序列数据),生成文章的摘要(序列数据)

文本翻译:输入一句或一篇英文(序列数据),生成翻译后的中文(序列数据)

问答系统:输入一个question(序列数据),生成一个answer(序列数据)

1、编码-解码框架(Encoder-Decoder)

(1)、编码器(Encoder)

Encoder:编码器,对于输入的序列<x1,x2,x3...xn>进行编码,使其转化为一个语义编码C,这个C中就储存了序列<x1,x2,x3...xn>的信息。

编码方法:主要RNN/LSTM/GRU/BiRNN/BiLSTM/BiGRU,例如RNN中用h4直接作为语义编码C的值。

(2)、解码器(Decoder)

Decoder:解码器,根据输入的语义编码C,然后将其解码成序列数据,解码方式也可以采用RNN/LSTM/GRU/BiRNN/BiLSTM/BiGRU。 Decoder和Encoder的编码解码方式可以任意组合。

语义编码:例如当我们翻译法语中的"abandon"时,我们大脑是先将abandon所表达的概念意识提取出来,这也就是一个编码的过程。 然后提取出来的这个意识概念也就是我们的Feature Vector. 接下来我们的大脑就会基于这个意识概念,去我们大脑中的英语语言库中把与这个意识概念匹配的英文单词提取出来, 这也就是解码的过程。

2、自注意力机制(self attention)

(1)、注意力机制

注意力机制其实是源自于人对于外部信息的处理能力。人在处理信息的时候,会将注意力放在需要关注的信息上,对于其他无关的外部信息进行过滤,这种处理方式被称为注意力机制。

一句话中,哪些是重点?如何让计算机关注到话语中的重点?

(2)、自注意力机制

自注意力机制是注意力机制的变体,是输入语句内部元素之间或者输出语句内部元素之间发生的注意力机制。

如何实现slef attention呢?

<1>、首先输入经过编码后得到的词向量

<2>、构建三个矩阵,相当于cnn的卷积核, 分别为wQ、wK、wv矩阵。

<3>、将每一个词向量与矩阵相乘。得到QKV矩阵。

其中

Q:为需要查询的

K:为等着被查的

V:实际的特征信息

slef attention如何计算?

<1>、计算一段话中每个词之间的匹配程度

<2>、通过匹配程度得到每个词的特征重要性。

每个词的Q会跟整个序列中的每一个K计算得分,然后基于得分再分配特征。

因此当和不同的词组合成序列,就会得到不同的特征值。因为不同的组合序列语句,注意力不同。

以上步骤,可通过并行计算,大大提高了计算速度。

3、多头机制(multi-headed)

multi-header(多头)机制:

(1)、通过不同的head得到多个特征表达,一般8个head

(2)、将所有特征拼接在一起

(3)、降维,将Z0~Z7连接一个FC全连接实现降维

将此类结构多层堆叠,就形成了多层网络

4、三角函数位置编码

前面的模型,并没有考虑词的顺序,只是单纯考虑一段话有哪些词。因此模型中需要加入位置编码bert模型运用了一种三角函数位置编码。

word embedding:是词向量,由每个词根据查表得到

pos embedding:就是位置编码。

composition:word embedding和pos embedding逐点相加得到,既包含语义信息又包含位置编码信息的最终矩阵。

pos:指当前字符在句子中的位置(如:"你好啊",这句话里面"你"的pos=0)

dmodel:指的是word embedding的长度(例"民主"的word embedding为[1,2,3,4,5],则dmodel=5), 2i表示偶数,2i+1表示奇数。取值范围:i=0,1,...,dmodel−1。偶数使用公式(1),奇数时使用公式(2)。 当pos=3,dmodel=128时Positional Encoding(或者说是pos embedding)的计算结果为:优点:

1、可以使PE分布在[-1,1]区间。

2、不同语句相同位置的字符PE值一样(如:当pos=0时,PE=0)。

相关推荐
龙的爹233331 分钟前
论文 | Legal Prompt Engineering for Multilingual Legal Judgement Prediction
人工智能·语言模型·自然语言处理·chatgpt·prompt
袁牛逼42 分钟前
电话语音机器人,是由哪些功能构成?
人工智能·自然语言处理·机器人·语音识别
lrlianmengba1 小时前
推荐一款可视化和检查原始数据的工具:RawDigger
人工智能·数码相机·计算机视觉
阿_旭1 小时前
基于YOLO11/v10/v8/v5深度学习的维修工具检测识别系统设计与实现【python源码+Pyqt5界面+数据集+训练代码】
人工智能·python·深度学习·qt·ai
YRr YRr1 小时前
深度学习:Cross-attention详解
人工智能·深度学习
阿_旭1 小时前
基于YOLO11/v10/v8/v5深度学习的煤矿传送带异物检测系统设计与实现【python源码+Pyqt5界面+数据集+训练代码】
人工智能·python·深度学习·目标检测·yolo11
夏天里的肥宅水1 小时前
机器学习3_支持向量机_线性不可分——MOOC
人工智能·机器学习·支持向量机
云卓科技1 小时前
无人车之路径规划篇
人工智能·嵌入式硬件·算法·自动驾驶
2403_875736871 小时前
道品科技的水肥一体化智能灌溉:开启现代农业的创新征程
大数据·人工智能·1024程序员节
hostpai2 小时前
FebHost:科技公司选择.TECH域名的魅力
人工智能·科技·搜索引擎·国外域名·科技域名·.tech域名