CS224N(1.22)Dependency Parsing

Dependency Parsing是指对句子进行语法分析并画出句子成分的依赖关系,比如对于句子“She saw the video lecture”,首先可以分析出主语、谓语、宾语等句子成分;其次可以分析出依赖关系,比如saw依赖于She等。这就是句法分析。完成句法分析的算法被称为句法分析器parser,一个parser的性能可以用UAS和LAS,UAS就是parse出来的依赖关系对比正确依赖关系的正确率,LAS就是句子成分分析的正确率。

Continue reading

CS224N(1.15 & 1.17)Backpropagation

这篇博客把1.15和1.17两次课内容合并到一起,因为两次课的内容都是BP及公式推导,和之前的Neural Networks and Deep Learning(二)BP网络内容基本相同,这里不再赘述。下面主要列一些需要注意的知识点。

使用神经网络进行表示学习,不用输入的x直接预测输出,而是加一个中间层(图中橙色神经元),让中间层对输入层做一定的变换,然后中间层负责预测输出是什么。那么中间层能学到输入层的特征,相当于表示学习,自动学习特征。对于word2vec,中间层就是词向量。

Continue reading

《三国演义》人物命运走向

董卓

东汉末年,十常侍专权,外戚何进为了除掉十常侍,引西凉军董卓入宫。董卓入宫后,为彰显威严,招安吕布,废刘辩立刘协,杀害刘辩和何太后。由于董卓在朝廷专横跋扈,士大夫群情激奋,组成了一个十八路诸侯联盟,盟主是袁绍,准备讨伐董卓。董卓带着吕布出战,最后失败。

失败之后,董卓焚烧洛阳的宫殿,迁都长安。后司徒王允用自己府上的歌伎貂蝉,巧使连环计,先说把貂蝉许配给吕布,后又送给董卓,由此挑拨离间董卓和吕布的关系。后来,董卓发现吕布和貂蝉在凤仪亭搂搂抱抱,董卓大闹凤仪亭,自此董卓和吕布结怨。貂蝉于是劝董卓搬家,于是他们搬家到郿坞。后来有一天,王允和吕布假借汉献帝召集文武百官进宫吃饭,董卓欣然进宫,被早就埋伏在此的王允、吕布等人杀害。

董卓死后,董卓手下四员大将李傕、郭汜、张济、樊稠在西凉起兵,进攻长安,烧杀抢掠,把王允也杀了,国家大权落到了李傕和郭汜手中。后太尉杨彪使用反间计,离间李傕和郭汜。于是,李傕和郭汜之间爆发战斗,李傕劫了天子,郭汜劫了文武百官,每日厮杀。后来张济讲和,李傕卖个人情,开始移驾弘农。在路上遇到杨奉董承双救驾,劫驾成功。败走的李傕后来又和郭汜合兵一处,开始反击。后杨彪引曹操入宫护驾,曹操大喜,进宫后干翻了李傕和郭汜。自此董卓基团覆灭。

Continue reading

《三国演义》每回内容梗概(91~120)

第九十回 驱巨兽六破蛮兵 烧藤甲七擒孟获

孟获第五次失败后,去拉外援了。第六次叫来了另一个洞主木鹿大王,能呼风唤雨,能指挥虎狼豺豹。被诸葛亮用木制巨兽打败。第七次请来了乌戈国帮忙,乌戈国人都穿藤甲能防毒水,于是诸葛亮设计火攻,大败乌戈国人。

就这样总计七擒七纵,最后孟获心服口服,归顺诸葛亮。

Continue reading

《三国演义》每回内容梗概(61~90)

第六十一回 赵云截江夺阿斗 孙权遗书退老瞒

却说孙权想乘刘备入川的时候,武力讨回荆州,于是想了个法子,派人去荆州找孙权的妹妹(刘备的老婆,孙夫人),说老母亲病危,让她带着阿斗快点回东吴。孙夫人信以为真,火急火燎带着阿斗走了,也没告诉任何人。走的途中,被赵云和张飞追上,夺回了阿斗,孙夫人一个人回了东吴。

此时,北方的曹操又南下攻打东吴,孙权只能暂时不管荆州,转而抵御曹操。曹操和孙权互相打了几个月,互有胜负,后来春雨连绵,困苦异常,曹操想撤军,又碍于面子。正好孙权写了一封信给曹操,劝曹操快点撤退吧,给了曹操一个台阶下,于是曹操就撤军了。

Continue reading

《三国演义》每回内容梗概(31~60)

第三十一回 曹操仓亭破本初 玄德荆州依刘表

袁绍手下主要有三股势力:长子袁谭守青州;次子袁熙守幽州;三子袁尚,后妻刘氏所生,绍最爱之,留身边,守冀州;外甥高干守并州。听说袁绍官渡之战败了,都来支援。于是袁绍聚集四州兵马,屯兵仓亭,准备再和曹操干一仗。结果,曹操谋士程昱献十面埋伏之计,大败袁绍,于是袁绍回老巢,转为防守。

却说刘备势力趁曹操忙于官渡、仓亭之战,偷袭许昌。曹操打败了袁绍之后,赶紧南下收拾刘备。刘备大败,谋士孙乾建议投靠荆州刘表。刘表谋士蔡瑁进谏:不可。刘备先从吕布,后事曹操,近投袁绍,皆不克终,足可见其为人。今若纳之,曹操必加兵于我,枉动干戈。不如斩孙乾之首,以献曹操,操必重待主公也。不过孙乾凭口才和智勇,打动刘表,刘表同意接受刘备。

Continue reading

CS224N(1.10)Word Vectors 2 and Word Senses

这一讲是上一讲的补充,内容比较零碎,包括:Word2vec回顾、优化、基于统计的词向量、GloVe、词向量评价、词义等,前两个内容没必要再介绍了,下面逐一介绍后四个内容。

基于统计的词向量

词向量的目的就是希望通过低维稠密向量来表示词的含义,而词的分布式语义表示方法认为词的含义由其上下文语境决定。Word2vec把中心词和临近词抽取出来,通过预测的方式训练得到词向量。在Word2vec之前,传统的方式通过统计词的共现性来得到词向量,即一个词的词向量表示为其临近词出现的频率,如果两个词的含义很相近,则其临近词分布会比较像,得到的词向量也比较像。其具体计算过程在第一次作业中有详细的描述,这里再简单回顾如下。

假设一个语料库中包含三个句子,共有8个特异词(包括点号),对于每个词,统计其前后一个词的词频(临近窗口为1),由此能得到一个8×8的对称矩阵,其每一行(或每一列)表示该词的词向量。比如对于like这个词,在三个句子中,其左右共出现2次I,1次deep和1次NLP,所以like对应的词向量中,I、deep和NLP维的值分别为2,1,1。

Continue reading

CS224N(1.8)Introduction and Word Vectors

今天开始介绍大名鼎鼎的NLP网课Stanford-CS224N。第一讲内容为课程简介和词向量。

词向量即用来表示这个词的含义的向量。早期的NLP常用one-hot编码来表示词向量,假如词典中共有10000个词,则这个one-hot向量长度就是10000,该词在词典中所处位置对应的值为1,其他值为0。

one-hot表示方法虽然简单,但其有诸多缺点:1. 词典中的词是不断增多的,比如英语,通过对原有的词增加前缀和后缀,可以变换出很多不同的词,one-hot编码会导致向量维度非常大,且每个向量是稀疏的;2. 不同词的one-hot编码向量是垂直的,在向量空间中无法表示近似关系,即使两个含义相近的词,它们的词向量点积也为0。

既然one-hot编码有这么多缺点,那我们就换一种编码,one-hot是高维稀疏向量,那新的编码就改用低维稠密向量,这样就解决了上述问题,那么怎样得到一个词的低维稠密的词向量呢?这就是word2vec算法。

Continue reading

“蛋白质结构预测”问题描述

相信很多学CS的同学之前都没听说过“蛋白质结构预测”这个问题,直到2018年12月初,一则劲爆消息瞬间引爆了CSer的朋友圈,那就是Google Deepmind团队开发的AlphaFold一举拿下当年的CASP比赛冠军,而且远远甩开了第二名。我当时就转载过类似的公众号文章,大家可以阅读并想象当时朋友圈的欢呼声:阿尔法狗再下一城 | 蛋白结构预测AlphaFold大胜传统人类模型

当时,很多同学也转载过类似的文章,但其实很少有人真正明白“蛋白质结构预测”这个问题是什么,它的难度有多大,CASP是个什么比赛,以及AlphaFold的内部原理是什么。当然,对于这一连串的问题,我当时也是懵逼的。不过自己好歹也是个跟蛋白质有关的PhD,如此热点事件,自然是要关注的。不过之后一直没时间,直到今年相关顶级文章再次爆出,我就借着准备文献讲评的机会了解了相关的知识,在这里跟大家分享一下。

https://upload.wikimedia.org/wikipedia/commons/a/a9/Protein_folding.png
Continue reading