深度模型(七):Sampled Softmax
Softmax
给定softmax的输入(z1,z2,...,zn)(z_1,z_2,...,z_n)(z1,z2,...,zn),则输出为f(z1,f(z2),...,f(zn))f(z_1,f(z_2),...,f(z_n))f(z1,f(z2),...,f(zn)),其中f(zi),i∈[1,n]f(z_i),i\in[1,n]f(zi),i∈[1,n]的计算方式为:
f(zi)=ezi∑j=1nezjf(z_i)=\frac{e^{z_i}}{\sum_{j=1}^ne^{z_j}}f(zi)=∑j=1nezjezi
Sampled softmax
目前流行的基于神经网络的机器翻译(NMT)模型,采用的是Encoder-Decoder结构,对于输入序列x=(x1,x2,...,xSn)\boldsymbol{x}=(x_1,x_2,...,x_{S_n})x=(x1,x2,...,xSn),生成对应的目标序列y=(y1,y2,...,yTn)\boldsymbol{y}=({y_1,y_2,...,y_{T_n})}y=(y1,y2,...,yTn),模型的建模目标是最大化目标序列的条件概率。
logP(y∣x)=∑t=1TnP(yt∣y<t,x)logP(\boldsymbol{y}|\boldsymbol{x})=\sum_{t=1}^{T_n}P(y_t|y_{<t},\boldsymbol{x})logP(y∣x)=t=1∑TnP(yt∣y<t,x)
对于包含N个样本的训练数据,模型的训练目标就是最大化整体条件概率:
θ∗=argmaxθ∑n=1N∑t=1Tnlogp(ytn∣y<tn,xn)\theta^*=argmax_{\theta}\sum_{n=1}^N\sum_{t=1}^{T_n}logp(y_t^n|y_{<t}^n,\boldsymbol{x}_n)θ∗=argmaxθn=1∑Nt=1∑Tnlogp(ytn∣y<tn,xn)
详细的模型结构在这里就不再展开,可以参考我之前的文章深度模型(二):Attention,在这里我们主要关注模型softmax层的计算。
softmax层输出目标序列中第ttt位的符号概率分布,计算方式为:
p(yt∣y<t,x)=exp(wtTϕ(yt−1,zt,ct)+bt)Zp(y_t|y_{<t},x)=\frac{exp(w_t^T\phi(y_{t-1},z_t,c_t)+b_t)}{Z}p(yt∣y<t,x)=Zexp(wtTϕ(yt−1,zt,ct)+bt)
=exp(wtTϕ(yt−1,zt,ct)+bt)∑yk∈Vexp(wkTϕ(yt−1,zt,ct)+bk)=\frac{exp(w_t^T\phi(y_{t-1},z_t,c_t)+b_t)}{\sum_{y_k\in V}exp(w_k^T\phi(y_{t-1},z_t,c_t)+b_k)}=∑yk∈Vexp(wkTϕ(yt−1,zt,ct)+bk)exp(wtTϕ(yt−1,zt,ct)+bt)
其中V表示目标序列的词汇表,yt−1y_{t-1}yt−1表示目标序列中前一位的符号,ztz_tzt表示Decoder当前的隐状态,ctc_tct表示Encoder隐状态的Attention值。
可以看出为了计算目标符号yty_tyt的条件概率,必须计算ZZZ值,这需要对词表VVV中的符号进行遍历,计算量随着词表规模的变大而变大,目前词表的规模从几千到几万不等。
为了支持超大规模的词表,一个很自然的思路就是,能不能通过一些算法达到近似计算ZZZ值的目的呢。论文《On Using Very Large Target Vocabulary for Neural Machine Translation》提出了一种对ZZZ值的近似计算方法,这就是sampled softmax:
p(yt∣y<t,x)=exp(wtTϕ(yt−1,zt,ct)+bt)Z^p(y_t|y_{<t},x)=\frac{exp(w_t^T\phi(y_{t-1},z_t,c_t)+b_t)}{\widehat Z}p(yt∣y<t,x)=Zexp(wtTϕ(yt−1,zt,ct)+bt)
=exp(wtTϕ(yt−1,zt,ct)+bt)∑yk∈V′exp(wkTϕ(yt−1,zt,ct)+bk)=\frac{exp(w_t^T\phi(y_{t-1},z_t,c_t)+b_t)}{\sum_{y_k\in V'}exp(w_k^T\phi(y_{t-1},z_t,c_t)+b_k)}=∑yk∈V′exp(wkTϕ(yt−1,zt,ct)+bk)exp(wtTϕ(yt−1,zt,ct)+bt)
其中V′V'V′就是采样得到的词表,词表规模要远小雨整体的词表VVV,因此整体的词表VVV的规模不再造成计算量增长的问题。采样方式和V′V'V′的选择方式,以后有时间再补上。
深度模型(七):Sampled Softmax相关推荐
- Sampled Softmax,你真的会用了吗?
作者 | 夜小白 整理 | NewBeeNLP 前面两篇关于文本匹配的博客中,都用到了Sampled-softmax训练方法来加速训练. 基于表征(Representation)的文本匹配.信息检索. ...
- 一文讲懂召回中的 NCE NEG sampled softmax loss
深度学习中与分类相关的问题都会涉及到softmax的计算.当目标类别较少时,直接用标准的softmax公式进行计算没问题,当目标类别特别多时,则需采用估算近似的方法简化softmax中归一化的计算. ...
- NNs(Neural Networks,神经网络)和Polynomial Regression(多项式回归)等价性之思考,以及深度模型可解释性原理研究与案例...
1. Main Point 0x1:行文框架 第二章:我们会分别介绍NNs神经网络和PR多项式回归各自的定义和应用场景. 第三章:讨论NNs和PR在数学公式上的等价性,NNs和PR是两个等价的理论方法 ...
- 从DSSM语义匹配到Google的双塔深度模型召回和广告场景中的双塔模型思考
▼ 相关推荐 ▼ 1.基于DNN的推荐算法介绍 2.传统机器学习和前沿深度学习推荐模型演化关系 3.论文|AGREE-基于注意力机制的群组推荐(附代码) 4.论文|被"玩烂"了的协 ...
- 论文浅尝 | 使用预训练深度模型和迁移学习方法的端到端模糊实体匹配
论文笔记整理:高凤宁,南京大学硕士,研究方向为知识图谱.实体消解. 链接:https://doi.org/10.1145/3308558.3313578 动机 目前实体匹配过程中实体之间的差异比较微妙 ...
- 深度模型的日志异常检测,还有谁不会?
摘要:日志异常检测的核心是借助AI算法自动分析网络设备日志来发现并定位故障,根据送入检测模型的数据格式,日志异常检测算法模型分为序列模型和频率模型,其中序列模型又可以分为深度模型和聚类模型. AIOp ...
- 【论文速览】深度模型-降维与聚类
[论文速览]深度模型-降维与聚类 [文章一]InfoGAN: Interpretable Representation Learning by Information Maximizing Gener ...
- 文本匹配开山之作-DSSM论文笔记及源码阅读(类似于sampled softmax训练方式思考)
文章目录 前言 DSSM框架简要介绍 模型结构 输入 Encoder层 相似度Score计算 训练方式解读 训练数据 训练目标 训练方式总结 DSSM源码阅读 训练数据中输入有负样本的情况 输入数据 ...
- 【机器学习】sampled softmax loss
目录 1.前置知识softmax loss 2.sampled softmax 1.1.问题引入 1.2.如何通俗理解sampled softmax机制? 3.sampled softmax loss ...
最新文章
- User Profile Service 服务未能登录转载自(sailing的新浪博客)
- 【Docker】容器与系统时间同步
- 开发者社区精选直播合集一览
- SQLite FTS3/FTS4与一些使用心得
- 西门子主程序调用子程序_S7200Smart 子程序局部变量使用教程
- MySQL高级知识(十一)——Show Profile
- python基础教程书籍-7本Python必读的入门书籍
- 下载Windows10纯净官方镜像
- 网站速度这样优化,让你的网站飞起来
- 年薪50万的程序员_如何才能撩到年薪50万的程序员?
- HTML5中如何实现rpx布局
- 大学生活快要结束了,才想要珍惜~~~
- Discord/MidJourney注册遇到电话号码无效 invalid phone number
- Halcon学习笔记_05:一维码、二维码
- 中国数据竞赛解决方案汇总
- ipa文件在线上传工具,代替xcode
- GSM移动通信系统的A3A8加密算法源码
- win7电脑右键菜单选项的顺序怎么调整
- IT咨询巨头埃森哲遭遇勒索攻击事件,给了我们哪些启示?
- 5年测试经验华为社招:半月3次面试,成功拿到Offer
热门文章
- android的SDK离线安装详细教程
- python控制同学电脑(源码)
- java joda datetime_Java如何在Joda-Time中格式化DateTime对象?
- mycncart 之网银在线chinapay支付方式
- 给现在缺钱的年轻人一个大胆的建议!
- 【狂怒/战逆豪情/怒火特攻队】下载
- apdu 移动sim_中国移动手机支付业务及关键技术
- 手机淘宝商品详情API接口开发文档
- java 乱码怎么是繁体字_[求助]怎么是乱码,里面好多繁体汉字
- Web(二)html5基础-表格高级样式的设置