网站建设合同范本做互联网公司网站谈单模拟视频教学

当前位置: 首页 > news >正文

网站建设合同范本,做互联网公司网站谈单模拟视频教学,做网站要备案吗 要几天,保健品网站模版CS224W—03 GNN 回顾 快速回顾一下上一讲的内容。我们学到的关键概念是节点嵌入#xff08;Node Embedding#xff09;。我们的直觉是将网络中的节点编码到低维向量空间中。我们希望学习一个接受输入图的函数 f f f#xff0c;并将其嵌入到低维节点嵌入空间中。在这里Node Embedding。我们的直觉是将网络中的节点编码到低维向量空间中。我们希望学习一个接受输入图的函数 f f f并将其嵌入到低维节点嵌入空间中。在这里我们投影到二维。图机器学习的关键问题是如何定义这个函数 f f f。 我们如何对节点进行编码目标是定义一个可以表示网络中相似性的相似函数并在嵌入空间中进行近似。我们需要定义两件事相似度函数 s i m i l a r i t y ( ⋅ ) similarity(\cdot) similarity(⋅) 和编码器函数 E N C ( ⋅ ) ENC(\cdot) ENC(⋅)。相似度函数表示网络中两个节点的接近程度而编码器函数则告诉我们如何将图中的节点映射到嵌入空间。 我们如何定义相似度上一讲中我们讨论了基于随机游走的相似度函数。例如假设两个节点在短随机游走中同时出现那么我们认为这两个节点是相似的。 我们已经看到了对节点进行编码的最简单方法之一即通过shallow-encoder查找。在这个浅层编码器中我们有嵌入矩阵嵌入矩阵的一列代表一个节点。嵌入矩阵的维数表示节点嵌入的大小。 然而这种浅层编码器存在一些问题。 复杂度为 O ( ∣ V ∣ d ) O(|V|d) O(∣V∣d)首先编码节点的方式并不是真正可扩展的因为我们需要为每个节点分配一个可学习的向量。这将导致大量的参数不适用于现实世界的大图。这种方法是推导性的transductive只能应用于训练期间见过的节点。这意味着如果出现一个新节点我们不知道如何编码该新节点因为它甚至不在嵌入矩阵中。没有包含节点特征。在现实世界的图中属性或节点特征通常非常有价值。例如在蛋白质相互作用图中我们有很多可以与给定节点关联的蛋白质属性。如果没有这个属性我们将无法从网络中进行有意义的学习。 本节中我们将定义多层神经网络转换并使用该深度神经网络对图中的节点进行编码而不是使用嵌入查找。 假设我们有了这个编码器我们能做什么呢 节点分类Node classfication。例如假设我们有一个药物蛋白质相互作用网络然后我们可以预测这种药物是否有毒或者是否可以用于治疗特定的疾病。链接预测Link prediction。链接预测对于推荐系统来说非常有用我们可以在其中定义用户和项目之间的交互网络。我们可以预测用户是否会购买某种商品。社区检测Community detection。这对于金融网络来说非常有用因为那里可能存在一群欺诈者他们之间可能有一些可疑的交易。我们的目标是检测网络中的此类异常集群。网络相似性Network similarity。在这种情况下它将是图级任务或图级预测。例如我们可以利用这个想法来编码不同的药物分子。所以在这里我们将分子视为一个网络我们想要对不同类型的分子进行分类。 Deep Learning for Graphs Setup 有一个图 G G G V V V 是顶点集合 A A A 是邻接矩阵假设为二进制 X ∈ R ∣ V ∣ × m \mathbf{X}\in \R^{|V|\times m} X∈R∣V∣×m 为节点特征矩阵 v v v V V V中的一个节点 N ( v ) N(v) N(v)节点 v v v的邻居集合。 节点特征 社交网络用户档案用户图片 生物网络基因表达谱基因功能信息 当图中数据集没有节点特征时 指示向量节点的one-hot编码 常数向量 [ 1 , 1 , … , 1 ] [1, 1, \ldots, 1] [1,1,…,1]
A Naive Approach 简单的想法将邻接矩阵和特征合并在一起应用在深度神经网络上如图直接一个节点的邻接矩阵特征合起来作为一个输入。这种方法的问题在于 需要 O ( ∣ V ∣ ) O(|V|) O(∣V∣) 的参数不适用于不同大小的图对节点顺序敏感。 排列不变性与同变性 利用image卷积的思想扩展到graph上。现实世界的图上无法定义固定的locality或滑动窗口而且图是permutation invariant的没有规范的排列顺序。 Permutation Invariant 用于全局图表示确保输出与节点排列无关。Permutation Equivariant 用于节点级别表示确保输出在节点排列变化时按相同方式变化。 Permutation Invariant排列不变性 排列不变性通常指的是模型对节点特征的排列顺序不敏感。这意味着无论节点特征的顺序如何变化只要特征值本身保持不变模型的输出也应该保持不变。 f ( A 1 , X 1 ) f ( A 2 , X 2 ) f(A_1,X_1)f(A_2,X_2) f(A1​,X1​)f(A2​,X2​) 对于任意排列 P P P f ( A , X ) f ( P A P T , P X ) f(A,X)f(PAP^T,PX) f(A,X)f(PAPT,PX) 比如 f ( { 1 , 2 , 3 } ) [ 1 , 2 , 3 ] f ( { 2 , 1 , 3 } ) [ 1 , 2 , 3 ] f({1,2,3})[1,2,3]\ f({2,1,3})[1,2,3] f({1,2,3})[1,2,3]f({2,1,3})[1,2,3] Permutation Equivariant排列同变性 如果图的节点排列发生变化那么模型的输出会按相同的方式重新排列。这在处理图中每个节点的表示如节点分类任务时非常重要。 对于任意排列 P P P P f ( A , X ) f ( P A P T , P X ) Pf(A,X)f(PAP^T,PX) Pf(A,X)f(PAPT,PX) 比如 f ( { 1 , 2 , 3 } ) [ 1 , 2 , 3 ] f ( { 2 , 1 , 3 } ) [ 2 , 1 , 3 ] f({1,2,3})[1,2,3]\ f({2,1,3})[2,1,3] f({1,2,3})[1,2,3]f({2,1,3})[2,1,3] GCN 思想基于节点的邻居定义一个计算图通过学习图的传播信息来计算节点特征。 Aggregate Neighbors 核心思想基于局部的网络邻居产生节点嵌入。 以上图为例我们想要对节点A进行编码。我们将通过查找 A 在网络中的直接邻居 B、C 和 D 来获得计算图。然后我们将迭代地为其每个邻居计算邻居结构。因此对于节点 B我们将看到其邻居 A 和 C。对于节点 C我们将看到其邻居ABEF依此类推。这种展开可以迭代地发生直到达到希望看到的轮数。这就是网络中的层数。 需要注意的事情是一个节点可以在此计算图中出现多次。 而这种深度模型就是有很多层 每个层的节点都有嵌入第 k k k层嵌入获取来自 k k k跳距离节点的信息 如何聚合邻居的信息平均邻居信息然后应用神经网络 GCN: invariance and equivariance 给定一个节点计算其embedding是置换不变的 如果考虑图中的所有节点GCN的计算是置换同变的 输入节点特征的行与输出嵌入的行对齐 这意味着在输入特征矩阵中每个节点的特征行与在输出嵌入矩阵中的相应行是一一对应的。换句话说如果我们有一个节点特征矩阵其中每一行代表一个节点的特征那么在经过GCN处理后输出嵌入矩阵中的每一行也将代表同一个节点的嵌入。 GCN计算给定节点的嵌入是不变的 这意味着无论输入特征矩阵如何排列只要节点的特征值不变GCN计算出的该节点的嵌入也将保持不变。这是GCN排列不变性的表现。 排列后给定节点在输入特征矩阵中的位置变了但输出嵌入保持相同 当输入特征矩阵的行即节点特征被重新排列后该节点在矩阵中的位置会发生变化。然而由于GCN的排列不变性该节点的输出嵌入不会改变。这意味着无论输入特征的排列顺序如何输出嵌入矩阵中相应节点的嵌入都将保持一致。 例如C和D的位置一样节点特征一样输入的位置不一样那么输出的嵌入一样排列不变性位置不一样排列同变性。
模型训练 模型的参数定义如下 我们可以将这些嵌入输入到任何损失函数中并运行SGD来训练权重参数 h k h_k hk​节点 v v v在第 k k k层的隐藏表示 W k W_k Wk​用于邻域聚合的权重矩阵 B k B_k Bk​用于转换自身隐藏向量的权重矩阵 矩阵化 可以通过稀疏矩阵操作高效执行许多聚合 隐藏嵌入矩阵 H ( k ) [ h 1 ( k ) ⋯ h ∣ V ∣ ( k ) ] H^{(k)}[h1^{(k)}\cdots h{|V|}^{(k)}] H(k)[h1(k)​⋯h∣V∣(k)​]然后 ∑ u ∈ N v h u ( k ) A v , : H ( k ) \sum_{u\in N_v}hu^{(k)}A{v,:}H^{(k)} ∑u∈Nv​​hu(k)​Av,:​H(k)设 D D D 为对角矩阵其中 D v , u deg ⁡ ( v ) ∣ N ( v ) ∣ D{v,u} \deg(v) |N(v)| Dv,u​deg(v)∣N(v)∣ D D D 的逆矩阵 D − 1 D^{-1} D−1 也是对角的 D v , u − 1 1 / ∣ N ( v ) ∣ D{v,u}^{-1} 1/|N(v)| Dv,u−1​1/∣N(v)∣因此 参数更新函数可以重写如下 当aggregation函数过度复杂时GNN可能无法被表示成矩阵形式。 训练 节点嵌入 z u \mathbf{z}_u zu​是输入图的函数。 监督设置我们希望最小化损失 min ⁡ Θ L ( y , f ( z u ) ) \underset\Theta\min \mathcal{L}(\mathbf{y}, f(\mathbf{z}_u)) Θmin​L(y,f(zu​)) y \mathbf{y} y节点标签如果 y \mathbf{y} y 是实数 L \mathcal{L} L可以是 L 2 L2 L2损失如果 y \mathbf{y} y 是分类标签可以是交叉熵损失。对于节点分类可以设计如下损失函数 无监督设置 没有节点标签可用使用图结构作为学习的目标。 min ⁡ Θ L ∑ z u , z v CE ⁡ ( y u , v , DEC ⁡ ( z u , z v ) ) \min {\boldsymbol{\Theta}} \mathcal{L}\sum{z_u, zv} \operatorname{CE}\left(y{u, v}, \operatorname{DEC}(z_u,zv)\right) minΘ​L∑zu​,zv​​CE(yu,v​,DEC(zu​,zv​)) 其实如果u和v相似则 y u , v 1 y{u,v}1 yu,v​1 z u f Θ ( u ) zuf{\Theta}(u) zu​fΘ​(u) D E C ( ⋅ ) DEC(\cdot) DEC(⋅) 为点积。 CE ⁡ ( y , f ( x ) ) − ∑ i 1 C ( y i log ⁡ f Θ ( x ) i ) ) \operatorname{CE}(\boldsymbol{y}, f(\boldsymbol{x}))-\sum_{i1}^C\left(yi \log f{\Theta}(x)_i\right)) CE(y,f(x))−∑i1C​(yi​logfΘ​(x)i​)) 节点的相似性可以使用上一节学习的随机游走以及矩阵分解来求得。 模型设计 模型设计 定义邻居聚合函数定义节点嵌入上的损失函数在节点集合如计算图的batch上做训练训练后的模型可以应用在训练过与没有训练过的节点上 推导能力 相同的聚合参数被所有节点共享模型参数的数量与节点数 N N N成次线性关系我们可以推广到未见过的节点。 参考资料 http://t.csdnimg.cn/Hvhhxhttps://web.stanford.edu/class/cs224w/