BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

学习一下SOTA语言模型

这篇文章可以称得上是2018年NLP方面一个里程碑式的论文了。当时,BERT模型在GLUE评测榜上横扫其他所有模型,在11个NLP任务上达到最高。尽管这篇论文的阅读笔记在各种博客、论坛等地方都能看到,但我觉得仍然有必要仔细的阅读一遍原文。一来可以加深对论文的理解,二来通过阅读笔记的形式可以更好地记忆这篇文章的细节,不容易忘记。BERT这篇文章通俗易懂,整体结构完整,条理非常清晰,适合所有学习NLP的人阅读。但阅读前需要对Transformer有所了解。

阅读更多

A Convolutional Neural Network for Modelling Sentences

使用DCNN对语言进行建模

概述

使用CNN进行语言建模已经取得了较广泛的应用。本文作者提出了一个动态卷积网络DCNN,这是一个针对卷积神经网络的扩展,不需要依赖语法树,并且作者提出了许多比较新颖的概念,比如宽卷积、动态k-max pooling,这些特性使得DCNN可以捕获长短依赖,并且丰富了DCNN提取的特征。

阅读更多

Convolutional Neural Networks for NLP Classification

今天的论文来自于较老的几篇论文,使用CNN进行文本分类。

CNN最早被成功运用在图像处理中,因为图像的位置不变性、大小不变性使得CNN处理图像再适合不过。而将CNN运用于文本分类流行于2014-2015年左右,大概处于在NLP被RNN统治的前几年,因此虽然这些论文年代已经相对比较久远,但仍然值得一读,因为通过对这些论文的阅读,还能大致了解为什么CNN在NLP领域也能取得成功,CNN在NLP领域存在什么问题,以及在NLP领域CNN的使用是如何慢慢过渡到RNN的使用的。

阅读更多

[算法笔记3]Codeforces - 1139 D. Steps to One

如何求出1-n每个数的全部因子?
在继续往下阅读之前,请先想一想,如果给定一个$n,n\leq100000$,让你求出1~n的全部因子,你需要如何实现?要编写多少行代码?复杂度如何?

可能会这么考虑,如果对于每个数$x$,枚举1~n逐一判断每个数是否是$x$的因子,复杂度为$\mathcal{O}(n^2)$,显然是不可接受的,即使枚举到$\sqrt n$,复杂度也有$\mathcal{O}(n \sqrt n)$,依然太大,有没有更好的办法?

阅读更多

[算法笔记2]动态规划

关于动态规划的一些新感悟。
自从这学期学校开设了算法课之后,受到算法课老师的鼓励我突然又有了写算法题的动力。特别是老师第一节课重新回顾的动态规划算法,使我对动态规划有了一些新的理解。

其实之前我一直对动态规划有一种说不出来的敬而远之地感受。我最早接触动态规划算法可以追溯到高中的时候了,那个时候去少年宫学各种算法(顺便和小伙伴们愉快的玩耍),记得学到最短路径的dijkstra算法,当时学了之后不由感叹,哇!还能想出这样的算法,也太强了吧!这怎么想得出来嘛!所以从那个时候起我每次知道某道题要用动态规划去求解时总会不由自主地头大。因此其实很长一段时间以来,我的动态规划的水平仅仅停留在最粗浅的三角形路径最大问题上(就是那个很naive的给一个三角形让你求一条路径使得从左上角到右上角权值和最大)。

阅读更多

最近完成的一些算法题

一个多月没写博客了,赶紧填个坑。

kickstart
离上一篇博客居然已经过去一个多月啦,看来研究生还是要比本科忙多了,每天都有事情要做。最近呢,就是参加了昨天的Google Kickstart Round G 2018,本来顺利做完了2.5题,做完的时候有60名左右,结果有个大数据犯了一个低级错误,结果一个大数据挂了,最后只有100多名!啊!好气啊!看了一下题解,发现方法和我自己实现的方法差挺多的,所以想简单讲一下我的算法。

阅读更多