为什么有好几个judgement?
【数据分析篇】SNLI数据集
Stanford自然语言推理(SNLI)数据集,全称The Stanford Natural Language Inference (SNLI) Corpus。
https://nlp.stanford.edu/projects/snli/
简介
SNLI1.0包含570,000的人工手写英文句子对。
针对 推理前提
(premise)与推理假设
(hypothesis)之间是否存在逻辑关系,人工标注了以下三种标签:
- entailment) 蕴含、推理 \(p \Rightarrow h \)
- contradiction 矛盾、对立 \(p \bot h \)
- neutral 中立、无关 \(p \nLeftrightarrow h \)
用于自然语言推理 (Natural language inference,NLI), 也称为 (recognizing textual entailment, RTE)。
数据
示例数据
Text | Judgments | Hypothesis |
---|---|---|
A man inspects the uniform of a figure in some East Asian country. | contradiction C C C C C |
The man is sleeping |
An older and younger man smiling. | neutral N N E N N |
Two men are smiling and laughing at the cats playing on the floor. |
A black race car starts up in front of a crowd of people. | contradiction C C C C C |
A man is driving down a lonely road. |
A soccer game with multiple males playing. | entailment E E E E E |
Some men are playing a sport. |
A smiling costumed woman is holding an umbrella. | neutral N N E C N |
A happy woman in a fairy costume holds an umbrella. |
snli_1.0/snli_1.0_train.jsonl
的第一行
1 | { |
疑问
还额外提供了句子的两种解析树表示。
自然语言推理(NLI)数据在构造的过程中存在一系列的人工模式,这种模式的直接后果是模型可以在不需要知道推理前提(premise)的条件下就可以以 67%的准确率判断推理假设(hypothesis)是否是蕴含(entailment)中立(neural)或对立(contradiction)
数据统计 &分析
premise | hypothesis | label | |
---|---|---|---|
a person on a horse jumps over a broken down airplane. | a person is training his horse for a competition. | neutral | 原句没有体现training和competition |
a person on a horse jumps over a broken down airplane. | a person is at a diner, ordering an omelette. | contradiction | 这种关系,是否要借助外界数据? |
a person on a horse jumps over a broken down airplane. | a person is outdoors, on a horse. | entailment | |
children smiling and waving at camera | they are smiling at their parents | neutral | |
children smiling and waving at camera | there are children present | entailment | there are属于stop word,最好。但是又要和there are not相反 |
children smiling and waving at camera | the kids are frowning | contradiction | |
a boy is jumping on skateboard in the middle of a red bridge. | the boy skates down the sidewalk. | contradiction | |
a boy is jumping on skateboard in the middle of a red bridge. | the boy does a skateboarding trick. | entailment | |
a boy is jumping on skateboard in the middle of a red bridge. | the boy is wearing safety equipment. | neutral | |
an older man sits with his orange juice at a small table in a coffee shop while employees in bright colored shirts smile in the background. | an older man drinks his juice as he waits for his daughter to get off work. | neutral | |
an older man sits with his orange juice at a small table in a coffee shop while employees in bright colored shirts smile in the background. | a boy flips a burger. | contradiction | |
an older man sits with his orange juice at a small table in a coffee shop while employees in bright colored shirts smile in the background. | an elderly man sits in a small shop. | neutral | |
two blond women are hugging one another. | some women are hugging on vacation. | neutral | |
two blond women are hugging one another. | the women are sleeping. | contradiction | |
two blond women are hugging one another. | there are women showing affection. | entailment | |
a few people in a restaurant setting, one of them is drinking orange juice. | the people are eating omelettes. | neutral | |
a few people in a restaurant setting, one of them is drinking orange juice. | the people are sitting at desks in school. | contradiction | |
a few people in a restaurant setting, one of them is drinking orange juice. | the diners are at a restaurant. | entailment | |
an older man is drinking orange juice at a restaurant. | a man is drinking juice. | entailment | |
an older man is drinking orange juice at a restaurant. | two women are at a restaurant drinking wine. | contradiction |
- premis比较具体,hyposies 简洁,抽象(比如male抽象成man,苹果抽象成苹果)
- contradiction通常有反义词,比如 up down
数据读取
【数据分析篇】百度竞赛 - 2018 - 阅读理解
简介
百度阅读理解数据集 DuReader是迄今为止规模最大的中文公开领域阅读理解数据集。数据集基于真实应用需求,所有问题都来源于百度搜索用户的真实问题,文档来自全网真实采样的网页文档和百度知道 UGC 文档,答案基于问题与文档由人工撰写生成。数据集标注了问题类型、实体和观点等丰富信息,弥补了现有主流数据集对于观点类问题覆盖不足的问题。首批发布的阅读理解数据集包含20万问题、100万文档及42万人工撰写的优质答案,并提供开源基线系统。DuReader 将为阅读理解技术研究提供有力支撑,希望加速相关技术和应用的发展。
室外场景理解数据集是世界范围内第一个带像素级语义标签的室外3D图像数据,来源于百度自动驾驶事业部。该数据集试图将感知能力从物体级感知升级到像素级感知,进而了解图片中所有像素的属性和来源,目标实现更精准、安全的自动驾驶。
视频精彩片段数据集主要来源于爱奇艺。视频类型为综艺节目,目前囊括近1500个长视频,视频总时长约1200小时,还从中手动收取出18000个精彩小视频,同时能够提供视频帧的图片特征序列,是全球首创的公开精彩片段标注数据集。
数据样例 1
raw/trainset/zhidao.train.json
1 | { |
数据样例2
raw/trainset/search.train.json
1 | { |
推荐系统架构
架构
模型训练层
服务层

推荐系统需要由多个推荐引擎组成,每个推荐引擎负责一类特征和一种任务,而推荐系统的任务只是将推荐引擎的结果按照一定权重或者优先级合并、排序然后返回。
召回:初始推荐结果
推荐引擎的构建来源于不同的数据源(也就是用户的特征有很多种类,例如统计的、行为的、主题的)+不同的推荐模型算法,推荐引擎的架构可以试多样化的(实时推荐的+离线推荐的),然后融合推荐结果(人工规则+模型结果),融合方式多样的,有线性加权的或者切换式的等
多个引擎一般也称为多路召回:
- 新鲜度召回
- 热度召回
- 质量分召回
- 个性化
- 基于用户CF召回
- 基于itemCF召回
随机提取,每路召回1000个item。10路就10000 item。
优点:
- 支持多种模型,以及自定义模型
- - 可以方便地增加/删除引擎,控制不同引擎对推荐结果的影响。对于绝大多数需求,只需要通过不同的引擎组合实现。
- 可以实现推荐引擎级别的用户反馈
粗排
精排
通常采用LR模型,或者LR的变种。
最上层线上推荐服务、中层各个推荐数据召回集(数据主题、分类池子)、底层各种推荐模型。
推荐系统有哪些坑? | 知乎
将“推荐”理解为“推送
高估算法作用
- 推荐系统中,按照影响效果:用户交互界面(UI) > 数据 > 算法。
技术点、难点、瓶颈
- online/offline
- streaming 推荐,比如滑来滑去小视频
参考
- 《推荐系统实践》 项亮
- QQ大数据推荐系统的架构演进
- 推荐系统的架构
hexo中如何支持公式 mathjax
UPDATE: 2018-08-08: github markdown已经支持公式,
简介
mathjax
Beautiful math in all browsers
A JavaScript display engine for mathematics that works in all browsers.
—— 来自www.mathjax.org
MathJax是一款运行在浏览器中的开源的数学符号渲染引擎,使用MathJax可以方便的在浏览器中显示数学公式,不需要使用图片。目前,MathJax可以解析Latex、MathML和ASCIIMathML的标记语言。 MathJax项目于2009年开始,发起人有American Mathematical Society, Design Science等,还有众多的支持者。
- 无损缩放,支持多种方式的公式渲染(math-render)。(不采用图片、Flash)
- CSS引擎:采用CSS生成数学公式
- SVG引擎:采用SVG生成数学公式
- MathML引擎:
- 源码拷贝。可以拷贝LaTeX、wiki等;
- 输入形式可以是MathML、TeX或者ASCIImath
html中使用mathjax
mathjax就是个前端渲染引擎。
也可以借鉴 https://kexue.fm/latex.html
或者拷贝以上代码,保存为math.html
,双击打开就能看到渲染好的公式。
hexo中使用mathjax
同样很简单,仅需两步。
- 加载mathjax的cdn
- 博客中按照
tex
语法写公式即可
示例
markdown中书写:
1 | $$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$ |
会被自动渲染成以下公式:
$$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$
1 | # 其他方式: |
hexo中支持公式的markdown插件
- hexo-renderer-marked
这是hexo默认的markdown渲染插件,其调用的marked.js渲染引擎。 - hexo-math插件。不推荐,竟然还支持
math
的标签,画蛇添足
markdown渲染引擎
marked
轻量级 demo- jupyter、google-colab、hexo默认采用的
marked.js
作为渲染引擎 - hexo模块: hexo-renderer-marked
- jupyter、google-colab、hexo默认采用的
pandoc
重量级 demo- pandoc -f markdown+tex_math_single_backslash –mathjax test.md -o test.html
- 以上参数的命令可以解决问题
- hexo模块: hexo-renderer-pandoc
kramdown
demo- cs231n 等采用的kramdown
- hexo模块: hexo-renderer-kramed
存在的问题
公式的转义问题
有时会遇到公式渲染失败,有时也会遇到很多不同的公式写法,比如:
$
、$$
\(
和\)
、\[
和\]
\\(
和\\)
、\\[
和\\]
,示例tensorflow 、cs231n
公式渲染失败,一般是由于不同的markdown引擎的渲染方式不同引起的,以上的\\(
这种写法也是为了和markdown渲染引擎作斗争,以致于写个公式变得这么复杂。
举个例子
1 | \[ x=1 \] |
经过marked
引擎解析成以下html:
1 | <p>[ x=1 ]</p> |
注意: 这里的反斜线\[
经过marked
引擎后转义丢失,只剩下[
。因此mathjax无法识别,以致于公式无法正常显示。
怎么办?既然反斜线丢失,那就多加个反斜线,写成\\[ x=1 \\]
。这样就渲染成功了
常见的markdown渲染引擎
marked
轻量级 demo)pandoc
重量级 也存在同样的问题,demo&from=markdown&to=)- pandoc -f markdown+tex_math_single_backslash –mathjax test.md -o test.html
- 以上参数的命令可以解决问题
kramdown
也存在同样的问题,demo
- 多加个反斜线,比如
\[
要写成\\[
麻烦 - 修改marked源码,取消了对
\\
,\{
,\}
的转义(escape) 麻烦 - 采用其他markdown引擎,比如kramdown (比如cs231n就采用的kramdown) 发现也不work
- 把所有
\[
替换成$$
我目前是这样做的
建议:
不要采用 \[
或 \(
的格式书写公式,尽量用$$
或 $
- 很多引擎不支持
\[
或\(
(比如github) \[
中的反斜线经常会被解释成转义符号,造成符号丢失
疑问
参考
RNN研究现状以及发展趋势,LSTM的变种 (variants of LSTM)
训练算法,如Back Propagation Through Time(BPTT)、Real-time Recurrent Learning(RTRL)、Extended Kalman Filter(EKF)等学习算法,以及梯度消失问题(vanishing gradient problem)
- 详细介绍Long Short-Term Memory(LSTM,长短时记忆网络);
- 详细介绍Clockwork RNNs(CW-RNNs,时钟频率驱动循环神经网络);
- 基于Python和Theano对RNNs进行实现,包括一些常见的RNNs模型。
#
GRU - gated recurrent unit
It combines the forget and input gates into a single “update gate.” It
also merges the cell state and hidden state, and makes some other changes. The resulting model is simpler than
standard LSTM models, and has been growing increasingly popular.
SRNN -
上海交通大学的Zeping Yu 和Gongshen Liu,在论文“Sliced Recurrent Neural Networks”中,提出了全新架构“切片循环神经网络”(SRNN)。SRNN可以通过将序列分割成多个子序列来实现并行化。SRNN能通过多个层获得高级信息,而不需要额外的参数。
SRU - simple recurrent unit
lightRNN
深度学习中的注意力机制 原理 及 代码
seq2seq缺陷:无论之前的context有多长,包含多少信息量,最终都要被压缩成一个几百维的vector。这意味着context越大,最终的state vector会丢失越多的信息。
Attention based model的核心思想: 一个模型完全可以在decode的过程中利用context的全部信息,而不仅仅是最后一个state。
- ss
- global attention
- local attention
- ewrw
- soft
- hard
各种各样的attention
- 2014年google mind团队的这篇论文《Recurrent Models of Visual Attention》,他们在RNN模型上使用了attention机制来进行图像分类。
- Bahdanau等人在论文《Neural Machine Translation by Jointly Learning to Align and Translate》中,使用类似attention的机制在机器翻译任务上将翻译和对齐同时进行,他们的工作算是第一个将attention机制应用到NLP领域中。
- 接着attention机制被广泛应用在基于RNN/CNN等神经网络模型的各种NLP任务中。
- 2017年,google机器翻译团队发表的《Attention is all you need》中大量使用了自注意力(self-attention)机制来学习文本表示。
什么是attention,attention的起源
广义的attention
见google得transformer。
Attention函数的本质可以被描述为一个查询(query)到一系列(键key-值value)对的映射,
self attention
什么是self-attention,下面这个图就是self-attention。
可以理解为没有target的attention,也可以理解为自己把自己当做target进行attention。
Multi-Head Attention
Structured Self-attention
参考 A Structured Self-attentive Sentence Embedding
Self-Attention with Relative Position Representations - google brain 2018
Self-Attention with Relative Position Representations(基于相对位置表示的子注意力模型)
Reinforced Self-Attention
Reinforced Self-Attention Network: a Hybrid of Hard and Soft Attention for Sequence Modeling(增强的自注意力网络:一种对序列建模的硬和软注意力的混合)
Distance-based Self-Attention Network
Distance-based Self-Attention Network for Natural Language Inference(基于距离的自注意力网络的自然语言推理)
sparse attention
hierarchical attentioin
Hierarchical Attention Networks for Document Classification
采用了word-level和sentent-level的attention。
- a word sequence encoder
- 采用的GRU。Document Modeling with Gated Recurrent Neural Network… 这篇文章提到,在文本分类领域 GRU比LSTM效果好。
- 也可以采用CNN
- a word-level attention layer
- a sentence encoder
- a sentence-level attention layer
可视化分析
##
##
参考
【机器翻译】transformer
简介
在2017年5月Facebook发布了ConvSeq2Seq
模型吊打了GNMT一个月之后,Google发出了最强有力的反击,发表了一篇论文Attention is all you need,文中提出了一种新的架构叫做Transformer
,用以来实现机器翻译。它抛弃了传统的CNN、RNN,只采用attention,取得了很好的效果,激起了工业界和学术界的广泛讨论。
背景,motivation
如何获取context信息
常用的模型架构有RNN、CNN(见 related work)。
trick方面,常见的是position-encoding


transformer横空出世
Transformer避开了recurrence,只用attention,便可以刻画出输入和输出的依赖关系。
对比RNN的决策步骤太长问题,transformer可单步决策。通过一层self-attention,bank能够直接attend到river上。
ConvS2S是线性时间复杂度,ByteNet是log时间复杂度。而Transformer则是常数时间复杂度(前提是the cost of reduced effective resolution due to averaging attention-weighted positions, an effect we counteract with Multi-Head Attention)。
核心点 创新点 亮点 trick
对attention的抽象
对attention的抽象 q k v
When $a \ne 0$, there are two solutions to $ax^2 + bx + c = 0$ and they are
$$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$
前面给出的是一般化的框架形式的描述,事实上Google给出的方案是很具体的。首先,它先把Attention的定义给了出来:
$$ Attention(\boldsymbol{Q},\boldsymbol{K},\boldsymbol{V}) = softmax\left(\frac{\boldsymbol{Q}\boldsymbol{K}^{\top}}{\sqrt{d_k}}\right)\boldsymbol{V} $$
这里用的是跟Google的论文一致的符号,其中$ \boldsymbol{Q}\in\mathbb{R}^{n\times d_k}, \boldsymbol{K}\in\mathbb{R}^{m\times d_k}, \boldsymbol{V}\in\mathbb{R}^{m\times d_v} $。如果忽略激活函数softmax的话,那么事实上它就是三个$ n\times d_k,d_k\times m, m\times d_v $的矩阵相乘,最后的结果就是一个$ n\times d_v $的矩阵。于是我们可以认为:这是一个Attention层,将n$ n\times d_k $的序列Q编码成了一个新的$ n\times d_v $的序列。
并行其实就是encoder的时候可以,速度上来说transformer并不占优势
这里将attention抽象成 q k v
- attention 可以不只是用于 decoder 里每步输入一个符号,而是可以用在网络中的任意一层,把一个序列转换成另一个序列。这个作用与 convolutional layer、recurrent layer 等是类似的,但有一个好处就是不再局限于局域性。attention是直接去capture dependency structure,摆脱了局限性魔咒
- attention 可以一般地描述为在一个 key-value mapping 中进行检索,只不过 query 跟 key 可以进行模糊匹配,检索结果是各个 key 对应的 value 的加权平均。
Query, key, value 其实并不是专门针对翻译的概念。不过可以举一些翻译中的例子。例如,当刚刚翻译完主语之后,attention 的内部状态就会想要去找谓语,这时它就把「想找谓语」这件事编码成 query。然后句子里本身是谓语的地方,会有一个 key,表明「我这里可以提供谓语」,它跟 query 一拍即合。这个 key 对应的 value 就是谓语本身的 embedding。
机器翻译中的特例
ss
Q: 在LSTM+attention模型里,query就是上一个时间单元的隐状态,容易理解,即你所谓的对[想找谓语]编码,但是all attention模型不再使用LSTM,这个query编码是什么?谢谢
A: all attention model 只不过不再用 lstm 计算隐状态,而是用 attention 计算得出。一层 attention 计算出的结果就是下一层的 query
Multi-Head Attention
以Q为例,单个head的计算
将输入向量切成8份,这每一
份可以看成一个local partial,然后再分别attnetion最终再concat成一个context向量。如果将本文multi-head attention的V输入切成八份后的
向量类比关注不同local paritial的卷积核的话,我们可以看到CNN和这里multi-head attention异曲同工
优势:能在encode的时候并行化,(convS2S同样可以,但是transformer只用attention)
- Multiple attention layers (heads) in parallel
- Each head uses different linear transformations.
- Different heads can learn different relationships.
思考
- self attention遗漏了什么?位置信息
- self attention中的k, q, v分别指代什么?
- self attention是否可逆向?
FFN层
FFN(Position-wise Feed-Forward Network)。
- Position-wise: 顾名思义,就是对每个position采用相同的操作。
- Feed-Forward Network: 就是最普通的全连接神经网络,这里采用的两层,relu作为激活函数
FFN层对接multi-head attention层,那么该层的输入 $x \in \mathbb{R}^{batchsize \times length \times d_{model}}$。
https://github.com/tensorflow/tensor2tensor/blob/v1.9.0/tensor2tensor/models/transformer.py#L1373
$$
FFN(x)=max(0,x W_1+b_1)W_2+b_2
$$
其中输入和输出的维度都是$d_{model}=512$,中间维度是$d_{ff}=2048$。对于单个position
$$
x \in \mathbb{R}^{512}, W_1 \in \mathbb{R}^{512 \times 2048}, W_2 \in \mathbb{R}^{2048 \times 512}
$$
与卷积的等价性
这里的全连接层,一种替代方案就是采用kernel size为1的卷积,即
tensor2tensor中有两种实现dense_relu_dense 和 conv_relu_conv,默认采用的前者。
其中卷积的维度是
1 | input.shape = [batch_size, length, 512] |
tensor2tensor实现中,conv1d中的kernel_size如果为1,默认返回dense。源码
1 | def tpu_conv1d(inputs, filters, kernel_size, padding="SAME", name="tpu_conv1d"): |
逗比,conv到底比dense会不会加速?
为什么我觉得kernel_size=512才等价于全连接?
实际上,kernel_size没必要一定是1的。
层数与维度设计 - 很精妙
很自然,我们有两个疑问。
- 为什么要两层?
- 为什么要先升维再降维?
ResNet等网络通常采用bottleNeck架构,先降维再升维(减小计算量)。这里是什么思想
小结
- 为什么要设置全连接层?全连接层一般占用参数比较多,比如常用的CNN架构里很少在中间层放全连接。 这里在中间层大量使用FFN的思想是什么呢? 仅仅是为了故意避开CNN?
- 答:FFN的设计初衷是: 1. 增加非线性变换; 2. 维度变换。同时尽量减少参数量、计算量。
- 如果不采用FFN呢?有什么更好的设计?
- conv层: 单个position的conv无意义。可以考虑跨position的conv!!!
- pooling层
- 全连接参数多,在多数CNN架构里只在最后一层加FC层。
- 为什么叫强调
position-wise
?不就是普通的ReLU激活函数的神经网络吗?- 解释一: 这里FFN层是每个position进行相同且独立的操作,所以叫position-wise。对每个position独立做FFN。
- 解释二:从卷积的角度解释,这里的FFN等价于kernel_size=1的卷积,这样每个position都是独立运算的。如果kernel_size=2,或者其他,position之间就具有依赖性了,貌似就不能叫做position-wise了
- paper中强调:applied to each position separately and identically
既想增加非线性,又不像增加计算量?
Positional Encoding
回顾一下Transformer的整个架构,不难发现Transformer模型本身并不能捕捉序列的顺序。换句话说,如果将K,V按行打乱顺序(相当于句子中的词序打乱),那么Attention的结果还是一样的。这就表明了,到目前为止,Attention模型顶多是一个非常精妙的“词袋模型”而已。
Sinusoid Positional Encoding
1、以前在RNN、CNN模型中其实都出现过Position Embedding,但在那些模型中,Position Embedding是锦上添花的辅助手段,也就是“有它会更好、没它也就差一点点”的情况,因为RNN、CNN本身就能捕捉到位置信息。但是在这个纯Attention模型中,Position Embedding是位置信息的唯一来源,因此它是模型的核心成分之一,并非仅仅是简单的辅助手段。
2、在以往的Position Embedding中,基本都是根据任务训练出来的向量。而Google直接给出了一个构造Position Embedding的公式:
$$\left{\begin{aligned}&PE_{2i}(p)=\sin\Big(p/10000^{2i/{d_{pos}}}\Big)\
&PE_{2i+1}(p)=\cos\Big(p/10000^{2i/{d_{pos}}}\Big)
\end{aligned}\right.$$
这里的意思是将id为$p$的位置映射为一个$d_pos$维的位置向量,这个向量的第$i$个元素的数值就是$PE_{i}(p)$。Google在论文中说到他们比较过直接训练出来的位置向量和上述公式计算出来的位置向量,效果是接近的。因此显然我们更乐意使用公式构造的Position Embedding了。
3、Position Embedding本身是一个绝对位置的信息,但在语言中,相对位置也很重要,Google选择前述的位置向量公式的一个重要原因是:由于我们有 $\sin(\alpha+\beta)=\sin\alpha\cos\beta+\cos\alpha\sin\beta$以及$\cos(\alpha+\beta)=\cos\alpha\cos\beta-\sin\alpha\sin\beta$,这表明位置$p+k$的向量可以表示成位置$p$的向量的线性变换,这提供了表达相对位置信息的可能性。
小结
- Transformer并没有在结构上突破传统的LSTM和CNN,只是采用了position encoding的方式取巧。
如何在结构上突破CNN和LSTM的缺陷,达到获取position(时序)信息、任意长度依赖、易并行的效果? - 其他方案
- 拼接: 起来作为一个新向量,也可以把位置向量定义为跟词向量一样大小,然后两者加起来。FaceBook的论文和Google论文中用的都是后者。直觉上相加会导致信息损失,似乎不可取
- multi-channel:
其他
layer norm
Result
##
可视化
经过测试,列了以下可视化结果。
TODO,+动态可视化
维度设计
在NLP的很多网络里,一般
- hidden_dim和embedding_dim 相等
-
每层的维度都是相同的维度,(只在FFN层进行了局部升维)。
这与传统的
参数量 & 计算量
code
- TensorFlow
- https://github.com/Kyubyong/transformer 简易版,bucket、lr、decay等都没有实现
- https://github.com/tensorflow/models/tree/master/official/transformer TF官方code,基本不更新
- https://github.com/tensorflow/tensor2tensor#translation 官方code,产品级,更新频繁
- 代码解析: https://blog.csdn.net/mijiaoxiaosan/article/details/74909076
- Pytorch
缺陷
ss
Attention层的好处是能够一步到位捕捉到全局的联系,因为它直接把序列两两比较(代价是计算量变为$\mathscr{O}(n^2)$),当然由于是纯矩阵运算,这个计算量相当也不是很严重);相比之下,RNN需要一步步递推才能捕捉到,而CNN则需要通过层叠来扩大感受野,这是Attention层的明显优势。
扩展阅读
【政治风云人物系列】褒贬不一 朱镕基
简介
因铁腕作风,于风雨飘摇中导演中国经济“软着陆”,一时间举世瞩目,人称“经济沙皇”。接着导演中国经济史上最著名的分锐制、国企改革、金融体制改革等等。大开大阖间毁誉参半,国家既得其利也受其弊。利弊得失是怎样的一笔账,这是争论不下的最大焦点。
“铁面总理”、“大炮总理”
个性鲜明
- 这是共和国历史上唯一一位没有获得连任的总理
- 他是形式上没有连任,1992年起作为第一副总理就代替大鸟全面负责经济工作了。
历史
朱先生在担任上海市长、市委书记时,给上海官场面貌及风气的震动是极大的。他从来不陪客人吃饭,极少参加各种庆典仪式活动,从不题字,说话绝少官腔,疾恶如仇,且批评疾言厉色。
1993年调任国务院担任主管经济的副总理后,首先的任务就是“灭火”,即煞住因伟人南巡讲话而在全国掀起的又一轮经济热,特别是开发区热和海南房地产热。这特别地表现了他的清醒与勇气,好在点燃这把火的邓小平先生给予了他坚决的支持。朱的做法也在某些方面是和当时的官场逆向而行的,特别是此时成型的官僚阶级已经从经济增长和改革开放中看到了以权谋私的最大机遇:既有政绩,又有租金。朱先生要在这时搞整顿是格外地费力的,不但要讲经济,而且要讲政治,与官僚集团作战。 【牛逼】
他亲自兼任央行行长,以从根儿上控制住银行的货币泛滥和贷款腐败。他力挽狂澜,将几个省的人行行长撤职。朱先生的壮举得罪了金融系统的传统势力,而且他的许多做法太超出官场规矩,给人不近人情之感。有一个故事,能说明这一点。某省人行行长也是被朱撤职的,某省政府随即任命此人为省政府主管金融工作的副秘书长。不久,国务院在天津召开金融工作会议,该副秘书长赴会。不料开幕式上,竟被朱先生点名起立并轰出会场,理由是“你连一个银行都管不好,怎么能管好一个省的金融工作”。
改革
朱镕基当年的工作,从三角债到技术升级,从转变政府工作职能到重大项目国产化,从银行金融管理效率到税制改革,方方面面对二十年后的中国经济各项红利的开发,无人能与之相比。
搞经济
1992年4月邓小平在视察首钢时讲到,朱镕基懂经济,不服气不行。
国企改革
在朱镕基的时代,他进行了令他自己引以为傲的国企改革。在没有建立任何最低生活保障的情况下让几千万工人下岗。东北的工人占了很大一部分。这些工人突然没有了任何生活来源,很多妇女找不到工作,要么从事性工作,要么死亡。面临这种情况的妇女是如此之多,于是中国有了很多性工作者,而且也只能如此廉价。
网评:
- 朱镕基:中国逼良为娼最多的人
金融体制改革
行政体制改革
朱一口将国务院系统从70部门压缩为28个部门,工作人员减少了近一半,近乎奇迹。
反腐
子弟
王岐山是朱鎔基培养的得意门生。(中共十九大后王岐山退出政治局常委)
右派经历
有分析认为,1955年反右的直接后果是引发了饿死3700余万人的大灾难。
有记者追问他一九五八年当右派的事。他闪烁其词地回答:“这一段经历对我的教育是很深刻的,但是也是很不愉快的。因此我也不想再提这件事了。”党内高层右派的态度类似朱镕基,不愿再揭疮疤。而中共官方也竭力掩饰这段内斗历史。
##
朱镕基严于律己,举世皆知。他不题词、不受礼、不吃请、不剪彩、不批条子。但我们发现,他也曾破例题词。
2002年朱镕基在两会期间答记者问时,面对全世界的新闻媒体说出这样的话语:我只希望在我卸任以后,全国人民能说一句,他是个清官,不是贪官,我就很满意了。如果他们再慷慨一点,说朱镕基还是办了一点实事,我就谢天谢地了。
1998年10月7日下午,朱镕基到中央电视台视察(焦点访谈),破例题写16个大字:“舆论监督,群众喉舌,政府镜鉴,改革尖兵。”
横向比较
纵向比较
VS 温家宝
朱鎔基近年对其继任人温家宝的经济政策颇有微辞,如认为温不懂经济,对控制楼价不力等等。
- 新浪网友就称之为“改革开放后最不懂经济的总管”
- “朱时代时大卖国企,可谓
国退民进
,而现时代则正好相反,缓过神来的国企,大肆扩张,国进民退
,与民争利”。 - 没有及时调整分税制弊端,使土地财政成为地方的主要财源
VS 李克强
网友评价
影帝看来粉丝还真多
论外交他任上搞什么消气之旅,拉二胡唱小曲,也没哄得洋大人开心,人还没回国给美国兜屁股踢了一脚, 大使馆被炸,建国以来最大的奇耻大辱
论反腐,金融口大案频发,张恩照等巨贪在他任上被提上去
论民生,农民真苦农业真危险在他任上爆发.血汗工厂在他任上最为猖獗
搞国企改革,搞跨了千万国企
论清廉,自个家儿子女儿都在其主管口成了富豪.
论作秀是一流的