(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的更多相关文章

  1. 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 ...

  2. [C1W4] Neural Networks and Deep Learning - Deep Neural Networks

    第四周:深层神经网络(Deep Neural Networks) 深层神经网络(Deep L-layer neural network) 目前为止我们学习了只有一个单独隐藏层的神经网络的正向传播和反向 ...

  3. [译]深度神经网络的多任务学习概览(An Overview of Multi-task Learning in Deep Neural Networks)

    译自:http://sebastianruder.com/multi-task/ 1. 前言 在机器学习中,我们通常关心优化某一特定指标,不管这个指标是一个标准值,还是企业KPI.为了达到这个目标,我 ...

  4. 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 ...

  5. (转)Understanding, generalisation, and transfer learning in deep neural networks

    Understanding, generalisation, and transfer learning in deep neural networks FEBRUARY 27, 2017   Thi ...

  6. 课程一(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 ...

  7. 课程一(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 ...

  8. 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 ...

  9. Neural Networks and Deep Learning 课程笔记(第四周)深层神经网络(Deep Neural Networks)

    1. 深层神经网络(Deep L-layer neural network ) 2. 前向传播和反向传播(Forward and backward propagation) 3. 总结 4. 深层网络 ...

随机推荐

  1. 05顺序队列_Queue--(栈与队列)

    #include "stdio.h" #include "stdlib.h" #include "io.h" #include " ...

  2. How to hide an entry in the Add/Remove Programs applet?

    Original link: http://www.winhelponline.com/articles/15/1/How-to-hide-an-entry-in-the-AddRemove-Prog ...

  3. 第11条:谨慎地覆盖clone

    Clone提供一种语言之外的机制:无需调用构造器就可以创建对象. 它的通用约定非常弱: 创建和返回该对象的一个拷贝.这个拷贝的精确含义取决于该对象的类.一般含义是,对于任何对象x,表达式x.clone ...

  4. JS判断输入框值是否为空

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  5. PHP中使用cURL

    1.cURL介绍 cURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP.FTP.TELNET等.最爽的是,PHP也支持 cURL 库.本文将介绍 cURL 的一些高级特性 ...

  6. Python爬虫(小练习)

    近日,在浏览伯乐在线(http://blog.jobbole.com/29281/)的时候碰到一些很不错的资源:25本免费的Python电子书 如下图: 其中,每本都是以名字+超链接的方式,于是激起了 ...

  7. R语言的一些笔记

    (1)包中函数必须在NAMESPACE中进行标记导出,否则就不认识了: 例如叫做rtest.Model.LogisticreRression 就能识别,而叫做Model.LogisticreRress ...

  8. easyui 汉化问题

    遇到 easyui  需要汉化的 , 1: 找到 汉化文件 ,文件位于 插件的 locale 文件夹 内 easyui-lang-zh_CN.js 2: 将其 加载 与 easyui 之后 <s ...

  9. ZOJ 3471 压缩状态DP

    这个问题要看状态怎么想,第一种直接的想法是1代表未合并,状态就从1111111 转移到 带有1个0,然后带有两个0, 但是这样子编程非常不直观.换一种思路,0代表未合并,但是我可以先合并前几个,就是说 ...

  10. 渲染统计窗口(Rendering Statistics Window)

    FPS(Timer per frame and FPS) frames per seconds表示引擎处理和渲染一个游戏帧所花费的时间,该数字主要受到场景中渲染物体数量和GPU性能的影响,FPS数值越 ...