(Deep) Neural Networks (Deep Learning) , NLP and Text Mining
最近翻了一下关于Deep Learning 或者 普通的Neural Network在NLP以及Text Mining方面应用的文章,包括Word2Vec等,然后将key idea提取出来罗列在了一起,有兴趣的可以下载看看:
http://pan.baidu.com/s/1sjNQEfz
我没有把一些我自己的想法放到里面,大家各抒己见,多多交流。
下面简单概括一些其中的几篇paper:
- Bengio, Yoshua, RéjeanDucharme, Pascal Vincent, and Christian Jauvin. "A Neural Probabilistic Language Model." Journal of Machine Learning Research 3 (2003): 1137-1155.
神经网络语音模型重要工作之一,后面的工作word2vec其实都是对他的一种优化了。因为这个模型当中的softmax过程复杂度太高,计算一个word的条件概率,需要计算词典中每个word的条件概率,才能做normalization。所以就有了很多paper,包括word2vec对其进行优化。
- Morin, Frederic, and Yoshua Bengio. "Hierarchical probabilistic neural network language model." In AISTATS, vol. 5, pp. 246-252. 2005.
- Mnih, Andriy, and Geoffrey E. Hinton. "A scalable hierarchical distributed language model." In Advances in neural information processing systems, pp. 1081-1088. 2009.
这两篇paper,一篇Yoshua Bengio的,一篇Geoffrey Hinton的,都是从Hierarchical角度来降低原模型的时间复杂度。http://blog.csdn.net/mytestmy/article/details/26969149 这篇paper的讲解不错。
- Mikolov, Tomas, Kai Chen, Greg Corrado, and Jeffrey Dean. "Efficient estimation of word representations in vector space." ICLR (2013).
用一颗Huffman Tree来做Hierarchical Softmax, 因为词频大的word编码比较短,所以可以减少很多的矩阵乘法的操作。如何用tree来表示p(w|context(w))要看明白,很简单,左右分枝看作一个二分类问题,那么分到左边的概率可以定义为σ(θTx), 那么右边的概率就是1−σ(θTx), 最后的条件概率就是顺着分枝连乘起来。文中提出了CBOW和Skip-gram两种模型,结构有差异,求解方法类似,最大似然,求导,sgd。
什么时候用CBOW,什么时候用Skip-gram呢? 文章实验说明Skip-gram在word semantic相关task中表现较好,CBOW在syntactic方面比较比较好。
- Mikolov, Tomas, et al. "Distributed representations of words and phrases and their compositionality." NIPS(2013).
是上篇paper的继续优化,把原问题直接表示成了二分类问题,Negative Sampling就是如何采负样本,方法很简单,就是一个赌盘,作者说的放法应该是工程实现的时候的trick,效率更高,可以用map存随机数到word的映射。
Mikolov, Tomas跳槽去了Facebook了,挺Joey说,他是一个非常聪明的人。。
Word2Vec有很多有用的属性,属性之一自然是vector,基于此可以做一些诸如machine translation的事情:
- Mikolov, Tomas, Quoc V. Le, and IlyaSutskever. "Exploiting similarities among languages for machine translation." arXivpreprint arXiv:1309.4168 (2013).
每种语言的语料库训练出word2vec的model,英语和西班牙语为例,处于两种向量空间中,向量维度可以相同也可以不同。目标很简单,学习一个mapping matrix优化||Wx−y||2即可。矩阵是什么来着?就是一个线性变换吧。
Word2Vec的另外一个属性很有意思,V(king) – V(queen) + V(woman) ≈ V(man)。 使用这个属性就可以做很多事情了,例如:
- Fu, Ruiji, Jiang Guo, Bing Qin, WanxiangChe, Haifeng Wang, and Ting Liu. "Learning semantic hierarchies via word embeddings." ACL, 2014.
word2vec表示word之后,学习他们的hypernym-hyponym这种语义上下位关系。方法很简单,不过文章先用了一个聚类,也是挺make sense的。将y-x得到的向量k-means聚类,意思是cluster中的关系应该是类似的。
每个cluster学习出一个词关系的映射矩阵W。本文中用的word2vec的skip-gram模型来表示word feature。
关于CNN在sentences方面的应用,有几篇paper,首先:
- Blunsom, Phil, Edward Grefenstette, and NalKalchbrenner. "A Convolutional Neural Network for Modelling Sentences." ACL 2014.
来自Blunsom的作品。CNN往句子上面套的过程很简单,CNN的卷基层,在句子中体现为一个窗口,可以把几个词一起卷积一下,这样就将word order, word context考虑进去了。
CNN还有pooling的环节,上面论文中作者提出了一种k-max pooling,不仅仅取一个最大值。
- Kim, Yoon. "Convolutional Neural Networks for Sentence Classification. “ arxiv : 2014
这篇paper的思想就相对简单些了,没啥说的。
Sentence Classification相关的task很多啊,例如sentiment Classification等。
- Zeng, Daojian, Kang Liu, Siwei Lai, Guangyou Zhou, and Jun Zhao. "Relation Classification via Convolutional Deep Neural Network.“ COLING 2014 Best Paper
Coling今年的best paper,为了描述word之间的关系,提取了很多特征。其中提取句子特征使用的CNN。卷积,pooling,softmax,就这么几个过程。
- Le, Quoc V., and Tomas Mikolov. "Distributed Representations of Sentences and Documents." ICML (2014).
word2vec模型的扩展。
其实大家都会觉得deep model既然能够抽取图像等信号的latent variables, 那么应该很自然的也会抽取text的topic出来, lda等无非就是用词典大小的多项分布来描述topic,deep model应该可以用更短的向量来描述latent topic,当然类似的工作也是有的,这里先list一下:
Wan, Li, Leo Zhu, and Rob Fergus. "A hybrid neural network-latent topic model." ICAIS. 2012.
Larochelle, Hugo, and Stanislas Lauly. "A neural autoregressive topic model." NIPS. 2012.
Hinton, Geoffrey E., and Ruslan Salakhutdinov. "Replicated softmax: an undirected topic model." NIPS 2009.
Srivastava, Nitish, Ruslan R. Salakhutdinov, and Geoffrey E. Hinton. "Modeling documents with deepboltzmann machines." UAI(2013).
Hinton, Geoffrey, and Ruslan Salakhutdinov. "Discovering binary codes for documents by learning deep generative models." Topics in Cognitive Science 3, no. 1 (2011): 74-91.
Salakhutdinov, Ruslan, Joshua B. Tenenbaum, and Antonio Torralba. "Learning to learn with compound hdmodels." NIPS (2011).
(Deep) Neural Networks (Deep Learning) , NLP and Text Mining的更多相关文章
- Why are Eight Bits Enough for Deep Neural Networks?
Why are Eight Bits Enough for Deep Neural Networks? Deep learning is a very weird technology. It evo ...
- [C1W4] Neural Networks and Deep Learning - Deep Neural Networks
第四周:深层神经网络(Deep Neural Networks) 深层神经网络(Deep L-layer neural network) 目前为止我们学习了只有一个单独隐藏层的神经网络的正向传播和反向 ...
- [译]深度神经网络的多任务学习概览(An Overview of Multi-task Learning in Deep Neural Networks)
译自:http://sebastianruder.com/multi-task/ 1. 前言 在机器学习中,我们通常关心优化某一特定指标,不管这个指标是一个标准值,还是企业KPI.为了达到这个目标,我 ...
- Coursera Deep Learning 2 Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization - week1, Assignment(Initialization)
声明:所有内容来自coursera,作为个人学习笔记记录在这里. Initialization Welcome to the first assignment of "Improving D ...
- (转)Understanding, generalisation, and transfer learning in deep neural networks
Understanding, generalisation, and transfer learning in deep neural networks FEBRUARY 27, 2017 Thi ...
- 课程一(Neural Networks and Deep Learning),第四周(Deep Neural Networks) —— 3.Programming Assignments: Deep Neural Network - Application
Deep Neural Network - Application Congratulations! Welcome to the fourth programming exercise of the ...
- 课程一(Neural Networks and Deep Learning),第四周(Deep Neural Networks)—— 0.学习目标
Understand the key computations underlying deep learning, use them to build and train deep neural ne ...
- This instability is a fundamental problem for gradient-based learning in deep neural networks. vanishing exploding gradient problem
The unstable gradient problem: The fundamental problem here isn't so much the vanishing gradient pro ...
- Neural Networks and Deep Learning 课程笔记(第四周)深层神经网络(Deep Neural Networks)
1. 深层神经网络(Deep L-layer neural network ) 2. 前向传播和反向传播(Forward and backward propagation) 3. 总结 4. 深层网络 ...
随机推荐
- 08_rlCoachKin自主编译,调试
为了知道参数的意思,以及为了从头建立一个项目,我从使用QTCreator来单独建立项目(当然也可以直接使用源代码中建立好的VS项目). 其实也推荐 VS2010调试 如果是用自带的VS项目,那么我们需 ...
- QT 常用设置
博文都写在了云笔记里面了,见谅,不想维护两个版本. QT 常用设置
- 模板:LCS(最长公共子序列)
#include <cstring> #define max(a,b) ((a) > (b) ? (a) : (b)) int same(char ch1,char ch2) { ; ...
- 银行卡号Luhm校验Java实现代码
import java.util.regex.Matcher; import java.util.regex.Pattern; public class CheckBankNumber { //Des ...
- CSS3之渐变效果
在css3出来之前,想要出现渐变效果必须就要制作一张图片.不过css3的出现使得渐变效果变得简单.由于不是所有的浏览器都支持css3,所以不是所有的浏览器都能够呈现出css3的效果出来.因此目前大部分 ...
- CRUD生成器DBuilder设计与实现
源码位于github:https://github.com/lvyahui8/dbuilder.git .文中图片如果太小看不清楚,请右键点击“在新标签页中打开”即可看到原图 有兴趣还可以加QQ群交流 ...
- nuget的使用总结
使用NuGet发布自己的类库包(Library Package) from:http://blog.csdn.net/gulijiang2008/article/details/41724927 使用 ...
- oracle忘记用户密码
在cmd命令行下输入sqlplus / as sysdba alter user system identified by abc; 就可以将system用户的密码改成abc了. alter user ...
- hdu 1251 统计难题 trie入门
统计难题 Problem Description Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本 ...
- Makefile 多目录自动编译
适用于多目录结构 C 工程自动编译. makefile 分成三类: 1. 工程根目录 makefile : 这个makefile执行分成两个阶段 a)递归进入每个子目录, 逐个执行子目录里面的 ma ...