图嵌入&知识表征の初体验
电影《普罗米修斯》中,异形被宇宙大能创造,而人类也在科技发展的过程中创造出了类人的智能体。现实世界中,人工智能的发展和人类赋予计算机越来越多类人能力以及智慧的过程又何尝不是一个创造新的物种的过程呢?今天,我们就来聊聊我们是怎么教会计算机‘什么是什么’的,也就是《让子 弹飞》里姜文不断重复的那句台词:翻译翻译。
【图结构中的‘翻译翻译’】
随着社交网络和电子商务在现实世界的普及,人与人、人与物、物与物之间的关系也变得更加紧密、复杂和重要。我们往往能够与好友的好友‘相见恨晚’,也常常通过电商平台的推荐系统一次次在‘懊悔’中掏空腰包……这些人工智能在现实场景的应用背后,都有着一个复杂而美丽的结构的身影:图结构。社交网络是图结构的一个很好的展现,每个人可以看做是图结构中的一个‘点’,而人与人之间的关系可以看做是图结构中的‘边’,每个人有自己所属的圈子即‘标签’,每个人也有自己的特点即‘属性’,如果一个人单方面关注了一个博主,那么就形成了一条‘单向边’,而如果两个人互相关注,那么就有了‘双向边’……
正因为图结构的这些独特性质,它能够更加深入的挖掘现实世界中一些隐藏在表面下的隐秘关系,如:图结构在挖掘黑灰产业的应用、在金融风控中的探索;同时,图结构也能更好的梳理人、社团、物等之间的联系,如:图结构在电子商务推荐系统中的应用和社交网络中推荐好友的功能。但人类社会的各种各样的网络对于计算而言是难以理解的,所以,如何找到一种将现实场景的网络结构‘翻译’成计算机能理解的语言是赋予机器智能的关键一步,我们称这一步为:图嵌入。
真是的图结构往往是高维的,难以理解的,而图嵌入算法,作为降维技术的一部分,能够将图结构中的节点、标签及特征嵌入到d维空间中。嵌入的思想是在向量空间中保持连接的几点彼此靠近,距离减少。下面,我将重点介绍三种经典的图嵌入算法。
【DeepWalk】
DeepWalk算法建立在自然语言处理经典模型Skip-gram思想之上,即输入一个词语,让词语上下文中词语出现的概率最大化(不考虑上下文的顺序及与训练词语的距离)。将这个思想引入图结构中,我们就将通过‘随机游走’采样得到的节点集合当作语句,对于每一个节点,最大化其他在‘节点语句’中出现的节点的概率。‘随机游走’的应用使得计算机能够不断探索网络中节点与其邻居间的关系,再结合Word2Vec的使用让计算机得到网络中节点的嵌入式表达。
【Node2Vec】
Node2vec算法在DeepWalk算法上进行了采样过程的改进,将原来随机采样random walk改进为biased random walk,其能够通过参数P,Q来控制对网络结构的宽度优先搜索和广度优先搜索。这样,采样就能对本地邻接节点和网络全局结构都有很好的表达。采样方式的提升也让Node2vec的嵌入式结果有了提高。
【SDNE:Structural Deep Network Embedding】
在DeepWalk和Node2Vec两个算法中,没有将网路的局部结构和全局结构进行清楚的定义分析。而在SDNE算法中,SDNE使用一个自动编码器 (Auto-encoder) 结构来同时学习网络的1阶相似度 (节点和其邻居的相似性) 和2阶相似度(图网络的全局结构),并利用对1阶相似度的监督学和对2阶相似度的非监督学习构建起了一个半监督学习的深度学习神经网络。实验结果表明,SDNE对于网路结构的挖掘理解更加有效。
【知识图谱中的‘翻译翻译’】
就我个人而言,我认为知识图谱可以理解为图结构中的一种独特结构。与普通的图嵌入相比,知识图谱中知识表征对两个实体间的关系也十分注重,重点在于如何处理实体间的显式关系;而图嵌入表示重在如何充分考虑节点在网络中的复杂结构信息。
【transE】
transE是为了解决知识图谱中关系数据而提出的算法,其核心思想是将知识图谱中的关系relation和实体entity进行向量化表示,通过不断学习调整head、relation、tail的向量表示,使head + relation尽可能与tail相等,即head + relation = tail。适用于将知识图谱中的每条知识进行低维稠密化表示。
【结语】
以上就是笔者对几个经典图嵌入算法和知识表征算法的理解和分享,如今图结构和知识图谱的身影在现实场景和工业界越来越多的出现,可以想象,在不远的未来,将会有越来越多优秀、巧妙的嵌入式算法涌现,人们将更加高效的教会计算机怎么‘翻译翻译’复杂的关系网络来帮助我们更好的发觉潜藏在表现下的精彩世界。
- 点赞
- 收藏
- 关注作者
评论(0)