NLP基础(五):CopyNet和PGN模型
1. OOV
摘要总结的结果有的时候并不准确,比如摘要的结果可能输出德国队以2-1比分击败阿根廷,但是实际比分是2-0。出现这种情况的原因是字典中没有2-0,即out-of-vocabulary words(OOV)。
2. CopyNet
CopyNet的模型可以分成左侧和右侧两个部分,左侧是一个对话模型,其实也是传统的翻译模型,由 encoder 和 decoder 两个模块构成。CopyNet有一个由概率建模的generate-mode和copy-mode。由于copy-mode的加入,decoder可以将输入直接复制过来,使用OOV的词。
3. Pointer-Generator Networks
原文中的Pointer-Generator Networks是一个混合了 Baseline seq2seq和PointerNetwork的网络,它具有Baseline seq2seq的生成能力和PointerNetwork的Copy能力。
从Baseline seq2seq的模型结构计算pgenp_{gen}pgen
pgen=σ(wh∗Tht∗+wsTst+wxTxt+bptr)p_{gen}=\sigma(w^T_{h^*} h^*_t+w^T_s s_t+w^T_x x_t+b_{ptr})pgen=σ(wh∗Tht∗+wsTst+wxTxt+bptr)
其中ht∗h^*_tht∗为context vector,sts_tst表示hidden state,xtx_txt为decoder的输入
class Pointer(tf.keras.layers.Layer):def __init__(self):super(Pointer, self).__init__()self.w_s_reduce = tf.keras.layers.Dense(1)self.w_i_reduce = tf.keras.layers.Dense(1)self.w_c_reduce = tf.keras.layers.Dense(1)def call(self, context_vector, state, dec_inp):return tf.nn.sigmoid(self.w_s_reduce(state) + self.w_c_reduce(context_vector) + self.w_i_reduce(dec_inp))
这时,会扩充单词表形成一个更大的单词表–扩充单词表(将原文当中的单词也加入到其中),该时间步的预测词概率为:
P(w)=pgenPvocab(w)+(1−pgen)∑i:wi=wαitP(w)=p_{gen}P_{vocab}(w)+(1-p_{gen})\sum_{i:w_i=w}\alpha^t_iP(w)=pgenPvocab(w)+(1−pgen)i:wi=w∑αit
如果是一个超出的词汇(OOV),Pvocab(w)P_{vocab}(w)Pvocab(w)为0;同样,如果www没有在原文本中出现,∑i:wi=wαit\sum_{i:w_i=w}\alpha^t_i∑i:wi=wαit为0。
参考资料
[1]Incorporating Copying Mechanism in Sequence-to-Sequence Learning
[1]Pointer-Generator-Network
NLP基础(五):CopyNet和PGN模型相关推荐
- Django基础五之Django模型层(二)多表操作
Django基础五之Django模型层(二)多表操作 一 创建模型 表和表之间的关系 一对一.多对一.多对多 # 作者表 比较常用的信息放在这个表中 class Author(models.Model ...
- NLP自然语言处理系列- week6-文本生成案例(4)(PGN模型代码)
NLP自然语言处理系列- week6-文本生成案例(4)(PGN模型代码) PGN架构图
- nlp基础—8.隐马尔科夫模型(HMM)分词实现
文章目录 引言 HMM分词实现 理论部分传送门: nlp基础-7.隐马尔可夫模型(HMM算法) 数据代码链接见:https://gitee.com/lj857335332/hmm-for-word-s ...
- 深度学习笔记 第五门课 序列模型 第二周 自然语言处理与词嵌入
本文是吴恩达老师的深度学习课程[1]笔记部分. 作者:黄海广[2] 主要编写人员:黄海广.林兴木(第四所有底稿,第五课第一二周,第三周前三节).祝彦森:(第三课所有底稿).贺志尧(第五课第三周底稿). ...
- 机器学习(五)常用分类模型(K最近邻、朴素贝叶斯、决策树)和分类评价指标
机器学习(五)常用分类模型(K最近邻.朴素贝叶斯.决策树)和分类评价指标 文章目录 机器学习(五)常用分类模型(K最近邻.朴素贝叶斯.决策树)和分类评价指标 综述 常用分类模型 K最近邻模型 朴素贝叶 ...
- 第五门课 序列模型(Sequence Models) 第一周 循环序列模型(Recurrent Neural Networks)
第五门课 序列模型(Sequence Models) 第一周 循环序列模型(Recurrent Neural Networks) 文章目录 第五门课 序列模型(Sequence Models) 第一周 ...
- 2021秋招-NLP基础任务模型-NER
NLP基础任务模型-NER 注: 基本全是转载,也都附加了转载链接,侵删. 多谢各位大佬的总结. 目录: 任务定义 简单综述 数据集细节总结 模型细节总结 损失函数计算 总结 NLP实战-中文命名实体 ...
- NLP 第五周 语言模型,bert(2)
BERT类预训练语言模型 我们传统训练网络模型的方式首先需要搭建网络结构,然后通过输入经过标注的训练集和标签来使得网络可以直接达成我们的目的.这种方式最大的缺点就是时间长,因为我们对于模型权重的初始化 ...
- 深度学习笔记 第五门课 序列模型 第一周 循环序列模型
本文是吴恩达老师的深度学习课程[1]笔记部分. 作者:黄海广[2] 主要编写人员:黄海广.林兴木(第四所有底稿,第五课第一二周,第三周前三节).祝彦森:(第三课所有底稿).贺志尧(第五课第三周底稿). ...
最新文章
- [bbk4966]第70集 第8章 -性能维护 01
- 3D视觉检测的未来:光度立体技术
- 关于网络的自动协商属性
- 决策树剪枝的方法与必要性
- TCP/IP协议示意图
- 从《跨过鸭绿江》中看程序员的时间管理实践
- php实例类,php实例-对象与类
- java date.getyear_为什么Java的Date.getYear()返回111而不是2011?
- linux的oracle最低配置,Oracle Linux的系统配置和限制
- 现代程序设计 学生情况调查
- 儿童手工制作日历_德莎胶带手工制作实用且美观的巨幅挂历,让你未雨绸缪
- Android SQLite (二) 基本用法
- 中国移动2013~2018年笔试真题及答案解析(助力2020秋招)
- 高程数据的下载以及运用高程数据进行坡度和坡向的计算
- iOS 友盟分享总结
- PyQt5项目:网速监控器
- Android源码分析-dex2oat
- 《轩辕剑4》最新秘籍
- 2022电工(中级)操作证考试题库及模拟考试
- 友盟启动耗时分析之耗时趋势及性能拆解
热门文章
- 英特尔老矣,尚能“转”否?
- dymola学习笔记-第四天——学习软件自带教程DymolaUserManualVolume1,page87-104
- matlab Simscape资料
- 绥化一中高考成绩查询2021,黑龙江绥化最好的4所高中,谁能稳坐头把交椅?高考成绩说明一切...
- 在计算机控制交流电机过程中,钢板彩涂过程中张力控制系统的研究
- 观察:华为全面进军公有云,胜算几何?
- 【04】HTML5+CSS3:01-HTML5新增标签、多媒体标签、input标签、新增表单属性、CSS3属性选择器、伪元素选择器、2D转换
- 优化vue (vue-fragment)
- 记录一次银行信息技术岗笔试
- 蓝桥杯模块之NE555