0
雷锋网 AI 科技评论按:2017 年 12 月 22-24 日,由中国计算机学会(CCF)主办的第 87 期 CCF 学科前沿讲习班(CCF Advanced Disciplines Lectures,简称 CCF - ADL)在北京中国科学院计算技术研究所成功举办,雷锋网作为独家合作媒体,进行了全程报道(十三位讲者内容简介见《CCF ADL 87 讲习班回顾:韩家炜等 13 位大牛全方位解析社交网络和数据挖掘》,视频请移步 CCF-ADL87:社交网络与数据挖掘)
本次讲习班邀请到了两位在数据挖掘领域数一数二的顶级巨擘:韩家炜教授和 Philip S. Yu 教授。Philip 教授在报告中详细讲解了他多年来所倡导的「广度学习」(Broad Learning)的概念和方法,并用三个相关的研究案例来说明如何将深度学习和广度学习结合起来使用。韩家炜教授则讲述了他在数据挖掘研究中的三步曲:怎么从文本数据中挖掘出隐含的结构;怎么将结构文本转化为网络和 TextCube;最后怎么从网络和 TextCube 中挖掘出 Actionable Knowledge。
Philip S. Yu 是伊利诺伊大学芝加哥分校计算机科学系特聘教授,清华数据科学研究院院长,世界知名的数据挖掘和数据管理研究专家, ACM 及 IEEE Fellow。Philip S. Yu 教授早年于斯坦福大学获得博士学位,曾长期在 IBM Watson 研究中心工作,建立了世界知名的数据挖掘和数据库研究部门。迄今,Philip S. Yu教授已发表论文 1000 余篇,获得专利 300 多项,在谷歌学术的 H-index 与 Michael I. Jordan 不分伯仲,名列全球计算机科学领域高引作者前十。
本文为 Philip S. Yu 教授在 CCF-ADL 所做的演讲《Broad Learning via Fusion of Social Network Information》,雷锋网 AI 科技评论对其演讲内容做了全文整理,有改动和精简。
谢谢唐杰教授的介绍,我今天很高兴能够在这里跟大家讨论一下「广度学习」(Broad Learning)。
我们知道「Big Data」有四个「V」——Velocity、Volume、Veracity 和 Variety。我们今天讨论的问题主要是其中之一 Variety,即数据的多样性,例如高维数据、异质数据源、无结构数据类型(图片、网络、序列、文本)等。「广度学习」所要考虑的问题就是如何将各种各样的数据整合在一起,以获取更多的信息。
现在大家谈论深度学习比较多,而事实上对于数据我们不仅要挖得深,还要挖得广。例如对于网页数据,深度学习能够单独学习文本数据、图像数据等里面的特性。但是我们知道真实的网页可能同时包含文本、图片、音频、链接等等的数据。
事实上,我们讲的大数据并不是说所有数据都很大,只是整体很大而已。更多的情况是,我们拥有许多不同来源的(小)数据,它们之间相互有或多或少地联系。如果能够将这些不同的数据源整合在一起,那么我们将挖掘出更多有价值的信息。
首先我们认同这样一个观点,即所有类型的数据都是可用的,换句话说就是没有没价值的数据。问题的关键就在于我们如何将这些数据融合在一起。那么如何做呢?这就需要「广度学习」了。
要做好「广度学习」,我认为需要以下三步:
首先,定义并获取相关的有用数据源,也即找到对你的问题有用的数据;
其次,设计一种模型来将异质数据源信息融合起来;
最后,基于模型整体的需求从各种数据源中深度地去挖掘信息。
这有很多例子。例如我们从一个社交网络平台中获取的数据可能并不充分,如果我们能将其他社交网络平台的数据与它融合在一起,那么我们将获得更充分的特征信息。
再例如,在生物医学中我们研究脑的潜在病理预防。我们所拥有的数据除了脑的 MRI 影像,还可能有认知测量、免疫测量、临床测量等的数据。如果能够将这各种各样的数据合在一起,那么将能够更好地去分析潜在的疾病问题。
当然还有智慧城市的研究(我们有共享单车、加油站、实产评估等不同的数据)、药物发现等的例子。
深度学习的「深」是指你对数据训练的模型层数深;而广度学习的「广」是指我们训练模型的数据类型广。这两个概念侧重的点不同,但可以结合在同一个模型当中。我们下面会讲。
Ensemble Learning 指的是我们有许多不同的 model,但数据源是同一个;而 Broad Learning 是将多种数据源融合进一个模型当中进行信息挖掘。
我们平时可能说到的 Multi-view Learning、Multi-source Learning、Multi-model Learning、Multi-domain Learning 等等其实都是 Broad Learning 的特例。
另外一个我们会讲到的是Transfer Learning。所谓迁移学习就是将一个 domain 的信息迁移到另一个 domain。如果我们把一个 domain 看做一个数据源,那么事实上 Transfer Learning 也是 Broad Learning 的一个特例。
我们来看广度学习的类型大致可以分为三类:
首先是在同一个实体上有不同类型信息的学习。这种类型的广度学习包括前面谈到的 Multi-view Learning、Multi-source Learning、Multi-model Learning 等。
其次是在不同的但类型相似的实体上信息的学习。这包括 Transfer Learning。
另外是在有复杂网络类型关系的不同类型实体信息的学习。这包括基于融合的异质信息网络(HIN)。
对于广度学习,主要有两个关键的任务:信息融合和知识发现。因此对应的就有两个基本的挑战,其一是发现什么数据是有用的,如何将这些数据融合在一起;其二就是要明白想要挖掘什么(并不是所有数据对特定的知识发现都有用),以及如何从融合的数据中挖掘出有用的知识。
今天我们将以社交网络为例来详细阐述广度学习。对于社交网络,例如 facebook,其特点就是规模巨大、每日新生成内容体量大、数据类型丰富多样、噪声多、信息量大但也较难挖掘。
当然社交网络并不止一家,在国外有 Facebook、Twitter、Foursquare、LinkedIn、YouTube、Instagram、WhatsApp、Google+等,在国内有微信、微博、QQ 等。每一个个体可能会注册使用多个社交网络平台。
下面我将讲述三个社交网络的问题。
注:POI,Point of Interest
我们用这个例子来说明如何将深度学习和广度学习结合起来使用。
首先要知道的是,我们需要(或者有)什么数据。在 Location-Based Social(LBS)的社交网络中每一个人都一个 check-in sequence。除此之外,LBS 的社交网络一般情况下还会有评论的信息。
所以对于我们做 POI 推荐有两种数据可以用:User's check-in sequence 和 User's review on POI。
另外,对于 POI 的评价可以从两个角度来看。首先从用户的角度,同一个用户可能会对不同的产品(餐馆、食物、电影等)进行评价,我们可以通过用户的评价对用户的兴趣进行画像和推荐。其次从 POI 的角度来看,对于每一个 POI 都会收到各种各样用户的评价,以此我们可以对 POI 进行特征画像。
然后就是我们怎么把数据进行融合。我们提出一种新的「深度学习 + 广度学习」的模型,叫做 Deep Content-aware POI Recommendation model (DCPR)。具体来说就是我们设计了一个有多个深度神经网络组成的多层深度网络结构。在其前端,我们将多种类型的数据(POI 视角和用户视角的评论和 POI)映射到高维非线性的 latent space (POI space) 中,然后用 CNN 模型对其特征进行提取。LSTM 网络通过结构化方式连接起来,因为 LSTM 通过将表征向量作为来自 CNN 层的输入来学习用户偏好和具有 POI 语义信息的先验知识的序列模式。最后,顶层的个性化排序层联合优化了前两层(卷积层 CNN,递归层 LSTM)中产生的潜在表示,它进一步改进了前两层学习到的潜在特征,以产生更准确的模式和更好的推荐。
我们使用的数据集来自两个社交网络平台 Foursquare 和 Yelp。同时我们对比几种较为常见的方法,其中 FPMC 和 PRME 是目前两种 state-of-art 的推荐方法。
我们用三个指标来评估这些方法的性能,分别为 precision@TopN、Recall@TopN 和 Fscore@TopN。
这是 Foursquare 用户兴趣点的分布区域。
这是 Yelp 用户兴趣点的分布区域。可以看出 Yelp 用户的兴趣点主要集中在北美,而 Foursquare 则分布较广。
我们看看实验结果。横坐标是使用的数据量(占全部数据的百分比),纵坐标是对应的表现性能。可以看出我们结合深度学习和广度学习的模型 DCPR (紫色)在各个结果对比中都明显比别的模型要好。
这显示了 DCPR 在 Precision@Top5 和 Recall@Top5 中相比 FPMC 的增益。可以看出在每个用户群(黄色圈)中,DCPR 都达到了 10%以上的增益。
这个例子简单说明了怎么把深度学习和广度学习结合在一起来做 POI 推荐。
我们第二个例子是怎么把不同的社交网络平台信息融合在一起来做朋友推荐,也是所谓的 Link Prediction。
我们前面说过,有各种各样的社交网络平台,这些平台都只能抓取到一个人的某一种行为;如果能将不同平台的数据融合在一起,那么我们就可以增加对这个人的了解,也就可以做更好的预测。
要做这个事情有两个挑战。首先,一个人在不同的平台可能有不同的名字,所以将不同平台的用户对接起来是一个很大的挑战。另外,不同的平台功能不同,并不是所有的数据都是有用的,你要将不同平台的知识迁移过来也很不容易。
我们所要做的就是更精确地进行朋友推荐。如果一个人在某个平台并没有很多 connection,那么我们就应该考虑是否可以从别的社交平台拿到关于他的数据,特别是那些已经很好建构的以及公共可用的数据。这会提高我们的推荐精度。
首先考虑我们能在一个社交网络平台获得什么数据。显然,我们可以根据用户的定位、有什么朋友、什么时候比较活跃以及喜欢发表哪些方面的评论来挖掘到他的 who、where、what、when 的信息,我们称之为「4W」。
其次,我们希望能够通过多个社交平台来进一步地提高推荐的精度。例如在 foursquare 和 twitter 上有些用户我们知道他们是同一个人,因为他们使用了相同的 ID( Anchor Links)。但是很多人并没有对应关系(Non-Anchor Links)。我们把这样的两个(多个)网络合起来称之为 Partially Aligned Social Networks。
另外一个我们需要考虑的问题是怎么去表示关系的远近。假设我们有一个 target 社交网络,其他社交网络可以和它有某种连接。我们将 target 网络中每个人 embedding 到一个表示空间中。在表示空间中距离相近的就可以考虑推荐做朋友。
下面我们首先考虑怎么把「4W」的异质网络信息融合在一起。
对这种异质数据,我们使用一个 Network Schema 来表示,也即将 what、who、when、where 等通过网络的形式连接起来。
这里我们定义一个概念,叫「meta paths」,也即每两个用户之间的连接路径。于是考虑两个不相连的用户U1和U2是否可以推荐做朋友,根据上面「4W」的异质网络信息,有两种考虑:
1)两个用户如果 follow 同一个人,或者被同一个人 follow,那么这两个人就有一定的相似,这是同质路径。
2)如果两个人发布的信息有相同的 word、相同的 location 或者相同的 time,那么他们在异质网络中也可以通过异质路径连接起来。
根据这两种方式,我们就可以对每种类型的数据画一张关系图。
这些关系图的数据类型是同质的,也即我们将「4W」的异质网络信息融合了起来。接下来我们就可以用这些同质数据来做深度学习了。
我们再来看多平台数据之间怎么融合。
在两个社交网络平台,例如 Twitter 和 FourSquare,有些用户拥有相同的 ID,我们知道它们是同一个人。如前面所说,A1 和 A2 之间就构成了一个 Anchor Link。类似的这些 Anchor Links 作为两个网络的桥梁,将两个网络连接了起来。如上图,在 网络 1 中 C1 和 D1 之间没有联系,但是经过与网络 2 之间的 Anchor Links 后,C1 和 D1建立了联系。
如果将 word、location、time 加进去,构建的将是更加复杂的网络,但考虑的方式是类似的。
基于以上的考虑,我们构建出了这个 DIME 模型。这个模型首先在单个网络内部将异质信息进行融合,然后再将多平台信息融合在一起进行深度学习训练。
这是我们的数据集,用的仍是 Foursquare 和 Twitter 的数据。
这是对比的几个模型。对朋友推荐评测的标准为AUC、精度、Recall 和 F1。
实验的结果可以看到,在关系预测中,无论是 AUC、精度、Recall 还是 F1 等评价标准上,DIME(EIME-SH)的结果相比其他几种方法(Auto-encoder、LINE、DeepWalk)都要好很多。
同样这种方法也可以做社群检测,结果也都比别的方法好。
总结就是,我们将网络中的异质数据以及不同平台的数据融合在一起可以做出更加精确的朋友推荐(或 Link Prediction)以及 Community Detection。
最后我们看在 Q&A 中怎么做 text mining。
一个问答,尤其是较为复杂、深度的问答最重要的就是理解 query 是哪一类的问题,以及该回答什么类型的答案。
我们以在线医疗问答为例。上面是病人在线咨询的一些药物相关的问题。对于机器来说,这些问题并不是那么容易回答。它们不像政治和体育类的问答只需要上下文的背景就可以明白用户咨询的意图。对于医疗上的这些问题,例如「做完胃部手术后多久可以吃辛辣的食物?」,「胃部手术」和「辛辣食物」结合在一起,即使机器有关于这两者的背景信息,可以也并不是很容易检测出用户的意图。
我们该怎么做呢?
对于这种类型的问答,我们通过分析后发现,它其实包含两部分。
一部分是用户知道的信息,一部分是用户需要的信息,我们用<s, n>表示。例如<symptom,medicine>对,用户描述的是他知道的症状,他需要的是药物信息。我们还可以构建<symptom,diet>等类型的信息对。
事实上除了 Symptom 外,还有 Medicine、Disease、Examine、Surgery 等。如上图所示,我们通过有向箭头表示这种关系对。
设计问答系统,我们首先要考虑的是数据源是什么,以及怎么去表示它们。
我们发现在这种问答系统中单独地用 Word Embedding 一种表示并不充分,因为我们还要考虑不同的信息类型(例如 s 是 Symptom 还是 Surgery)。因此我们生成了另一种视角的表示,即 POS(part of speech)tag。从这个方面来看,其实这就是一个 Multi-view Learning 问题。
对于词表示学习,我们选择大约 6400 万条无标记的 query 数据进行单独训练,并学习到一个 100 维的离散表示。
POS tags 包括一般的词性标记,例如名词、动词、形容词等。另外就是特殊领域名词,在我们的研究中共标记了 80726 个词,其中 Top3 的为 n_disease(25259)、n_medicine(22689)、n_symptom(14726)。需要特别强调的是,重要的辅助信息可以帮助模型识别医疗 query 中的特殊话题词汇。
这是我们的模型。在这个模型中,可以看到我们首先将 question 分别表示为 word 和 POS tags 数据,并将它们 embedding 到相应空间中,随后单独进行 CNN 训练,再然后将它们训练的结果融合在一起编码,分别得到 Concept 和 Concept Transition。通过这两者我们可以得到更好的问答效果。
我们也和一些 Baseline 的方法进行了比较。
从这个图中,可以看出我们用 Concept 和 Concept Transition 的方法(NNID-FC)效果比其他两种好。
总结来说,我在这里用这个例子说明了怎么做 Multi-view 的广度学习。
在大数据时代,数据是最为宝贵的资源。对个人和企业来讲,对大数据的挖掘将是一次颠覆性的机会;当然大数据有四个「V」,所以对大数据的挖掘同时也是一种挑战。
我们今天的讲座主要是解决大数据的 Variety,也即通过融合异质数据源来进行广度学习。
真实生活中的数据一般都不是只有一个数据源,而是要融合多个数据源才行。因此有效的学习应当同时需要广度和深度。
全文内容有删减,仅供参考。视频请点击AI慕课学院报名链接。
~~~~~~~~~~~~~~~.
人工智能培训平台 AI慕课学院获 CCF 独家线上视频版权,点击报名链接或扫描下面二维码即可完整观看13 位学者现场授课、交流场景。
雷峰网原创文章,未经授权禁止转载。详情见转载须知。