Statistical Parsing Note (SLP Ch14)

One crucial use of probabilistic parsing is to solve the problem of disambiguation. CYK only represent them.

Probabilistic context-free grammar (PCFG) is the most commonly used probabilistic grammar formalism. Ways that improve PCFGs trained on Treebank grammars:

  • change the names of the non-terminals (sometimes more specific and sometimes more general)
  • adding more sophisticated conditioning factors, extending PCFGs to handle probabilistic subcategorization information and probabilistic lexical dependencies

Heavily lexicalized grammar formalisms:

  • Lexical-Functional Grammar (LFG) Bresnan, 1982
  • Head-Driven Phrase Structure Grammar (HPSG) Pollard and Sag, 1994
  • Tree-Adjoining Grammar (TAG) Joshi, 1985
  • Combinatory Categorial Grammar (CCG)

More

随笔:命运

最近新上映了《狮子王》,据说没有使用任何实景拍摄,纯电脑特效制作,这不免让人心里好奇:这到底能做成啥样子?就冲着这点买了票慢悠悠晃进了电影院。这部电影很久以前就看过了,久到已经记不起究竟有多久了,只依稀记得辛巴最后成功打败反派当上了国王,并和自己心爱的人快乐地生活着,就像格林童话的大结局一样。我本以为这次也是一样,却没想到竟引发了自己的一些思考。

辛巴的父亲在他很小的时候就告诉他,生命是一个循环,你有自己的责任;彭彭他们却告诉辛巴,生命是一条直线,只有一次,快乐至上。后者像个乌托邦,它看起来非常美好,前者就像这现实世界,遍地阴霾。辛巴最后还是回去了,回到了他自己的循环,也许他内心深处并不喜欢,但他必须这么做。刀疤一心向往权力,处心积虑,最后依然落入到他自己的循环,他的心底又作何感想?

电影是虚构的,但我们每个人的人生却是实实在在的。那么,我们又当如何,是否也处于自己的某种循环,终其生而不得解脱?我记得以前在知乎上看过一个问题:“为什么随着人的年纪增长会越来越相信命运?”当时觉得最好的一个回答是 “命由天定,运由自转”。有些人一出生就含着金钥匙,有些人却温饱问题不得解决,还有些人可能有各种生理缺陷;但随着时间的推移,也总有一些人在金钥匙下沉沦,而还有一些人在困境中逆袭,他们的结果是由自己的选择造就的。这个答案一直和我认为的保持一致,不过今天似乎有些动摇,前半句我依旧认同,但后半句我开始怀疑。因为我突然意识到,难道你努力了就一定能心想事成?爱迪生说 “天才是 99% 的汗水和 1% 的灵感,那 1% 的灵感至关重要” 也许说的是这个意思呢。听起来好像很沮丧,因为逆袭的好像就只有那 1% 的可能,芸芸众生谁能保证自己就一定是那 1% 呢?我又想起某位大亨曾说,他永远不会做出 100% 的保证,他要为那冥冥之中的不确定分配 1%。看来,我们好像终究跳不出命运的圈子,终究只是其中的一个部分,随着时间的流逝而烟消云散。有人可能觉得我太悲观,其实恰恰相反,我自己是乐观大于悲观的,这些感慨只是在描述一个客观事实。我无法接受自己明明认识到事实而选择对它视而不见。

其实,在想到这个问题的时候,我就开始思考该如何去面对这个现实。默认命运的安排显然不是我们想要的答案,它不但略显消极,而且马上就涉及到了另一个问题:默认之后该干什么?我首先想到的是:“听从内心的声音”,这是我从很多地方听到过的类似的回答,当我们对外界的纷纷扰扰迷茫的时候,要倾听自己心底究竟想要什么。我不否认这个答案的可取之处,但总觉得用这么轻飘飘一句话去解决我们所面临的问题有点过于轻率,以及有些逃避的感觉。我想自己可能忽略了一个大问题:“现实”,“内心的声音” 可能往往与现实相左,两者似乎经常有不可调和的矛盾。这可能来自这样一个事实:“我们总是倾向于渴求自己所没有的东西”,长得丑的想要变美,没钱的想要富有,愚笨的想要聪明……在现实面前,所谓 “内心的声音” 可能只是冬日里一杯苦涩的冷饮。进入而立之年,“无奈” 这个词经常会见到和听到,它意味着挣扎、妥协、屈从、酸楚,以及一点点的悲凉和痛苦。就像摁在地上被人强奸一样,只不过这人是 “生活”,是 “人生”,是那让人颇为无力面对的 “现实”。我思来想去,觉得可能只有唯一的一条出路:“面对现实,接受现实,改变自己”。现实是无论你怎么样它都在那里,所以我们不得不面对它、接受它,离开这一点的任何行为和想法都只能是空中楼阁。佛说,要接纳自己,也就是无论 “我” 是好的还是坏的,都是真实的 “我”,意思也是我们首先要做的就是接受这个 “真的我”。然后就是去改变自己,通过改变自己去改变自己的 “生活”,进而影响到别人。听起来结果好像和 “命由天定,运由自转” 没啥区别,但这里明显不同的是过程,从之前的被动变为现在的主动:“命由自转,运由天定”,在现实面前主动地调整自己,改变自己的命运,至于那缥缈不定的 “运” 则交给上天。此时,即便不是那 1% 我们依然可以人生无悔,我想起《古剑奇谭》中百里屠苏(也就是太子长琴)在生命尽头所说的一句话:“虽有遗憾,并无后悔”,也许这就是最好的人生了。退一步来说,这样的选择也许不会让你得偿所愿,但不这样做却根本没有可能。经济学中有个词叫 “帕累托最优”,就是说 “在有限资源的分配中,在没有使任何人情况变坏的前提下,使得至少一个人变得更好”,而这被证明是不可能的。命运或人生可能也是这样,我们有限的精力和时间只能用在一小块地方,无论如何总也不能处处满意。佛说,知足常乐,大意也是如此吧。而且,我甚至怀疑根本没有所谓的 “最优选择” 或者 “最优人生”,也许所谓的 “全局最优解” 只是我们自己的一厢情愿罢了。我们能做的可能只是在 “贪心” 和 “全局” 之间选择一个自己力所能及、适合自己的解吧。这也是我所能想到的最好的答案。

辛巴依然可以当自己的国王,即便他心里始终念念不忘乌托邦,他没办法放弃自己的王国而永远生活在那个理想世界,但他可以在现实世界实施仁政,他可以将心中的美好带给更多的人。可以肯定和他心中的那个不一样,但此时又有什么关系呢?至少他的选择改变了自己的命运,也影响了无数人的命运,且朝着最优的方向。

去做命运的掌舵人吧,即便你的生活充满艰难,至于结果,交给命运自己吧。

XLNet 论文笔记

zihangdai/xlnet: XLNet: Generalized Autoregressive Pretraining for Language Understanding

XLNet 的核心思想:PermutationLM 使用双向上下文 + Transformer-XL 对架构进行改进。

Abstract

BERT 忽略了屏蔽位置之间的依赖关系,会有预训练和 Fine-tuning 效果的差异。

XLNet:

  • 通过最大化因式分解顺序所有可能排列的对数似然,学习双向语境信息。
  • 依靠自回归克服了 BERT 的缺点。

此外,XLNet 还将最先进的自回归模型 Transformer-XL 的思想整合到预训练中。

More

数据结构与算法:线性结构

上一章提到了数据结构的重要性,这章开始我们就逐步深入理解一下数据结构相关的内容。最常用也是最常见的数据结构都是线性结构,线性结构简单来说就是一条序列,中间有若干元素,“线性” 也是和后面要说的树、图相比而言的。

需要注意的是,数据在计算机中有两种物理存储方式,分别是链式存储和顺序存储,顺序存储是利用计算机中连续一块内存进行存储,链式存储利用指针指向不同的地址进行存储;而上面列出的这些数据结构都是逻辑结构,存储方式不同数据结构的实现方法和复杂度也不同,但效果是可以完全相同的。

存储方式和结构之间没有关系,任何一种结构都可以使用顺序或链式存储实现,要看具体的场景和目的。

More

《Elasticsearch 权威指南》之基础入门 Note(基于 7.x)

目录

为了搜索

Elasticsearch 建立在 Lucene 上,它不仅仅是一个全文搜索引擎:

  • 一个分布式的实时文档存储,每个字段 可以被索引与搜索
  • 一个分布式实时分析搜索引擎
  • 能胜任上百个服务节点的扩展,并支持 PB 级别的结构化或者非结构化数据

Install Elasticsearch with Docker | Elasticsearch Reference [7.2] | Elastic

  • docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.2.0
  • curl http://127.0.0.1:9200/_cat/health

  • curl 'http://localhost:9200/?pretty'

Running Kibana on Docker | Kibana User Guide [7.2] | Elastic

  • docker run --link YOUR_ELASTICSEARCH_CONTAINER_NAME_OR_ID:elasticsearch -p 5601:5601 {docker-repo}:{version}

  • http://localhost:5601

存储数据到 Elasticsearch 的行为叫做 索引,但在索引一个文档之前,需要确定将文档存储在哪里。

一个 Elasticsearch 集群可以 包含多个 索引 ,相应的每个索引可以包含多个 类型 。 这些不同的类型存储着多个 文档 ,每个文档又有 多个 属性

More

Syntactic Parsing Note (SLP Ch13)

This chapter focuses on the structures assigned by context-free grammars. Context-free grammars don’t specify how the parse tree for a given sentence should be computed. We therefore need to specify algorithms that employ these grammars to efficiently produce correct trees. They are useful in applications such as grammar checking, semantic analysis, question answering and information extraction.

More

信息熵与选择:由三门问题想到的

今天看公众号文章正好看到一篇《三门问题》,虽然看似简单,但细想感觉很有意思,特意把自己的思考记录一下。三门问题出自上世纪 70 年代美国的一个综艺节目,基本描述是这样的:你是游戏的参与者,面前有三扇门,其中一扇门后面是一辆跑车,其他两扇后面什么都没有。在你选择一扇门后先不打开,主持人打开了另一扇门(后面必然是空的),此时你有两个选择,坚持选择刚才选的那扇,或者换另外一扇还没打开的。怎么选择才能让你得到跑车的概率最大?

More

Sequence Processing with Recurrent Networks Note (SLP Ch09)

Problematic of the sliding window in general NN:

  • Like Markov it limits the context from which information can be extracted (limits to window area)
  • Window makes it difficult to learn systematic patterns arising from phenomena like constituency

RNN is a class of networks designed to address these problems by processing sequences explicitly as sequences, allowing us to handle variable length inputs without the use of arbitrary fixed-sized windows.

More