Deep learning+自然语言处理(NLP)技术引发的思考
2016-05-22 13:22:23  深度学习 自然语言处理 

今天在清华大学听了一天的学术会议,会议地址如下:

 

http://mp.weixin.qq.com/s?__biz=MzIxNzE2MTM4OA==&mid=2665642769&idx=1&sn=12e5766c514e7b3c1b05dd4456db2ea5&scene=23&srcid=0520vxiZ5sezxZn2TrHfIizW#rd

可能是由于我已经长期没有参加过学术会议了,所以今天听会引发了我很多思考,下面结合着听到的工作将自己的思考结果做一个总结,以便将想法留存,同时也方便大家follow 学习。

先说一下总的感受,这是清华大学计算机学院举办的硕博论坛,主题为“计算未来”。由于最近Deep learning呈现井喷式发展,特别是在自然语言处理这一块,Deep learning将有可能获得重大突破。一方面,Word2Vector和LSTM网络等技术的快速突破已经在很多场合获得重要应用;另一方面,由于很多数据要么属于时间序列,要么可以转化为时间序列(例如复杂网络),故而,NLP上面这些技术将会形成一种通用技术,从而应用到各种各样的系统与应用场景中去。由于Deep learning这套技术可以从海量数据中自发生长出结构,而新型的NLP分析方法可以从训练得到的神经网络直接生成相应的上下文、语义层面的机器理解,所以新方法将可能创造很多全新的应用。这就好比2000年开始热起来的复杂网络,新型的技术将会很快形成一种横断学科应用到各式各样的复杂系统中去,形成横断学科。另外,感受到的是,现在的年轻人都很厉害,他们跟进国际前沿,特别是deep learning这块的速度很快,所以,超过35岁的老教授们都应该虚心向他们学习。

下面对一些报告作一下点评,以及由此联想到的东西做一纪录。

1、Max-Margin DeepWalk: Discriminative Learning of Network Representation

首先,我得先说一下DeepWalk,这是一种将普通的复杂网络转化成一个符号序列,并利用Word2Vector技术进行训练的方法,同时可以将复杂网络嵌入到一个向量空间中,于是可以对节点进行各种分类、聚类等工作。正是这个工作引起了我对NLP这个领域的关注,它是结合复杂网络和Deep learning方法的一个敲门砖。

其次,说一说这个工作,有两点收获:1、原来DeepWalk本质上讲可以看作一种矩阵分解;2、可以将DeepWalk的目标函数和支持向量机的目标函数耦合起来,从而结合考虑无标签的DeepWalk和节点的标签信息,从而进行节点的分类与预测。

最后,我想说说这个思路的进一步可扩展工作其实很丰富:1、可以尝试一些新的任务,比如对复杂网络进行学习、分类,甚至预测整个复杂网络的发展;2、可以用这套思路来做链路预测,效果应该比人拍脑袋想出来的方法以及基于统计物理的方法效果好,因为Deep learning擅长进行特征的自动提取。

 

2、Browsing Regularities in Hedonic Content Systems

这个研究其实与NLP和Deeplearning没关系,但是比较有意思的是主讲人研究的是集体注意力,从HP实验室出来的,和Huberman很熟,所以采用的通常的统计物理方法,研究用户在什么时候会推出APP,好像还有一些挺好的应用。最赞的是,他们专门请公司做了一个科普视频介绍自己的工作。

3、Bridging LSTM Architecture with the Neural Dynamics of Reading

这篇工作个人感觉应该是整个会议科学味道最强的一个工作了。其思路是比较LSTM人工神经网络和人脑(fMRI数据)在阅读文字(哈利波特小说)的时候产生的激活模式之间的异同。深度学习工程学的味道太浓,但是要想走向科学理论也很难,其中一种可能有趣的科学研究方式就是比较机器和人脑。

4、I Poet: Automatic Poetry Composition through Recurrent Neural Networks with Iterative Polishing Schema

这个工作使用回归神经网络来生成五言、七言绝句这样的诗词。对于我来说,虽然对如何自动生成诗歌并没有多大的兴趣,但是比较感兴趣的是如何用神经网络的方法来做语言或者带某种约束的语言生成。换句话说,现在的Deep learning技术已经可以从海量的文本信息中学习得到隐含的诗词结构,然后自动进行新的组合创造。可能这套方法可以用于其他时间序列信息的学习和创造。总之,对于生成模型非常感兴趣。

5、Understanding Crowd Scene based on Coherent Recurrent Neural Networks

这个工作是利用LSTM网络来学习人群的运动轨迹,并对个体的移动进行预测。更赞的是,由于人群可以分成不同的组,同一组中的不同人彼此还有影响,因此作者提出来一种Coherent的方法将多个LSTM耦合起来,得出了自己的模型。这个研究让我联想到,它可以用来分析各种各样的群体移动行为,包括人类群体和动物群体。另外,这种方法也可以用来学习个体在抽象空间,例如知识空间或者网页空间中的移动。

6、Knowledge Representation Learning with Entities, Attributes and Relations

我对于知识表示领域并不太了解,但是这个报告比较有意思的点是他对各种知识表示方法做了统一的介绍。个人理解,知识表示可以看作是自然语言理解的高级应用。这种应用多是通过用自然语言模型训练得到一个LSTM或者Word2Vector模型,从而从半截输出一个隐含层的向量表示,这种表示可以对应较高层次的知识空间。所以,如果一个系统能够生成一种符号序列,原则上讲都可以产生高层次的知识。所以,我们也许可以推广这套方法。

7、Representation Learning of Knowledge Graphs with Hierarchical Types

对我来说,这个报告的一个有趣的地方在于它介绍了这样一种想法:将知识图谱做向量嵌入,那么实体就会对应空间中的向量,实体间的关系不同关系就是不同的差向量。因此,不仅仅向量有意义,这种关系,也就是向量空间中的矢量本身也很有意义。也许这套方法可以用于复杂网络之中,其中网络中的节点都有向量表示(例如可以用Deep walk方法),而网络连边可以用差向量来表示。那么,多个不同的连边可能会出现平行的向量,这说明这些连边可能可以聚为一类,表示某种特殊的关系。所以,运用向量表示技术,我们不仅分类、聚类节点,也可以聚类、分类连边。

8、Intersubjectivity and Sentiment: from Language to Knowledge

这个报告也比较有意思,但是我已经记不清内容了,又没有下载到原文,不过可以mark一下。

查到了作者的主页:https://sites.google.com/site/yulanhe8/publications,很多关于社交媒体数据的研究。估计将Deep learning引入社交媒体大数据分析将会成为计算社会科学的一种比较新的研究趋势。

9、Employing External Rich Knowledge for Machine Comprehension

这个报告介绍了最近很好玩的一个研究,就是用NLP的方法来让机器做阅读理解。这也是一种较高层次的Deep learning的应用,一方面输入一个文本序列,另一方面再有一个问题的文本序列,然后再从备选答案中选择出一个正确选项出来。感觉这方面的应用应该可以扩展到非NLP领域。比如给一个符号序列作为训练,再给入问题符号序列,我就可以生成一个回答符号序列,但目前还没想到具体的应用场景。

10、Neural Segmentation Models Leveraging Segment Representations

这个工作将Semi-Markov CRF和Word2Vector结合了起来,前面的模型用于中文的自动分词,后一个模型用于词语的词向量表示。也许这套方法可以用到其他的序列中去,比如对网络中的节点进行自动聚类,然后再将聚类后的节点集团嵌入到向量空间中做表示也许会与直接嵌入不同。

 

听后感:

另外,拉拉杂杂还有一些遐想,记录下来备忘:

1、深度学习、NLP方法论

这些报告我听起来都很感兴趣,其中最大的原因不在于NLP本身,而是考虑到这些技术可能可以用于其他的领域。这里面的核心思想是由于Deeplearning的NLP技术的本质就是利用上下文训练出语义方面的信息,这相当于某种意义上的机器理解。于是这套方法实际上不受自然语言的限制,只要有上下文,我们就可以用这套东西训练,得到某种上下文的意义出来。比如,每个人都在社会网络中,一个人的网络邻居就是它的上下文,那么我们就可以根据实际的场景得到一些实际应用的问题背景,比如是否可以根据此人的上下文推测此人的未来发展,等等。很多社会科学中的问题,例如一个节点如何进行生态位的越迁?只要一个问题可以转化成类似语言中的问题,我们都可以尝试Deep learning的方法。

总而言之,Deep learning已经成为了一种新的方法论。历史上,复杂性研究本质上讲就是方法论的进化,而不是理论的进化。所以,采用这套新的方法论,结合大数据,我们将可能训练出各种各样的模型,以及解决各种各样以前很难解决的半结构化问题。

之所以说deep learning会形成一种新的方法论,是因为传统的统计物理方法、复杂网络方法,实际上都是人为设计一些反映网络某特征的统计指标,然后进行计算分析。而Deep learning本质上讲就是特征学习,所以机器可以自己在大数据中学到特征,这样就比人工设计特征更加厉害了。

一个比较有趣的拓展是,如果我们要求一个神经网络的输出是某种数学公式,或者相互平衡的几组特征指标,那么我们有可能做到运用机器学习自动在大数据中总结数学公式,例如Zipf这样的规律将会被机器发现。

更牛X的做法是,给订一套描述复杂系统的规则语言,然后用deep learning训练输出这样的规则,甚至多主体模型。

 

2、网络整体的模式识别与趋势预测

复杂网络是复杂系统的基本骨架。如果将一个网络看作一个图片,那么我们可以开发一些方法做复杂网络本身的分类和预测。然而,目前只有Deep walk一种学习复杂网络表示的方法。实际上,网络是一种介于图片和序列之间的结构,它的邻接矩阵就是一张图片,但是由于节点的顺序可以任意排列,多个矩阵可以对应一个网络。所以,如何开发一种介于CNN和RNN之间的网络结构来学习网络的识别与预测?这是一个有趣的理论问题。

3、负熵流-->注意力流-->数据流-->模型流

从更大尺度上来看,现代的机器学习技术其实就是利用大数据流来冲刷一个神经网络结构,让模型实时地改变。而这里的数据其实就是负熵。由于数据是由用户的注意力流生成的,所以原则上讲注意力流就是负熵流。如何计算得到一串数据中包含的负熵流是多少,特别是一段数据相对于一个模型的意义是什么?这是一个有趣的理论问题。

如果将数据流视作注意力流地表示,那么本质上这些deep learning模型就是注意力流与模型之间的互动流。更有意思的一个问题是考虑用户的注意力与deep learning模型的耦合演化将会呈现什么样的有趣模式?这些问题都是很值得探讨的。

4、站在更高层次看问题

随着deep learning这套方法越来越成熟,越来越开源、廉价,新的多主体模拟、统计物理研究阶段也许将会到来。那个时候,我们可以研究多个LSTM模型组成的复杂系统,看它们的互动会产生怎样的模式?

我甚至觉得,即使在现阶段我们也可以展开这样的研究:采用研究复杂系统的传统方法,例如多主体仿真,我们可以研究一个由大量的人-机(具体就是指一个深度模型)构成的个体所组成的大系统会有哪些有趣的集体行为和涌现特质。这种研究将是超前的,这是因为目前已经有越来越多的人认识到,我们即将从大数据时代过渡到大智能时代,从互联网+过渡到智能+,那么提早地研究这样一种思潮将会怎样影响人类社会的进化是至关重要的,所以跳出具体的deep learning算法细节,研究一个由人类注意力驱动的人机耦合系统(例如现在各大互联网公司推出的智能代理应用),甚至是它们的整体将会产生怎样的模式将是一个非常有价值,而且有前瞻意义的课题。当然,这里面的一个关键核心是我们应该如何抽象一个人-机耦合系统呢?这种人-机耦合系统具备哪些本质的属性?

登录后才可以评论,马上登录