【数据分析篇】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
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"annotator_labels":[
"neutral"
],
"captionID":"3416050480.jpg#4",
"gold_label":"neutral",
"pairID":"3416050480.jpg#4r1n",
"sentence1":"A person on a horse jumps over a broken down airplane.",
"sentence1_binary_parse":"( ( ( A person ) ( on ( a horse ) ) ) ( ( jumps ( over ( a ( broken ( down airplane ) ) ) ) ) . ) )",
"sentence1_parse":"(ROOT (S (NP (NP (DT A) (NN person)) (PP (IN on) (NP (DT a) (NN horse)))) (VP (VBZ jumps) (PP (IN over) (NP (DT a) (JJ broken) (JJ down) (NN airplane)))) (. .)))",
"sentence2":"A person is training his horse for a competition.",
"sentence2_binary_parse":"( ( A person ) ( ( is ( ( training ( his horse ) ) ( for ( a competition ) ) ) ) . ) )",
"sentence2_parse":"(ROOT (S (NP (DT A) (NN person)) (VP (VBZ is) (VP (VBG training) (NP (PRP$ his) (NN horse)) (PP (IN for) (NP (DT a) (NN competition))))) (. .)))"
}

疑问

雷军
为什么有好几个judgement?
雷军
最终标签是综合了5个专家的意见,根据少数服从多数的原则得到的。

还额外提供了句子的两种解析树表示。

自然语言推理(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
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
{
"documents": [
{
"bs_rank_pos": 1,
"is_selected": false,
"paragraphs": [
"VPN技术对机构和很多远程用户来说,是极端有用的,但在设定上,它可能有些复杂。下面的指南将手把手的教你如何建立VPN,它包含各个步骤详细的操作流程。 第一步:系统需求 VPN分为两种,一种是硬件解决方案,一种是软件解决方案,在这个手把手的指南中,我将介绍一种软件解决方案,即使用Microsoft产品建立VPN. 为了架设VPN,你将需要三个独立的Windows 2003服务器和至少一个远程用户,远程用户的机器上需要运行Windows XP操作系统。 你的VPN需要的第一台Windows 2003服务器是一台基本的基础设施服务器,它必须作为一台域控制器(domain controller),DHCP服务器(DHCP server),DNS服务器(DNS Server)和认证中心(certificate authority)。如果你的网络中已经有一台Windows 2003服务器,你就不需要去购买一台服务器担当此角色。 任何Windows 2003域都至少有一台域控制器和一台作为DNS的服务器,多数Windows 2003网络同时运行DHCP服务。如果你所有的这些服务已经到位,你所关心的唯一的事情就是设置一个认证中心(我将在第三步为你说明如何做这件事情)。下载,你只需知道作为认证中心的那台服务器必需运行Windows Server 2003 Enterprise Edition操作系统。 你需要的第二台服务器将是VPN服务器(VPN server),Windows Server 2003 Standard Edition和Enterprise Edition都提供了VPN服务器的必要软件,因此,你不需要在这台服务器上安装任何特别的软件。唯一特别的是硬件上,这台服务器需要双网卡,一块网卡连接Internet,另一块网卡则连接你的专用企业网络。 第二步:实施DHCP服务 1.打开服务器的控制面板,选择“添加或删除程序”。 2.当“添加或删除程序”对话框出现时,点击“添加/删除Windows组件”按钮。 3.在弹出的窗口中,选择“网络服务”,按下“详细信息”。 4.现在从网络服务列表中选择“动态主机配置协议(DHCP)”,然后单击“确定”,进行下一步操作。 Windows现在将安装DHCP服务,安装结束后,你将要创建一个地址范围,并且启动DHCP服务器,在你的网络上运行。 5.为了做到这些,请在控制面板――管理工具中选择动态主机配置协议(DHCP)配置,打开DHCP管理器。 6.在DHCP管理器中你的服务器上单击右键,选择启动(Authorize)。 7.启动DHCP服务器后,在DHCP管理器的服务器列表窗口中单击右键,选择“新建作用域(New Scope)”,这将启动新建作用域向导。 8.点击下一步略过向导的欢迎界面。 9.输入你正在创建的作用域的名称,并且点击下一步。(你可以输入任何你想到的名称,但在这个教程中,我将命名此作用域为“Corporate Network”。) 10.现在你将需要填入IP地址范围。在这里只需输入你已经使用的起始IP地址和结束IP地址,但注意不要与已经存在的IP地址冲突。长度和子网掩码部分则会自动输入,不需要你的干涉,当然,你也可以手动调节这两者的值。 11.接下来的三个画面包括一些你不必关心的设置,连续三次点击下一步,直到你进入“路由(默认网关)(Router (Default Gateway))”界面。 12.输入你网络网关的IP地址,点击添加,然后下一步。 13.输入你的域的名称和你的DHCP服务器的IP地址(IP address of your DHCP server),然后点击下一步。 14.单击下一步略过WINS配置窗口。 15.最后,根据提示选“是,我想激活作用域(Yes, I Want To Activate The Scope Now)”再点击“完成”即可结束最后设置。 第三步:创建一个企业认证中心 在我向你讲述如何创建一个企业认证中心之前,我将告诉你几个必需注意的事项。安装认证中心并不是一个轻松的过程,如果一个未经授权的用户进入了你的认证中心,他将几乎控制你的所有网络。同样,如果认证中心服务器当机,它可能对给你的网络带来毁灭性的破坏。 所以,一定要像保护原子弹一样保护你的认证中心,确保认证中心尽可能的安全,并频繁的做好全系统的备份,你还需要保护这些备份,以防止它们偶然地出现问题。下面是创建企业认证中心的具体过程。"
],
"title": "如何架设vpn服务器"
},
{
"bs_rank_pos": 2,
"is_selected": true,
"paragraphs": [
"步骤:1、点击开始,依次点击程序、管理工具、路由和远程访问,打开后右键你的主机名,选择\"配置和启用。2、选择\"自定义配置,下一步,选上\"VPN访问,下一步、完成、然后启动服务3、打开IP路由选择,在常规上面按右键选择\"新增路由协议,选择\"NAT/基本防火墙。4、在新显示的NAT/基本防火墙上面按右键,选择\"新增接口\",然后选择你的网络连接(一般是\"本地连接\")连接的属性里面选择\"公用接口连接到INTERNET\".选上\"在此接口启用NAT\".然后确定。5、设置用户部分在WINDOWS的用户和组里面新建用户,给新用户配置远程拨入的权限,(在用户的属性里面默认是按策略设置,改为\"允许访问\")、建立完成。",
"占坑关注",
"你说的PC Anywhere只是一个远程监控软件啊!我不知道你是想远程控制家里的机器还是想将公司的机器和家里的机器连成一个局域网的类型?VPN是个虚拟专网,可以用windows server 系统来直接完成不需要装别的软件!这个阿~我先写吧,太复杂了!不是一句两句能说清楚的!你看一下这个,很详细,而且图文并茂~http://blog.sina.com.cn/u/494f9a6b0100052l",
"<p>&nbsp;&nbsp;&nbsp; Windows 7下架设VPN服务器的5大步骤:</p><p>&nbsp;</p><p>&nbsp;&nbsp;&nbsp; 1、打开“网络和共享中心”,选择“更改适配器设置”</p><p><img src=\"28765673001\" /></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这里快速打开网络和共享中心</p><p><img src=\"28765660417\" /></p><p>&nbsp;&nbsp;&nbsp; 2、在“菜单栏”点击“文件”,然后选择“新建传入连接”</p><p><img src=\"28765674840\" /></p><p>&nbsp;&nbsp;&nbsp; 3、选择允许使用VPN连接到本机的帐户,可以从列表中勾选,也可以“添加用户”</p><p><img src=\"28765665635\" /></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 选择允许VPN连接到本机的账户</p><p><img src=\"28765699912\" /></p><p>&nbsp;&nbsp;&nbsp; 接下来选择其他用户连接VPN的方式,一般来说是选择“通过Internet”。当然,如果显示的连接方式是多项的话,那么请根据需要请选择正确的方式。</p><p>&nbsp;</p><p>&nbsp;&nbsp;&nbsp; 4、这一步就到了设置网络参数环节了,如果对方连接后可以使用本地网络的DHCP服务器,那么可以跳过此设置。如果本地网络没有DHCP服务器的话就要先进行一下设置了,具体步骤如下:</p><p><img src=\"28765716220\" /></p><p>&nbsp;&nbsp;&nbsp; 选中“Internet 协议版本 4(TCP/IP)”, 点击“属性”按钮,选择“指定IP地址”(这里是根据用户自身的IP地址而设定,设置一个没有被使用的IP段即可),设置后请按确定, 然后点击“允许访问”就大功告成了。</p><p>&nbsp;</p><p>&nbsp;&nbsp;&nbsp; 5、到这里VPN服务器已经架设完毕了,其他用户已经可以利用上面的帐号以及设置的IP地址通过VPN连接到网络了。</p><p>&nbsp;</p><p>&nbsp;&nbsp;&nbsp; 关于防火墙和内网用户的两点特别说明:</p><p>&nbsp;</p><p>&nbsp;&nbsp;&nbsp; 1、如果你有防火墙请允许1723和1701端口。</p><p>&nbsp;</p><p>&nbsp;&nbsp;&nbsp; 2、如果是内网用户请在路由器上做1723和1701端口的映射,一般做1723就行了。&nbsp;&nbsp;&nbsp;&nbsp;</p>"
],
"title": "vpn服务器如何建立"
},
{
"bs_rank_pos": 3,
"is_selected": false,
"paragraphs": [
"在Windows服务器上架设VPN可以如下操作:第一步,打开控制面板->管理工具->服务项目,禁用Windows防火墙服务。第二步,打开控制面板->管理工具,双击“路由和远程访问”。然后右键点击服务器图标,再点击“配置并启用路由和远程访问”。第三步,在“路由和远程服务器安装向导”中,选择“自定义配置”。第四步,勾选“VPN访问”和“NAT和基本防火墙”。第五步, 点击“完成”。系统提示“要开始服务吗?”,选择“是”。第六步,接下来开始配置路由和远程访问,我们先点击本地服务旁边的+按钮,把左侧菜单展开,再点击IP路由选择旁边的+按钮。第七步,下面配置静态IP地址。右键点击本地服务,点击属性,再点击IP选项卡。第八步,点选“静态地址池”,点击“添加”。输入一个起始IP地址和结束IP地址范围,推荐输入192.168.1.100到192.168.1.254这个范围,因为192.168段属于本地保留IP段。最后点击“确定”。第九步,右键点击“静态路由”,再点击“新建静态路由”。第十步,目标和网络掩码都输入0,网关请和TCP/IP属性中的默认网关保持一致。第十一步,删除“DHCP中继代理程序”中的“内部”项目。第十二步,然后右键点击“DHCP中继代理程序”,再点击“新增接口”。第十三步,选择“本地连接”,再点击“确定”,然后在弹出的对话框中点击“确定”。第十四步,右键点击“NAT/基本防火墙”,再点击“新增接口”,然后选择“本地连接”,点击“确定”。第十五步,在弹出的对话框中先点选“公共接口连接到Internet”,再勾选“在此接口上启用NAT”,最后点击“确定”。第十六步,至此在路由和远程访问中的配置就完成了。下面是添加VPN用户的步骤,到计算机管理中添加一个用户,作为VPN连接的用户,把这个用户放到Guest组下面,并在用户属性->拨入->远程访问权限中设置成“允许访问”。 然后就是在你自己电脑上新建VPN连接,进行拨号测试了。要确定是否连接成功,请访问IP查询网站,看是否显示的是国外服务器的IP即可。",
"详细设置方法你可以参考酷盛帮助中心里面的图文攻略。"
],
"title": "如何在自己电脑上搭建vpn服务器"
},
{
"bs_rank_pos": 4,
"is_selected": true,
"paragraphs": [
"1、看路由器里面带不带VPN功能,如果有可以直接在路由器里面设置VPN,当然你可以去买一个带有VPN功能的路由器;2、用windows server系统架构一个VPN!不过家里需要是静态IP地址!"
],
"title": "公司要建vpn服务器,该怎么搭建"
},
{
"bs_rank_pos": 5,
"is_selected": true,
"paragraphs": [
"XP本身就可以做VPN的 不过只能支持一个用户。",
"第一,申请ddns,比如3322.org、花生壳什么的,让其他人能够通过动态域名找到你,因为使用adsl等拨号软件时,每次拨号ip地址都会变动,总不能每次都人工通知人家你ip地址是什么吧;第二,路由器中配ddns账号、域名等信息,让路由器自动通知整个互联网,你申请的域名现在的ip地址是多少;第三,路由器中配端口转发,你vpn要使用哪个端口就设定进去,这样当别人访问路由器这个端口时,你在路由器中就可以指定转发到那台机器,例如80端口指定到192.168.1.2(你在上面放www网站),3389端口指定到192.168.1.10(例如做为管理机器)上,你就可以用远程桌面连接到这台机器,8080端口指定到192.168.1.5(例如放BBS论坛),你就通过你申请的域名http://sdf.3322.org:8080访问到BBS论坛了。你家里面路由器后面的VPN想开什么服务,把端口转发设定一下即可。",
"上面不是有XP的教程么,我就把Win7的教程给你写一份,你都可以试试。 1.右键点击桌面的“网络”->“属性”后出现 2.单击“设置新的连接或网络”出现 3.选种“连接到工作区”点下一步。 4.单击“使用我的Internet连接(VPN)”,马上就转跳到5.在“Internet 地址(I)”填上VPN提供的IP地址,再下一步6.这里是填VPN的用户名和密码,点“连接”7.到这里就完成的连接设置导向。点击“关闭”。8.回到桌面右键点击“网络”->“属性” 9.点击一下左边的“更改适配器设置”。10.找到我们刚才建好的“VPN 连接”双击打开。11.填上VPN提供的VPN用户名和密码,“域”可以不用填写。12.整个Windows7 VPN过程都设置完成了。现在点击“连接(C)”就可以上游戏、上网冲浪了、浏览网页了 还有不明白的可以联系幺五幺二五零八四试试,这个网站的教程比较全面",
"<p><img src=\"37250702446\" /></p>"
],
"title": "家用vpn服务器如何搭建"
}
],
"question": "如何搭建vpn服务器",
"answers": [
"1、打开“网络和共享中心”,选择“更改适配器设置”2、在“菜单栏”点击“文件”,然后选择“新建传入连接”3、选择允许使用VPN连接到本机的帐户,可以从列表中勾选,也可以“添加用户”4、这一步就到了设置网络参数环节了,如果对方连接后可以使用本地网络的DHCP服务器,那么可以跳过此设置。如果本地网络没有DHCP服务器的话就要先进行一下设置了。5、到这里VPN服务器已经架设完毕了,其他用户已经可以利用上面的帐号以及设置的IP地址通过VPN连接到网络了。",
"1、看路由器里面带不带VPN功能,如果可以就直接在路由器里面设置VPN,也可以买带VPN功能路由器;2、用windows server系统架构一个VPN。",
"家用:第一,申请ddns,比如3322.org、花生壳什么的,让其他人能够通过动态域名找到;第二,路由器中配ddns账号、域名等信息,让路由器自动通知整个互联网,申请的域名现在的ip地址是多少;第三,路由器中配端口转发,vpn要使用哪个端口就设定进去,这样当别人访问路由器这个端口时,在路由器中就可以指定转发到那台机器,最后路由器后面的VPN想开什么服务,把端口转发设定一下即可。"
],
"question_type": "DESCRIPTION",
"fact_or_opinion": "FACT",
"question_id": 91210
}

数据样例2

raw/trainset/search.train.json

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
{
"documents": [
{
"bs_rank_pos": 0,
"is_selected": true,
"paragraphs": [
"导读:绣眉有哪几种方法?小编带来绣眉的基本方法,喜欢绣眉的MM看看吧。",
"绣眉可以让MM的五官看起来更加的清秀有立体感,绣眉有哪几种方法?绣眉的基本方法分享给大家。",
"绣眉有哪几种方法?",
"绣眉的五种基本方法:",
"1、雕润眉 2、平面绣眉 3、点状绣眉 4、立体绣眉",
"5、仿真立体绣眉",
"绣眉的基本方法:",
"1、雕润眉 雕润眉是完美医学纹绣为载体,根据人的眉毛生长而雕刻出来的眉形,根据肤色来选料,这样的眉形看起来很靓丽好看,与传统的绣眉方法相比,雕润眉是如丝发般的精细雕刻眉毛,具有三维立体感,而且纹眉后不痛不肿,不脱色,不变色,不晕色,一般半个小时就能完成的绣眉。》》》99.99%人都关注的绣眉结痂问题 2、平面绣眉 平面绣眉是传统的绣眉方式,是通过过将复合自身形象的图案纹绘在眉毛上,经过改良而形成的平面绣眉,是标准眉型图案,颜色深浅平均,跟一般的眉形没太大区别。 3、点状绣眉 点状绣眉是独具设计性的绣眉,是一种改良的损伤最小的平面绣眉,需要用针点上药水刺其眉毛的毛囊口着色,稍微比较痛,看上去的眉毛比较粗,适合眉形好,眉毛少的女生。 4、立体绣眉 立体绣眉是利用排针,一排12只,运用不同的针法衔接在眉毛上,绣出二种深浅不一的咖啡色,这样的眉形看起来很自然立体,具有长短不齐、粗细不一的毛发线条特点,,让MM看起来更秀气漂亮。 5、仿真立体绣眉 仿真立体绣眉是比较流行的绣眉方式哦,是利用排针,一排12只,运用不同的针法进行绣眉,以咖啡色为基础,这样的眉形看起来很自然动态美。",
"绣眉的五种基本方法,选择适合自己的绣眉方法,打造出秀气漂亮的眉形哦。",
"(想知道自己适合什么发型吗?微信添加公众号爱靓网,发型师为您解答!)"
],
"title": "绣眉有哪几种方法?绣眉的基本方法_绣眉_妆美扮靓_爱靓网"
},
{
"bs_rank_pos": 1,
"is_selected": false,
"paragraphs": [
"2016-09-30 10:04",
"对于美的追求是很多人的天性,对于爱美的女生来说好看的眉型不但能提升气质,还能修饰脸型,绣眉也早已成为女生完善美化眉形的一种方式。绣眉有哪几种常见方法?一般绣眉得花多少钱?一起和小编了解一种吧。",
"绣眉有哪几种常见方法?一起来了解下:",
"A、平面绣眉:这是一款传统的绣眉方式,是以标准的眉型为图案,通过绣眉技术纹绘在眉毛上,色泽均匀上色,给人的感觉就好像刚刚画完眉毛一样。 B、点状绣眉:点状绣眉相对来说,会更有设计性。通过药水的渗透,将有色的染料对这眉毛的毛囊口进行点刺上色,还能按照眉毛的整体轮廓勾勒出眉型,不过眉毛过粗的美眉们则不适合点状绣眉喔! C、仿真立体绣眉:这种绣眉方式是利用排针和不同的针法衔接在眉毛上,出来的眉形效果是一把一把的形状,而且常用的色料是深浅不一的咖啡色来呈现,在着色上后的眉形效果就会像自己长出来的眉毛一样自然好看。 D、立体绣眉:立体绣眉也是利用排针来进行纹绣,采取了由浅至深的形式绣出眉形,而整体的效果会呈现出雾状,非常地有立体感。",
"绣眉一般要多少钱?",
"一般来说,绣眉的价钱在800到5000元之间,每家的医美诊所价格都是不同,会因规模以及技术相互关联。绣眉使用的材料也是决定价格的高低,一般分为有机色料及无机色料,以及绣眉的方式也是能决定价格的关键喔!由于绣上的眉型都是因人而异的,也会导致绣眉价格的差异。",
"想必经过了小编的介绍,大家都对绣眉有哪几种常见方法?以及其价格有了一定的了解!如果你也想眉形好看也不妨尝试一下绣眉,选择好的技术以及医美医院才能保证绣眉的完美效果喔!(图片来源:视觉中国)",
"(责任编辑:陆薇)",
"全世界都在安利的“举重妖精”李圣经,凭什么成为男神收割机? 同是新疆美女 为啥迪丽热巴观众缘最好? 从晴儿到楚乔 赵丽颖是怎么越来越美的? 滨崎步发福or水肿?3分钟快速消水肿 学刘诗诗掀起刘海 气场2米8一点也不难",
"梦幻的粉嫩无瑕肌 怎能不被吸引? 怀疑自己画了个假妆?那是用错了气垫 水润透亮 让肌肤呼吸一整天 伊夫黎雪植物焕颜抚纹系列 倒春寒 给肌肤加个完整的保湿屏障",
"周末好心情 慵懒 露天趴音乐节妆容",
"六月护肤爱用品 春季护肤五款高颜值萌物 开启焕肤撩春模式 实用百搭口罩妆容",
"包贝尔新剧曝光表情冷 姜至鹏出轨被曝私密图 咘咘公园跳钢管舞萌翻 白百何学龅牙兔神表情 黄晓明胖了一圈曝真相 周冬雨再出表情包搞笑"
],
"title": "绣眉有哪几种常见方法?绣眉一般要多少钱【图】_彩妆资讯百科_美容_"
},
{
"bs_rank_pos": 2,
"is_selected": false,
"paragraphs": [
"平面绣眉 平面绣眉是最为传统的绣眉方法。这种方法起源于古代,古时候人们将符合自身形象的图案描绘在眉毛和额头之间,最为有名的就是杨贵妃在眉毛和额头之间绘上了花朵。平面绣眉就是采用的这种方法。经过现代人的改良之后,平面绣眉出来的效果就像是刚刚画好的眉毛,还是比较逼真的。 点状绣眉 相对于平面绣眉来说,点状绣眉是比较疼的,不过这种方式更具有独特的设计性。点状绣眉适合眉毛细而且淡的人选择,它是采用针沾上药水有粗有细的对毛囊进行着色。采用这种方法能够绣出更加自然逼真的眉毛。 仿真立体绣眉 这种绣眉方法有点类似于点状绣眉,不过这种方法使用的是排针。目前比较常见的是使用一排十二根针。由于针的排布原因,使用这种方法绣出来的眉毛是一把一把的。而且美容院会采用深浅不同的颜色来表现眉毛的特点,因此,绣",
"有平面绣眉,点状绣眉,仿真立体绣眉,立体绣眉"
],
"title": "绣眉有哪几种_百度知道"
},
{
"bs_rank_pos": 3,
"is_selected": false,
"paragraphs": [
"有平面绣眉,点状绣眉,仿真立体绣眉,立体绣眉"
],
"title": "绣眉有几种,哪种比较好看?_百度知道"
},
{
"bs_rank_pos": 4,
"is_selected": false,
"paragraphs": [
"有线条眉,就是跟真的眉毛很像,一根一根的;还有那种雾状眉,像化妆了一样;还有一种就是线条加雾的感觉。",
"1、平面绣眉:传统的绣眉方式。在古代,绣眉技术是通过将复合自身形象的图案纹绘在眉额之间。后经过现代美容师的改良而形成如今的平面绣眉。以标准的眉型为图案,色泽均匀,宛如刚刚画完眉。 2、点状绣眉:此种方法相对于平面绣眉更加具有设计性,但是人体疼痛感要稍微强烈一点。在针点上通过药水的浸透,再对眉毛的毛囊口进行点刺并着色。可以按照眉毛的粗细变化,从而勾勒出漂亮的眉型。但是对于眉毛相对比较粗、浓者来说,是不适合进行点状绣眉的。 3、仿真立体绣眉:这种绣眉的方法利用排针,一排12只,运用不同的针法衔接在眉毛上,所绣出来的眉型现出一把一把的,而且须用二种深浅不一的咖啡色来表现色差,就像自己长的眉毛一样立体自然。 4、立体绣眉:这种绣眉的方法利用排针单一颜色由浅至深,绣出雾状,表现出立体"
],
"title": "绣眉分哪几种_百度知道"
}
],
"question": "绣眉有哪几种",
"answers": [
"绣眉的五种基本方法:1、雕润眉;2、平面绣眉;3、点状绣眉;4、立体绣眉;5、仿真立体绣眉。"
],
"entity_answers": [
[
"雕润眉",
"平面绣眉",
"点状绣眉",
"立体绣眉",
"仿真立体绣眉"
]
],
"question_type": "ENTITY",
"fact_or_opinion": "FACT",
"question_id": 0
}

推荐系统架构

架构

模型训练层

服务层

推荐系统需要由多个推荐引擎组成,每个推荐引擎负责一类特征和一种任务,而推荐系统的任务只是将推荐引擎的结果按照一定权重或者优先级合并、排序然后返回。

召回:初始推荐结果

推荐引擎的构建来源于不同的数据源(也就是用户的特征有很多种类,例如统计的、行为的、主题的)+不同的推荐模型算法,推荐引擎的架构可以试多样化的(实时推荐的+离线推荐的),然后融合推荐结果(人工规则+模型结果),融合方式多样的,有线性加权的或者切换式的等

多个引擎一般也称为多路召回:

  • 新鲜度召回
  • 热度召回
  • 质量分召回
  • 个性化
    • 基于用户CF召回
    • 基于itemCF召回

随机提取,每路召回1000个item。10路就10000 item。

优点:

  • 支持多种模型,以及自定义模型
    -
  • 可以方便地增加/删除引擎,控制不同引擎对推荐结果的影响。对于绝大多数需求,只需要通过不同的引擎组合实现。
  • 可以实现推荐引擎级别的用户反馈

粗排

精排

通常采用LR模型,或者LR的变种。

最上层线上推荐服务、中层各个推荐数据召回集(数据主题、分类池子)、底层各种推荐模型。

推荐系统有哪些坑? | 知乎

  • 将“推荐”理解为“推送

  • 高估算法作用

    • 推荐系统中,按照影响效果:用户交互界面(UI) > 数据 > 算法。

技术点、难点、瓶颈

  • online/offline
  • streaming 推荐,比如滑来滑去小视频

参考

hexo中如何支持公式 mathjax

UPDATE: 2018-08-08: github markdown已经支持公式,

简介

MathJaxKatex

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

同样很简单,仅需两步。

  1. 加载mathjax的cdn
  2. 博客中按照tex语法写公式即可

示例

markdown中书写:

1
$$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$

会被自动渲染成以下公式:

$$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$

1
2
3
4
# 其他方式:
\[x = {-b \pm \sqrt{b^2-4ac} \over 2a}.\]
# 如果存在转义问题,可以采用以下方式
\\[x = {-b \pm \sqrt{b^2-4ac} \over 2a}.\\]

hexo中支持公式的markdown插件

markdown渲染引擎

  • marked 轻量级 demo
    • jupyter、google-colab、hexo默认采用的marked.js作为渲染引擎
    • hexo模块: hexo-renderer-marked
  • pandoc 重量级 demo
    • pandoc -f markdown+tex_math_single_backslash –mathjax test.md -o test.html
    • 以上参数的命令可以解决问题
    • hexo模块: hexo-renderer-pandoc
  • kramdowndemo
    • cs231n 等采用的kramdown
    • hexo模块: hexo-renderer-kramed

存在的问题

公式的转义问题

有时会遇到公式渲染失败,有时也会遇到很多不同的公式写法,比如:

公式渲染失败,一般是由于不同的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
  1. 多加个反斜线,比如\[要写成\\[ 麻烦
  2. 修改marked源码,取消了对\\,\{,\}的转义(escape) 麻烦
  3. 采用其他markdown引擎,比如kramdown (比如cs231n就采用的kramdown) 发现也不work
  4. 把所有\[替换成$$ 我目前是这样做的

建议:

不要采用 \[\(的格式书写公式,尽量用$$$

  1. 很多引擎不支持\[\( (比如github)
  2. \[中的反斜线经常会被解释成转义符号,造成符号丢失

疑问

雷军
`theme-next`为什么要限定markdown引擎?不应该和markdown引擎无关吗?
雷军
...

参考

RNN研究现状以及发展趋势,LSTM的变种 (variants of LSTM)

训练算法,如Back Propagation Through Time(BPTT)、Real-time Recurrent Learning(RTRL)、Extended Kalman Filter(EKF)等学习算法,以及梯度消失问题(vanishing gradient problem)

  1. 详细介绍Long Short-Term Memory(LSTM,长短时记忆网络);
  2. 详细介绍Clockwork RNNs(CW-RNNs,时钟频率驱动循环神经网络);
  3. 基于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。

  1. ss
    • global attention
    • local attention
  2. 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

Hierarchical Attention Network

采用了word-level和sentent-level的attention。

  1. a word sequence encoder
  2. a word-level attention layer
  3. a sentence encoder
  4. a sentence-level attention layer

可视化分析

Hierarchical Attention Network

##

##

参考

【机器翻译】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)。

transformer

核心点 创新点 亮点 trick



对attention的抽象

对attention的抽象 q k v

Scaled Dot Product Attention

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

  1. attention 可以不只是用于 decoder 里每步输入一个符号,而是可以用在网络中的任意一层,把一个序列转换成另一个序列。这个作用与 convolutional layer、recurrent layer 等是类似的,但有一个好处就是不再局限于局域性。attention是直接去capture dependency structure,摆脱了局限性魔咒
  2. 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的计算

Multi-Head Attention

将输入向量切成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.

思考

  1. self attention遗漏了什么?位置信息
  2. self attention中的k, q, v分别指代什么?
  3. 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_denseconv_relu_conv,默认采用的前者。

其中卷积的维度是

1
2
3
input.shape = [batch_size, length, 512]
kernel_1 = [2048,1]
kernel_2 = [512, 1]

tensor2tensor实现中,conv1d中的kernel_size如果为1,默认返回dense。源码

1
2
3
4
def tpu_conv1d(inputs, filters, kernel_size, padding="SAME", name="tpu_conv1d"):
if kernel_size == 1:
return dense(inputs, filters, name=name, use_bias=True)
...

逗比,conv到底比dense会不会加速?

为什么我觉得kernel_size=512才等价于全连接?

实际上,kernel_size没必要一定是1的。

层数与维度设计 - 很精妙

很自然,我们有两个疑问。

  1. 为什么要两层?
  2. 为什么要先升维再降维?

ResNet等网络通常采用bottleNeck架构,先降维再升维(减小计算量)。这里是什么思想

小结

  1. 为什么要设置全连接层?全连接层一般占用参数比较多,比如常用的CNN架构里很少在中间层放全连接。 这里在中间层大量使用FFN的思想是什么呢? 仅仅是为了故意避开CNN?
    • 答:FFN的设计初衷是: 1. 增加非线性变换; 2. 维度变换。同时尽量减少参数量、计算量。
    • 如果不采用FFN呢?有什么更好的设计?
      • conv层: 单个position的conv无意义。可以考虑跨position的conv!!!
      • pooling层
    • 全连接参数多,在多数CNN架构里只在最后一层加FC层。
  2. 为什么叫强调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

code

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$的向量的线性变换,这提供了表达相对位置信息的可能性。

小结

  1. Transformer并没有在结构上突破传统的LSTM和CNN,只是采用了position encoding的方式取巧。
    如何在结构上突破CNN和LSTM的缺陷,达到获取position(时序)信息、任意长度依赖、易并行的效果?
  2. 其他方案
    • 拼接: 起来作为一个新向量,也可以把位置向量定义为跟词向量一样大小,然后两者加起来。FaceBook的论文和Google论文中用的都是后者。直觉上相加会导致信息损失,似乎不可取
    • multi-channel:

其他

layer norm

Result

##

可视化

经过测试,列了以下可视化结果。

TODO,+动态可视化

维度设计

在NLP的很多网络里,一般

  • hidden_dim和embedding_dim 相等
    -

每层的维度都是相同的维度,(只在FFN层进行了局部升维)。

这与传统的

参数量 & 计算量

code

缺陷

ss

Attention层的好处是能够一步到位捕捉到全局的联系,因为它直接把序列两两比较(代价是计算量变为$\mathscr{O}(n^2)$),当然由于是纯矩阵运算,这个计算量相当也不是很严重);相比之下,RNN需要一步步递推才能捕捉到,而CNN则需要通过层叠来扩大感受野,这是Attention层的明显优势。

扩展阅读

【政治风云人物系列】褒贬不一 朱镕基

简介

因铁腕作风,于风雨飘摇中导演中国经济“软着陆”,一时间举世瞩目,人称“经济沙皇”。接着导演中国经济史上最著名的分锐制、国企改革、金融体制改革等等。大开大阖间毁誉参半,国家既得其利也受其弊。利弊得失是怎样的一笔账,这是争论不下的最大焦点。

“铁面总理”、“大炮总理”

个性鲜明

  • 这是共和国历史上唯一一位没有获得连任的总理
  • 他是形式上没有连任,1992年起作为第一副总理就代替大鸟全面负责经济工作了。

历史

朱先生在担任上海市长、市委书记时,给上海官场面貌及风气的震动是极大的。他从来不陪客人吃饭,极少参加各种庆典仪式活动,从不题字,说话绝少官腔,疾恶如仇,且批评疾言厉色。

1993年调任国务院担任主管经济的副总理后,首先的任务就是“灭火”,即煞住因伟人南巡讲话而在全国掀起的又一轮经济热,特别是开发区热和海南房地产热。这特别地表现了他的清醒与勇气,好在点燃这把火的邓小平先生给予了他坚决的支持。朱的做法也在某些方面是和当时的官场逆向而行的,特别是此时成型的官僚阶级已经从经济增长和改革开放中看到了以权谋私的最大机遇:既有政绩,又有租金。朱先生要在这时搞整顿是格外地费力的,不但要讲经济,而且要讲政治,与官僚集团作战。 【牛逼】

他亲自兼任央行行长,以从根儿上控制住银行的货币泛滥和贷款腐败。他力挽狂澜,将几个省的人行行长撤职。朱先生的壮举得罪了金融系统的传统势力,而且他的许多做法太超出官场规矩,给人不近人情之感。有一个故事,能说明这一点。某省人行行长也是被朱撤职的,某省政府随即任命此人为省政府主管金融工作的副秘书长。不久,国务院在天津召开金融工作会议,该副秘书长赴会。不料开幕式上,竟被朱先生点名起立并轰出会场,理由是“你连一个银行都管不好,怎么能管好一个省的金融工作”。

改革

朱镕基当年的工作,从三角债到技术升级,从转变政府工作职能到重大项目国产化,从银行金融管理效率到税制改革,方方面面对二十年后的中国经济各项红利的开发,无人能与之相比。

搞经济

1992年4月邓小平在视察首钢时讲到,朱镕基懂经济,不服气不行。

国企改革

在朱镕基的时代,他进行了令他自己引以为傲的国企改革。在没有建立任何最低生活保障的情况下让几千万工人下岗。东北的工人占了很大一部分。这些工人突然没有了任何生活来源,很多妇女找不到工作,要么从事性工作,要么死亡。面临这种情况的妇女是如此之多,于是中国有了很多性工作者,而且也只能如此廉价。

网评:

  • 朱镕基:中国逼良为娼最多的人

金融体制改革

行政体制改革

朱一口将国务院系统从70部门压缩为28个部门,工作人员减少了近一半,近乎奇迹。

反腐

子弟

王岐山是朱鎔基培养的得意门生。(中共十九大后王岐山退出政治局常委)

右派经历

有分析认为,1955年反右的直接后果是引发了饿死3700余万人的大灾难。

有记者追问他一九五八年当右派的事。他闪烁其词地回答:“这一段经历对我的教育是很深刻的,但是也是很不愉快的。因此我也不想再提这件事了。”党内高层右派的态度类似朱镕基,不愿再揭疮疤。而中共官方也竭力掩饰这段内斗历史。

##

朱镕基严于律己,举世皆知。他不题词、不受礼、不吃请、不剪彩、不批条子。但我们发现,他也曾破例题词。

2002年朱镕基在两会期间答记者问时,面对全世界的新闻媒体说出这样的话语:我只希望在我卸任以后,全国人民能说一句,他是个清官,不是贪官,我就很满意了。如果他们再慷慨一点,说朱镕基还是办了一点实事,我就谢天谢地了。

1998年10月7日下午,朱镕基到中央电视台视察(焦点访谈),破例题写16个大字:“舆论监督,群众喉舌,政府镜鉴,改革尖兵。”

横向比较

纵向比较

VS 温家宝

朱鎔基近年对其继任人温家宝的经济政策颇有微辞,如认为温不懂经济,对控制楼价不力等等。

  • 新浪网友就称之为“改革开放后最不懂经济的总管”
  • “朱时代时大卖国企,可谓国退民进,而现时代则正好相反,缓过神来的国企,大肆扩张,国进民退,与民争利”。
  • 没有及时调整分税制弊端,使土地财政成为地方的主要财源

VS 李克强

网友评价

影帝看来粉丝还真多
  论外交他任上搞什么消气之旅,拉二胡唱小曲,也没哄得洋大人开心,人还没回国给美国兜屁股踢了一脚, 大使馆被炸,建国以来最大的奇耻大辱
  论反腐,金融口大案频发,张恩照等巨贪在他任上被提上去
  论民生,农民真苦农业真危险在他任上爆发.血汗工厂在他任上最为猖獗
  搞国企改革,搞跨了千万国企
  论清廉,自个家儿子女儿都在其主管口成了富豪.
  论作秀是一流的

参考