DeepWalk: Online Learning of Social Representations-2

Language Modeling

语言建模的目标是估计语料库中出现特定单词序列的可能性。更正式的是,给定一个单词序列。

在训练语料库里最大化

在这项工作中,我们提出了一种通用的语言模化方法,通过一系列的随机短游动来研究图形。这些行走可以用一种特殊的语言来思考短句和短语。直接的模拟是估计在目前的随机游走之后发现顶点vi的可能性。

我们的目标是学习一个潜在的表示,而不仅仅是节点共现的概率分布,所以引入映射函数

这个映射表示了在图中与每个顶点v相关的潜在的社会表示。这个问题就成了估计可能性

然而,随着行走长度的增加,计算这个目标函数变得不可行。

它不是使用上下文来预测一个丢失的单词,而是使用一个单词来预测上下文。上下文由出现在给定单词的右侧和左侧的单词组成。它消除了对问题的排序约束。相反,该模型需要在不知道与给定单词的偏移量的情况下,最大限度地提高单词在上下文中出现的概率。在顶点表示建模方面,这就产生了优化问题

 

该方法在连续向量空间中生成低维的社会网络的表示。它的表示形式对社区成员的潜在形式进行编码,并且由于该方法输出有用的中间表示形式,因此它能够适应不断变化的网络拓扑结构。

Method

与任何语言建模算法一样,惟一需要的输入是语料库和词汇表V。Deepwalk把一组短的截断的随机游走作为它的语料库,图顶点作为它自己的词汇表。

Algorithm: DeepWalk

该算法由两个主要部分组成;首先是随机游走生成器,然后是一个更新过程。

随机游动发生器取一个图G,并均匀采样一个随机顶点vi作为随机游走Wvi的根。一直均匀随机采样直到最大长度到达t。尽管实验中我们的随机游走设置长度固定,但没有限制

随机游走长度要相同。

算法核心如下:

外层循环确定我们应该在每个顶点开始随机游走的次数。我们将每次迭代视为对数据进行一次“传递”,并在此传递期间对每个节点进行一次遍历。在每次传递的开始,我们生成一个随机顺序来遍历顶点。这不是严格要求的,但众所周知,它可以加快随机梯度下降的收敛速度。

在内部循环中,我们遍历图中的所有顶点。对于每个顶点v i,我们生成一个随机游走

|Wvi| = t,然后用它来更新我们的表示。我们使用SkipGram算法根据Eq. 2中的目标函数更新这些表示。

SkipGram

SkipGram是一个语言模型最大化出现在窗口中的单词w在句子中的出现概率。算法2遍历窗口w出现的所有可能随机游走搭配。对于每一个,我们映射每个顶点Vj到他现在的表示向量

考虑到vj的表示形式,我们想要最大化它的邻居在walk中的概率(第3行)。我们可以使用多种分类器来学习这种后验分布。例如,使用逻辑回归对前面的问题进行建模将导致大量的标签,这些标签等于|V |,单位可能是数百万或数十亿。这种模型需要大量的计算资源,这些资源可以跨整个计算机集群。为了加快训练时间,分级Softmax可以用来近似概率分布。

Hierarchical Softmax

考虑到所以在第三行计算是不可行的。计算配分函数(正态化因子)是很昂贵的。如果我们给二叉树的叶子分配顶点,预测问题就变成了最大化树中特定路径的概率。如果顶点uk的路径是由树节点序列标识的

可以使用分配给节点bl的父节点的二进制分类器建模这把计算复杂度从减到了

通过给随机游动中频繁出现的顶点分配较短的路径,可以进一步加快训练过程。利用霍夫曼编码减少频繁元素在树中的访问时间。

Optimization

模型参数集是采用随机梯度下降法(SGD)对这些参数进行优化。利用反向传播算法对其导数进行了估计。学习率αSGD最初设置为2.5%,然后随着到目前为止看到的顶点的数量线性下降。

EXPERIMENTAL DESIGN

Datasets

•BlogCatalog是一个由博客作者提供的社会关系网络。标签表示作者提供的主题类别。

•Flickr是照片分享网站用户之间的联系人网络。标签代表用户的兴趣组,如“黑白照片”。

•YouTube是一个流行视频分享网站用户之间的社交网络。这里的标签代表了喜欢常见视频类型(如动画和摔跤)的观众群体。

Baseline Methods

 

为了验证我们的方法的性能,我们将其与一些baseline进行比较

 

 

已标记关键词 清除标记
课程简介: 历经半个多月的时间,Debug亲自撸的 “企业员工角色权限管理平台” 终于完成了。正如字面意思,本课程讲解的是一个真正意义上的、企业级的项目实战,主要介绍了企业级应用系统中后端应用权限的管理,其中主要涵盖了六大核心业务模块、十几张数据库表。 其中的核心业务模块主要包括用户模块、部门模块、岗位模块、角色模块、菜单模块和系统日志模块;与此同时,Debug还亲自撸了额外的附属模块,包括字典管理模块、商品分类模块以及考勤管理模块等等,主要是为了更好地巩固相应的技术栈以及企业应用系统业务模块的开发流程! 核心技术栈列表: 值得介绍的是,本课程在技术栈层面涵盖了前端和后端的大部分常用技术,包括Spring Boot、Spring MVC、Mybatis、Mybatis-Plus、Shiro(身份认证与资源授权跟会话等等)、Spring AOP、防止XSS攻击、防止SQL注入攻击、过滤器Filter、验证码Kaptcha、热部署插件Devtools、POI、Vue、LayUI、ElementUI、JQuery、HTML、Bootstrap、Freemarker、一键打包部署运行工具Wagon等等,如下图所示: 课程内容与收益: 总的来说,本课程是一门具有很强实践性质的“项目实战”课程,即“企业应用员工角色权限管理平台”,主要介绍了当前企业级应用系统中员工、部门、岗位、角色、权限、菜单以及其他实体模块的管理;其中,还重点讲解了如何基于Shiro的资源授权实现员工-角色-操作权限、员工-角色-数据权限的管理;在课程的最后,还介绍了如何实现一键打包上传部署运行项目等等。如下图所示为本权限管理平台的数据库设计图: 以下为项目整体的运行效果截图: 值得一提的是,在本课程中,Debug也向各位小伙伴介绍了如何在企业级应用系统业务模块的开发中,前端到后端再到数据库,最后再到服务器的上线部署运行等流程,如下图所示:
©️2020 CSDN 皮肤主题: 博客之星2020 设计师:CY__0809 返回首页