利用access数据库做网站,wordpress 弹框,网络推广营销方案免费,网络软件开发专业目录
一、词向量
1、概述
2、向量表示
二、词向量离散表示
1、one-hot
2、Bag of words
3、TF-IDF表示
4、Bi-gram和N-gram
三、词向量分布式表示
1、Skip-Gram表示
2、CBOW表示
四、RNN
五、Seq2Seq 六、自注意力机制
1、注意力机制和自注意力机制
2、单个输出…目录
一、词向量
1、概述
2、向量表示
二、词向量离散表示
1、one-hot
2、Bag of words
3、TF-IDF表示
4、Bi-gram和N-gram
三、词向量分布式表示
1、Skip-Gram表示
2、CBOW表示
四、RNN
五、Seq2Seq 六、自注意力机制
1、注意力机制和自注意力机制
2、单个输出
3、矩阵计算
4、multi-head self-attention
5、positional encoding 一、词向量
1、概述 在自然语言处理中用词向量表示一个词将词映射为向量的形式。 词向量又叫Word嵌入式自然语言处理中的一组语言建模和特征学习技术的统称其中来自词汇表的单词或短语被映射到实数的向量。
2、向量表示 词向量可以有两种表示方法dispersed representation和distribution representation dispersed representation离散表示一般使用one-hot独热编码。 distribution representation分布式表示词嵌入就是分布式表示的形式可以将一个词通过嵌入空间embedding映射为一个定长稠密且存在语义关系的高维向量这样可以保证语义接近的词之间的向量相似度较高。
二、词向量离散表示
1、one-hot one-hot就是独热编码将一句话中的每个词都对应一个独热编码如“我爱学习人工智能”编码后为 “我”[1,0,0,0] “爱”[0,1,0,0] “学习”[0,0,1,0] “人工智能”[0,0,0,1] 独热编码存在问题缺少词与词之间的关系由于单词量巨大而产生的维度爆炸和词向量稀疏。
2、Bag of words 将每个单词在语料库中出现的次数加到one-hot编码中。 存在问题仍没有解决词与词之间关系问题和维度爆炸问题单词顺序也没有考虑。
3、TF-IDF表示 将罕见的单词加上高权重常见的加上低权重其实跟上面一种方法类似。 上述公式中N为文档总数表示词t的文档数。 存在问题同上
4、Bi-gram和N-gram 将两个单词再次组成单词表或多个单词组成单词表。 存在问题仍没有解决词义关系问题。
三、词向量分布式表示 一般以Word2Vec作为分布式表示的示例。 Word2Vec从大量文本中以无监督学习方式训练语义知识的模型通过学习文本来用词向量的方式表征词的语义信息也就是在嵌入空间中两个词的空间距离近则相似度更高。 1、Skip-Gram表示 通过中心词预测上下文词在中心词已知情况下预测上下文词出现概率 2、CBOW表示 通过上下文词推理中心词预测中心词出现的概率。在具体实现中会使用滑动窗口的方式读取上下文的词来计算输出的中心词的极大似然值训练输出词与真实中心词的相关性利用梯度下降来进行迭代训练。 四、RNN RNN循环神经网络指在全连接神经网络的基础上增加了前后时序上的关系。RNN的目的是用来处理序列数据通过在网络中引入循环连接使得RNN可以记忆之前的信息并用于当前的输入。 RNN结构输入层隐藏层输出层。RNN结构中的隐藏层会在每个时间点进行更新作为网络对序列数据的内部表示也会收到当前输入和之前隐藏层的影响。 RNN的优点适用于处理序列数据具有记忆能力可以处理变长序列数据。 RNN的缺点处理长期依赖性问题时容易产生梯度消失或梯度爆炸问题。由于每个时间点都要进行计算隐藏层和输出计算效率过低在长序列数据中会面临资源爆炸问题。 如何解决梯度消失合理的初始化权重保证避免梯度消失有点好笑了使用ReLU函数作为激活函数使用LSTM等新型结构。
五、Seq2Seq Seq2Seq序列到序列模型根据给定的序列通过特定的生成方法生成另一个序列的方法这两个序列可以不等长。这种结构又叫做Encoder-Decoder模型编码-解码模型也可以称为RNN的一个变种解决了RNN序列等长的问题。 Seq2Seq由三部分构成Encoder编码器语义编码cDecoder解码器构成编码器通过学习将输入序列编码成一个固定大小的向量c解码器通过对c的学习进行输出。一般来说编码器和解码器都会代表一个RNN如LSTM或GRU。也有一般的RNN模型 另外另一种方式下语义编码c将参加解码的每一个过程而不是只作为初始化参数。 六、自注意力机制
1、注意力机制和自注意力机制 传统注意力机制发生在Target元素和Source元素的所有元素中权重的计算需要Target来参与。 自注意力机制存在于输入语句内部元素之间或者输出语句内部元素之间计算权重时也不需要Target来参与。
2、单个输出 对于每一个输入向量a1经过self-attention后都会输出一个向量b1而这个b1是考虑了所有的输入向量a1a2...对a1产生的作用才得到的。首先我们将计算两个输入向量之间的α也就是相关性。 下图中两个绿框可以代表任意两个输入比如a1和a2左侧方法为a1经过一个矩阵得到q乘积运算a2经过一个矩阵得到k乘积运算将q和k做内积运算得到,也就是图中的α。右侧方法为a1经过一个矩阵得到qa2经过一个矩阵得到k将q和k做concat运算后投射到tanh激活函数在与W矩阵权重矩阵做一次乘积得到。 接下来的操作计算每一个相关性α下图中为,, ,。 几个注意点都是超参数是输入进去的通过与不同的a进行乘积运算得到的也是不同的。 将,, ,放入softmax中进行归一化处理获得,, ,,softmax的数学公式如下图右上角。 最后将每一个乘以矩阵得到,再与α进行相乘将每一个相乘后的值相加求和得到输出的b。b的计算公式如下图的右上角。 3、矩阵计算 首先可以将一个序列sequence的每一个a都进行concat这样形成了一个矩阵I分别与进行矩阵乘法就可以得到相应的q,k,v。 再将生成的每一个q和每一个k分别在x轴和y轴进行concat形成Q和(K的转置与Q进行矩阵乘法就得到了A也就是所有α所构成的二维矩阵经过softmax就得到了A(α所构成的二维矩阵 第三步将每一个v进行concat操作得到V将V与A做矩阵乘法就得到了Ob进行concat构成的矩阵 整体来看就是下图这样的一个矩阵运算操作。 4、multi-head self-attention 多头自注意力机制由于相关性可能有不同的形式有不同的定义所以可以有多个qkv来表示多种类型的相关性也就是在超参数中存在 ,...。对应的kv也有多个。 计算每一个的方式如下最后需要对多个进行y轴方向的concat也就是,将乘上权重矩阵W得到 5、positional encoding 对于训练self-attention时存在位置信息缺失的问题位置信息引入到训练数据中所以我们可以在Self-attention中加入位置信息。 通过设置一个新的positional vector用表示对于不同的处都有一个体现位置信息vector的长度时人为规定也可以通过大量数据训练出适合数据的vector。 参考视频 37.39、 自注意力机制P37_哔哩哔哩_bilibili 3-注意力机制的作用_哔哩哔哩_bilibili