那我们前面所讲的两个算法呢 其实都是针对同构图来游走的
    那呃如果我们的图是异构图的话 我们要怎么进行随机游走呢
    嗯 然后我这里想问一下大家一个问题
    就是呃如果我还用之前讲的这个地步 或者motorway
    在啊异构图上随机游走
    然后这样会不会呃带来什么问题 就是我不考虑节点的类型的话
    那这样的游走方式会有什么问题呢 大家可以踊跃的发言
    好的
    好 那我就go on 了 那其实这样做会导致两个问题的
    第一个是呢呃不考虑节点类型的一个异构图的异构图的随机游走
    它有两个缺点
    第一个是我们会偏向于访问啊 偏向于游走道啊
    出现频率比较高的一个节点类型 第二个是呢我们会偏向于
    呃 相对集中的节点也就是会选择
    嗯 它的度数高的节点 那这样子做它的缺点是非常明显的
    这样会使得呃我们对于这些出现频率比较低的节点啊
    或者说啊出现啊频频率比较低的这个节点类型啊
    这些点都得不到一个充分的训练 那因此呢就有论文提出了我们要
    嗯 可以提出了这样的一个matter pass to
    back 的算法嗯
    所以我们现在就来看一下这个算法指的是怎样的一个异构图游走算法
    那呃上一节课大家不知道 还记不记得这个异构图的定义
    那这里我们首先再来回顾一下这个异构图的定义
    在异构图当中呢 我们的图不仅仅包含了边
    和呃我们的这个节点
    同时呢还包含了节点以及边它对应的一个类型的概念 那这里的t
    其实就是指我们的这个类型 也就是type
    我们举一个啊学术网络的例子来解释一下
    啊 可以看到对于这样的一张图呢 我们有四种类型的节点
    分别是呃机构 还有作者论文和会议
    那在这样一张图 我们有四种节点类型 同时呢呃不同节点类型
    它们的之间的这个边也是不同类型的 比如说对于o a
    这样的一个连鞭
    他就表示 作者属属于到什么机构这样的一个关系 那对于a p
    这样的边 他就表示啊论文啊作者发表了这篇论文这样的一个关系
    那显然呢这些边也是具有不同类型的
    那讲解完了异构图之后呢 我们来嗯看一下matter
    past leg 的这个算法 那在matter pass
    的这个算法当中呢
    作者提出了一个叫做原路径的概念
    什么是原路径呢
    我这里用中文把它总结了一下
    就是嗯在图中可以选取选取到的呃由节点类型构成的这个组合路径那
    那我们要怎么理解呢 嗯
    这里我就以三个实际的例子来帮助大家理解这个概念
    比如说
    对于a p a 这样的一个原路径 他就表示嗯合作者的关系
    可以看到 a 都是代表作者p 中间的p 呢就是论文那
    啊 这就是表示两篇作者共同完成了一篇论文这个原路径的含义
    那对于a p c p a 这个
    原路径呢他就表示两篇两个作者
    他们分别在同一个会议上发表了两篇论文
    那这就是我们第二条原路径的一个
    呃 含义
    最后呢是最后一条原路径 他就表示嗯两个组织嗯两个作者
    他分别属于两个组织 然后在同一个会议上发表了我们的这个论文
    那我可我们可以看到就是我选择的这三条圆路径
    它都它都是有呃自己的一个意义的
    也就是说我们原路径的原路径的选取呢 它都是要具有一定意义的
    为什么要这么做呢
    因为我们后续会根据啊针对原路径来进行一个随机游走
    如果我们的这个圆路径在图中没有意义的话呢
    它就会导致我们的这个模型它训练出来的节点表示并不能充分的把我
    啊 这些图节点在图中的这个作用 这个角色来啊训练出来
    嗯 呃所以呢效果就比较好
    因此呢我们选取的这个呃原路径都是在途中具有一定意义的
    那这样其实有一个问题就是呃那
    有意义的原路径要怎么选择呢
    大家可以思考一下 嗯 我们平时要怎么选择原路径呢
    呃 那在一般的场景下呢 我们通常是会呃选择
    呃 是需要人工筛选的
    是需要我们的专家来呃选择这样的原路径的 在一般的情况下
    那其实人工筛选呢也是这种方法的一个缺点
    那后续其实也有研究在呃考虑说如何筛自动筛选出这个原路径
    接下来我们就看一下怎么基于这个原路径进行异构图上的这个随机游
    呃 首先我们给出了一条呃一个异构异构图
    同时也给定了一条圆路径
    那接下来呢就按照这个圆路径的节点类型来选择我们的节点
    可以看到我们第一个节点类型是一个呃a 节点是黄色的节点
    也就是offer 节点
    那我们就可以在图中任意的选择一台一个点开始出发
    比如说我们选择了a 一点
    那下一个呃原路径对应的这个节点类型是p 点
    我们可以回到这个图 对于a 一点的来说呢
    它有两个被选中的概率 可能也就是p 一和p 二 那嗯
    这个时候我们就等概率的选择其中的某一个 也就是说p 一和p
    二他们被选择的概率分别是二分之一和二分之一来
    啊 我就非常随机的选择了 比如说我选择了呃第二点
    作为我们的第二个被踩中的点 接下来呢我们就要选择第三个点了
    那对于p r 来说呢 它也有三个被选中的可能啊
    那他们的点就分别都对应了三分之一三分之一的一个被选中概率
    那我们就选择a 四点
    那嗯到了现在呢 我已经选完了三个节点了
    和我们的原路径也一一对应了 那是不是就要结束这个游走了
    嗯 答案并非如此 那刚刚在弹幕里我也看到有同学说啊
    原路径是要对称的 没错啊 我们可以看到这个原路径它是对称的
    那其实我们可以非常方便的对我们的这个原路径进行一个扩展啊
    也就是说只要我们的首尾路径的首尾的这个节点类型相同的话呢
    就可以非常方便的扩展我们的这个原路径
    接着就可以继续游走啦 可以看到我们下一个点是p 点
    那对于a 四呢 它同样有两个被选中的呃被选择的这个候选集
    那c 的选择p 三作为我们的下一个点
    继续选择
    p 三再往下走
    啊 这个时候就基本走完了 我们的这个啊过程了
    那嗯那什么时候结束呢 就是走完之后呢
    那这个时候就有两个情况
    第一个是呃到达了我们的这个指定的最大游走长度就可以停止游走了
    那另一个就是呢呃找不到符合要求的这个节点类型的对应的节点
    比如说对于a 一点 然后我下一个想要找的类型是绿色的点
    但是我找不到 那这个时候就可以停止我们的这个游走过程了
    一般情况下 我们的原路径最好是对称的
    不然呢你选择的那个游走路径的长度呢就会被原路径的长度来
    限制了 所以我们的圆柱镜最好是对称的
    这样就可以方便的进行扩展了
    呃 刚刚举的例子其实非常简单 那我这里就在动态的展示一下
    更长的一个圆路径 它的一个游走的过程 那到这里的话
    又游走到和它一样长度了 接下来再对它进行一个扩展
    继续游走
    哦 哦那我们就呃得到这个一个游游走路径了
    然后接下来呢就是呃按照刚刚所说的
    我们继续对其他的节点进行同样的游走方式的这样一个游走过程
    嗯 不对称也是有意义的 只是
    对称的话呢我们就可以呃让我们的游走长度更长一点了啊
    那在得到这多条的游走睡了之后呢
    就可以像刚才所讲的模型一样呢 套用skipper
    模型进行训练的
    那这里就是我们matter past web
    的一个整体框架
    可以看到我们修改的改动的地方其实就是呃基于原路径的一个随机游
    呃 游走的话呢其实就是获得了多条的游走序列
    得到多条游走序列呢我们就相当于获得了
    啊 多个句子一样 那多个句子之后再输入我们的这个这个模型
    然后就可以训练得到我们的这个节点表示了
    那对于这个mate plus 的算法呢
    它其实在我们随机游走的时候 有考虑到节点类型
    但是在负采样的时候没有考虑到节点类型
    那这是什么意思呢 呃 我们以呃刚才一个呃路径
    一个游走出来的路径作为一个呃例子哦
    呃 其中呢我们的a 四点就是一个中心节点
    然后a 一p 二p 三a 四就是上下文节点
    也就是说他们都是啊这里可以构成四个正样本
    那这里我们任意的选取p 三做我们的正样本
    嗯 有了这样本之后呢 我们就可以呃下一步就是选择负样本了
    那假设说我我这里选择了三个副样本可以看到了
    对于这三个副样本来说
    他们的节点类型和我们的这个样本类型是可以不同的
    也就是说呢呃method pass to that
    他在选择负样本的时候是没有说
    我要按照这和这样本一样的类型考虑去选择我们的副样本
    那他就没有区别对待这些副样本啊嗯这些简简类型
    那这样的话呢这种
    副样本的呃采集的一个方式其实是不利于我们的模型训练的啊
    显然呢针对相同类型的一个节点来区分它的一个正负样本
    并且配合我们这样的一个呃游走的方式 基于原路径的游走方式
    我们可以更好的让模型针对不同的类型的这个节点进行一个
    具有更加针对性的训练 那为了做到这一点呢
    也就是说我们要在负采样的时候啊 考虑节点类型
    那作者们就紧接着提出了一个
    pass to wake 加加的一个算法
    那m a t e p o s t o v a x
    算法和刚才的呃框架基本保持一致 不同点就是它的时候
    我们就考虑了这点类型
    那接着我们还是以刚才的这个例子讲解a 四元是中心节点
    这些都是它的正样本任意选择p 三作为正样本
    接着我们要选择负样本了
    这时候可以看到我选择了p 五和p 九作为它的负样本
    大家可以看到这两呃这样本和负样本的节点类型都是一样的
    呃 讲到这儿应该都清楚了吧
    就是呃主要的区别就在于我们副样本这个节点类型的选择
    那讲到这里 我们这三个浮游种类算法的内容就基本分享完毕了
    下面我们再来看一下啊 针对metal pass to
    wake 嗯提出的几个变种模型
    第一个就是呃我们的multi meter past two
    加加的算法
    那他在百度内部的一个落地呢 是在贴吧场景下的落地
    这里我们有一个呃那什么是multi metal pass
    to that 呢 它其实就是啊
    生成了多条圆路径 然后我们再针对这多条圆路径进行一个游走
    得到更多的一个节点训练 然后再输入到我们的这个secret
    模型来进行训练
    呃 之所以会有multi 就是因为前面的那个呃matter
    pass away 它是针对一条圆路径进行游走
    然后我们的这个monkey metal bus story
    呢就是利用圆路径生成器啊
    获得了多条的远啊多条matter part 再进行一个游走
    在这里呢我也切除了我们的一些模型的表现 可以看到呢
    在单条圆路径的场景下 我们的模型是你的表现 甚至是要比
    底部还要差的那呃有了多条的圆路径呢
    我们的效果是啊用于这两个算法 那这其实也体现了一个道理
    就是说
    呃 一根筷子容易折啊 多根筷子不容易折
    还有什么众人食材火焰高等等
    呃 接着就是另一个呃改进的模型
    也就是说我们前面呃我们前面基于的这些啊变种模型 它其实都是

    呃 我们的这个游走方式啊 或者说啊原路径的采集上做文章
    那其实呢我们还可以针对啊特征 我们针对额外的特征进行一个
    更多的一个改进
    比如说针对我们的这个图
    我们每一个节点它其实都有自己的一个属性
    每个节点都有它的一个特征表示 那我们首先我们通过了这个
    啊 原路径生成器生成了多条的原路径 然后呢在实际训练过程中
    我们可以把呃对应的这些节点的特征再融入进我们的这个
    嗯 w t 矩阵里面
    然后使得模型在训练的时候可以获得节点更多的一个信息
    那这也说明了我们啊在进行模型改进的时候呢
    可以从多个角度多个方面的去思考问题 比如说针对matter
    past two web 模型呢 我们可以从原路径的角度啊
    还有节点特征的角度啊进行一个改进 取得更好的效果
    那这就是我们的这个呃另一个变种模型了
    那他在落地的时候是在手机百度的一个小说场景下
    那下面我们在就做一个总结
    就是我们前面啊讲的这啊我就在算法以及第我算法还有notify
    算法 还针对异构图呢讲解了这些matter past
    five 的一个算法