10. 自然语言处理 NLP
10.1 语言的特征表示 ***
word embedding
传统模型:词袋(bag-of-words),one-hot 编码
基于词频:潜在语义分析(LSA),文档-矩阵分解
基于词共现:GloVe,最小化向量表示 与概率 之间的误差
基于词预测:Word2Vec
CBOW:预测当前词,训练快
skip-gram:预测上下文词,低频词充分
negative sampling, hierarchical softmax
不足:丢失句子的上下文信息
语言模型(生成概率、无监督通用语义)
传统模型:马尔科夫假设,N-gram 语言模型(2 / 3)
ELMo:特征集合
GPT:预训练 文本分类、序列标注、句子关系判断 等不同任务
BERT
实现真正的双向多层语言模型:掩码语言模型(MLM),15% 替换为 [MASK]
显式地对句子关系建模,表征句子级别语义:输入句子向量,[SEP] / [CLS]
输入层
词序列
词序列
词序列 + 句子向量 + 位置向量
网络结构
双向 LSTM
Transformer 单向编码器
Transformer 双向编码器
预训练任务
双向语言模型
单向语言模型
掩码语言模型 + 下一句预测
融合方式
特征融合
fine-tune + 辅助任务
fine-tune
10.2 机器翻译 ***
神经机器翻译
基于 LSTM 的 Encoder-Decoder 架构(端到端):Seq2Seq
注意力机制、Transformer(多头自注意力机制)
未登录词(out-of-vocabulary,OOV)
翻译的基本单元:词 -> 子词 / 字符(BPE,Byte Pair Encoding)
将源语言中的词,拷贝到目标语言(指针网络,pointer network)
双语语料不足
爬虫获取更多语料:对齐问题
伪造双语平行语料:反向翻译、数据增强
模型层面解决:单语语料、其他语言对、其他领域的双语语料
10.3 问答系统 ****
主要任务
问题分类:决定答案的类型(事实、列举、假设条件、询问)
段落检索:根据问题,在知识库中,返回较小候选集(粗筛)
答案抽取:抽取最终答案
使用 CNN / RNN 解决 长距离语境依赖,Transformer 改进
CNN:共享权重,关键信息位置不敏感,但长度有限,难以处理 较长语境
RNN(LSTM):长文本特征表示,但无法并行加速,较长距离的信息依赖 仍然存在困难
注意力机制:降低信号传播长度,但没有保留 位置信息
自注意力机制 ,尺度缩放点积注意力
Query(Decoder 待生成序列),Value(Encoder 输入序列),Key
QANet:结合 CNN + 自注意力机制(卷积层 + 自注意力层 + 全连接层)
注意力机制,问题 + 段落 协同编码,获得更有效的编码表示
对 词的位置 进行编码:Transformer 中采用不同频率的 sin / cos 函数,对位置编码
10.4 对话系统 *****
任务分类:开放 / 封闭,任务型 / 非任务型
系统模块:对话理解(对话状态编码)、策略学习、对话生成
强化学习
原因:空间大,监督学习样本不足;在线训练
模块:策略学习模块,或 端对端建模
ACER(Actor-Critic with Experience Replay)
Last updated