(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. 深层网络 ...
随机推荐
- wpf ListBox或ListView等数据控件 绑定数据,最简单的方式
在网上很难找最简单的案例,都是一大片,看着都头疼: 试试举一反三,如果把结果赋给DataContext这个属性,那就前台需要绑定ItemsSource="{Binding}",请注 ...
- Windows下lex 与 yacc的使用
Windows下lex 与 yacc的使用 首先 下载下载flex和bison.网址是http://pan.baidu.com/s/1dDlfiW5 选择下载就好了,下载后解压到你电脑中的任一盘中. ...
- JAVA多线程实现简单的点名系统
效果图如下: CMain函数: package com.shubing.main; public class CMain { public static void main(String[] args ...
- 使用qt制作简单的加法,乘法运算。
1.首先构架qt应用项目 2.然后打开使用 Qt desinger打开 Fomr File 里的UI文件进行编辑 3.由于此程序只需点击加号,减号这两个按钮,所以设置了两个信号槽 4.然后是连接信号槽 ...
- Error 1937.An error occurred during the installation of assembly...
工具:Installshield 2008 任务: 1. 创建一个 Merge Module 工程, 在 Merge Module 中包含若干 dll, 在安装过程中,dll 会被安装到指定路径. 2 ...
- CentOS 安装jdk7
1.下载jdk http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html 选择jdk ...
- C# IO流的操作
C# IO流的操作非常重要,我们读写文件都会使用到这个技术,这里先演示一个文件内容复制的例子,简要说明C#中的IO操作. namespace ConsoleApplication1 { class P ...
- Aspose.word总结
1.创建word模版,使用MergeFeild绑定数据 新建一个Word文档,命名为Template.doc 注意:这里并不是输入"<”和“>”就可以了,而是必须 ...
- Chrome远程调试Android上Chrome的页面
下载最新的google chrome canary 手机chrome开启usb网页调试,如图所示: 在终端运行 ? SHELL adb forward tcp:9222 localabstract:c ...
- oracle服务介绍
按照windows 7 64位 安装oracle 11g R2中的方法成功安装Oracle 11g后,共有7个服务,这七个服务的含义分别为: 1. Oracle ORCL VSS Writer Ser ...