从Seq2Seq模型到Transformer
Seq2Seq定义Seq2Seq是一个Encoder-Decoder结构的网络,它的输入是一个序列,输出也是一个序列, Encoder使用循环神经网络(RNN,GRU,LSTM等),将一个可变长度的信号序列(输入句子)变为固定维度的向量编码表达, Decoder使用循环神经网络(RNN,GRU,LSTM等),将这个固定长度的编码变成可变长度的目标信号序列(生成目标语言) 对不定长序列,我们通常会采取填充/截断策略以保证输入可靠 填充:通常使用0或者特殊标记<pad>作为填充符 策略: 固定长度填充+截断 统一填充到max_length,剩余截断 动态填充 对于每个batch,统一填充到batch中最长序列的长度 滑动窗口截断 对长文本使用滑动窗口截取多个片段 图中的圆角矩形即为cell:可以是RNN,GRU,LSTM等结构 相当于将RNN中的$h_0$输入Encoder (将Decoder部分理解成RNN,Encoder输出的Encoder state作为$h_0$) Seq2Seq模型通过 端到端(?)...
Transformer前传:Seq2Seq与注意力机制Attention
Seq2Seq定义Seq2Seq是一个Encoder-Decoder结构的网络,它的输入是一个序列,输出也是一个序列, Encoder使用循环神经网络(RNN,GRU,LSTM等),将一个可变长度的信号序列(输入句子)变为固定维度的向量编码表达, Decoder使用循环神经网络(RNN,GRU,LSTM等),将这个固定长度的编码变成可变长度的目标信号序列(生成目标语言) 图中的圆角矩形即为cell:可以是RNN,GRU,LSTM等结构 相当于将RNN中的$h_0$输入Encoder (将Decoder部分理解成RNN,Encoder输出的Encoder state作为$h_0$) Seq2Seq模型通过 端到端(?) 的训练方式,将输入序列和目标序列直接关联起来,避免了传统方法中繁琐的特征工程和手工设计的对齐步骤。这使得模型能够自动学习从输入到输出的映射关系,提高了序列转换任务的性能和效率 端到端(End-to-End Learning)如何理解这个端到端(End-to-End...
从神经网络语言模型(NNLM)到Word2Vec:自然语言处理中的词向量学习
自然语言处理NLP语言模型语言(人说的话)+模型(完成某个任务) 任务: 概率评估任务:在两句话中,判断哪句话出现的概率大(哪句话在自然语言中更合理) 生成任务:预测词语,我明天要____ 统计语言模型用统计的方法解决上述的两个任务 核心思想给定一个词序列,计算该序列出现的概率 比如句子:”判断这个词的词性”,分词得到”判断”,”这个”,”词”,”的”,”词性” 这句话是有顺序的(是一个序列),怎么理解(?) 就是自然语言我们所说的语序 条件概率链式法则用于解决第一个任务$$统计语言模型的核心是计算一个句子 P(w_1,w_2,…,w_n) 的联合概率,即一句话出现的概率(w_i就是单个词)\P(w_1,w_2,\cdots,w_n) = P(w_1)\cdot P(w_2|w_1)\cdots P(w_n|w_1,w_2,\cdots,w_{n-1}) = \prod_{i}P(w_i |...




