论文阅读:A Generalization of Transformer Networks to Graphs

论文阅读:A Generalization of Transformer Networks to Graphs

  • 论文地址
  • 1 摘要
  • 2 贡献
  • Graph Transformer
    • On Graph Sparsity(图稀疏)
    • On Positional Encodings(位置编码)
    • 3 Graph Transformer Architecture(架构)
      • 模型框架
      • input(输入)
    • Graph Transformer Layer
      • Graph Transformer Layer with edge features(带边特征)
      • 基于任务的 MLP 层
  • 4 实验

论文地址

论文:https://arxiv.org/pdf/2012.09699.pdf
代码:https://github.com/graphdeeplearning/graphtransformer

1 摘要

作者提出了一种适用于任何图的GraphTransformer。原始的transformer在基于单词的全连接图上用于NLP,它有如下缺点:

  1. 这种结构不能很好利用图的连通归纳偏置(graph connectivity inductive bias)
  2. 当图的拓扑结构很重要且尚未编码到节点特征时,表现很差

作者提出的GraphTransformer,有4个优势:

  1. 注意力机制是图中每个节点的邻域连通性的函数
  2. positional encoding用拉普拉斯特征向量表示
  3. Batch Normalization代替Layer Normalization,优点:训练更快,泛化性能更好
  4. 该架构扩展到边特征表示,这对于某些任务可能至关重要,例如化学(键类型)或链接预测(知识图谱中的实体关系)

2 贡献

  1. 提出了一种将 transformer 网络推广到任意结构的同构图,即 Graph Transformer,以及具有边缘特征的 GraphTransformer 的扩展版本,允许使用显式域信息作为边缘特征。
  2. 方法包括一种使用拉普拉斯特征向量为图数据集融合节点位置特征的优雅方法。与文献的比较表明,拉普拉斯特征向量比任何现有的方法都更适合编码任意同构图的节点位置信息
  3. 实验表明,所提出的模型超过了baseline的各向同性和各向异性 GNN

Graph Transformer

On Graph Sparsity(图稀疏)

在NLP的transformer中,用全连接图去处理一个句的原因:

  1. 很难在句子中的单词之间找到有意义的稀疏交互或联系。例如:句子中的单词对另一个单词的依赖性可能因上下文、用户视角而异
  2. NLP的transformer的nodes数量比较少(几十个,几百个),便于计算。

对于实际的图形数据集,图形可能有任意的连接结构,nodes的数量高达数百万或数十亿,使得不可能为此类数据集提供完全连接的图形,因此需要Graph Transformer来让nodes处理邻居信息。

On Positional Encodings(位置编码)

在 NLP 中,基于 transformer 的模型为每个单词提供位置编码。确保每个单词的唯一表示并确保最终保留距离信息

对于图形,唯一节点位置的设计具有挑战性,因此大多数在图数据集上训练的 GNN 学习的是不随节点位置变化的结构化节点信息,这就是为什么GAT是局部attention,而不是全局attention。

现在的目标是学习结构和位置的特征,Dwivedi et al. (2020)利用现有的图结构预先计算拉普拉斯特征向量,并将它们作为节点的位置信息。

  • 拉普拉斯 PE 能更好地帮助编码距离感知信息(即,附近的节点具有相似的位置特征,而较远的节点具有不同的位置特征)

因此使用拉普拉斯特征向量作为 Graph Transformer 中的 PE。特征向量通过图拉普拉斯矩阵的分解来定义:
Δ = I − D − 1 / 2 A D − 1 / 2 = U T Λ U , ( 1 ) \Delta=\mathrm{I}-D^{-1/2}AD^{-1/2}=U^T\Lambda U,\quad(1) Δ=ID1/2AD1/2=UTΛU,(1)

  • A A A n × n n\times n n×n邻接矩阵, D D D是度矩阵
  • Λ \Lambda Λ U U U分别对应特征值和特征向量
  • 使用节点的 k个最小的非平凡特征向量作为其位置编码,对于节点 i i i,用 λ i \lambda_{i} λi表示

3 Graph Transformer Architecture(架构)

模型框架

在这里插入图片描述

input(输入)

首先准备要输入Graph Transformer Layer的input node 和 edge embeddings。

在图 G \mathcal{G} G中,对于任意一个节点 i i i的节点特征 α i ∈ R d n × 1 \alpha_{i} \in \mathbb{R}^{d_{n}\times1} αiRdn×1以及节点 i i i和节点 j j j之间的边特征 β i j ∈ R d e × 1 \beta_{ij}\in\mathbb{R}^{d_{e}\times1} βijRde×1 α i \alpha_{i} αi β i j \beta_{ij} βij通过一个线性映射,从而嵌入到 d d d维的隐藏特征(hidden features) h i 0 h_i^0 hi0 e i j 0 e_{ij}^0 eij0中,公式如下:
h ^ i 0 = A 0 α i + a 0 ; e i j 0 = B 0 β i j + b 0 , ( 2 ) \hat{h}_i^0=A^0\alpha_i+a^0 ; e_{ij}^0=B^0\beta_{ij}+b^0,\quad(2) h^i0=A0αi+a0;eij0=B0βij+b0,(2)

  • 其中 A 0 ∈ R d × d n , B 0 ∈ R d × d e A^0\in\mathbb{R}^{d\times d_n},B^0\in\mathbb{R}^{d\times d_e} A0Rd×dn,B0Rd×de,以 A 0 A^0 A0为例,其每一列是每个节点的节点特征(总共 d n d_n dn个结点),维度为 d d d,而 α i \alpha_{i} αi一个其他元素都为0,对应节点位置的元素为1的向量

  • a 0 , b 0 ∈ R d a^0,b^0\in\mathbb{R}^d a0,b0Rd是线性映射层的参数

然后通过线性映射嵌入维度为 k k k的预计算节点位置编码并将其添加到节点特征 h ^ i 0 \hat{h}_i^0 h^i0中。
λ i 0 = C 0 λ i + c 0 ; h i 0 = h ^ i 0 + λ i 0 , ( 3 ) \lambda_i^0=C^0\lambda_i+c^0 ; h_i^0=\hat{h}_i^0+\lambda_i^0,\quad(3) λi0=C0λi+c0;hi0=h^i0+λi0,(3)

  • 其中 C 0 ∈ R d × k , c 0 ∈ R d C^0\in\mathbb{R}^{d\times k},c^0\in\mathbb{R}^d C0Rd×kc0Rd,其作用是将位置编码转化为维度为 d d d的向量

Graph Transformer Layer

现在定义第 l l l层的节点更新方程:
h ^ i ℓ + 1 = O h ℓ ∣ ∣ k = 1 H ( ∑ j ∈ N i w i j k , ℓ V k , ℓ h j ℓ ) , ( 4 ) \hat{h}_{i}^{\ell+1}=O_{h}^{\ell}\mathcal{\left|\right|}_{k=1}^{H}\Big(\sum_{j\in\mathcal{N}_{i}}w_{ij}^{k,\ell}V^{k,\ell}h_{j}^{\ell}\Big),\quad(4) h^i+1=Ohk=1H(jNiwijk,Vk,hj),(4)
w h e r e , w i j k , ℓ = s o f t m a x j ( Q k , ℓ h i ℓ ⋅ K k , ℓ h j ℓ d k ) , ( 5 ) \mathrm{where,~}w_{ij}^{k,\ell}=\mathrm{softmax}_{j}\Big(\frac{Q^{k,\ell}h_{i}^{\ell} \cdot K^{k,\ell}h_{j}^{\ell}}{\sqrt{d_{k}}}\Big),\quad(5) where, wijk,=softmaxj(dk Qk,hiKk,hj),(5)

  • Q k , ℓ , K k , ℓ , V k , ℓ ∈ R d k × d , O h ℓ ∈ R d × d Q^{k,\ell},K^{k,\ell},V^{k,\ell}\in\mathbb{R}^{d_{k}\times d},O_{h}^{\ell}\in\mathbb{R}^{d\times d} Qk,,Kk,,Vk,Rdk×d,OhRd×d
  • k = 1 k=1 k=1 H H H代表注意头的数量
  • ∣ ∣ \mathcal{\left|\right|} 表示串联(concatenation)

这里详细讲一下式子(5), Q k , ℓ h i ℓ Q^{k,\ell}h_{i}^{\ell} Qk,hi相当于 h i ℓ h_{i}^{\ell} hi的查询向量, K k , ℓ h j ℓ K^{k,\ell}h_{j}^{\ell} Kk,hj h j ℓ h_{j}^{\ell} hj的键向量(相当于查询的答案)

  • 比如,查询向量在问:“我前面有形容词吗”,键向量回答:“有的”。假设二者向量点积值越大,则说明了它们越匹配,则说明越相关
  • 除以 d k \sqrt{d_{k}} dk 是为了数据的稳定性

接着将结果 h ^ i ℓ + 1 \hat{h}_{i}^{\ell+1} h^i+1按照框架图所示依次经过残差连接和LN、Feed Forward Network (FFN)、残差连接和LN,公式如下:
h ^ ^ i ℓ + 1 = Norm ( h i ℓ + h ^ i ℓ + 1 ) , ( 6 ) h ^ ^ ^ ℓ + 1 = W 2 ℓ ReLU ( W 1 ℓ h ^ ^ i ℓ + 1 ) , ( 7 ) h i ℓ + 1 = Norm ( h ^ ^ i ℓ + 1 + h ^ ^ ^ i ℓ + 1 ) , ( 8 ) \hat{\hat{h}}_i^{\ell+1}\quad=\quad\text{Norm}\Big(h_i^\ell+\hat{h}_i^{\ell+1}\Big),\quad(6) \newline \begin{array}{lcl}\hat{\hat{\hat{h}}}^{\ell+1}&=&W_2^\ell\text{ReLU}(W_1^\ell\hat{\hat{h}}_i^{\ell+1}),&(7)\end{array} \newline \begin{array}{rcl}h_i^{\ell+1}&=&\text{Norm}\Big(\hat{\hat{h}}_i^{\ell+1}+\hat{\hat{\hat{h}}}_i^{\ell+1}\Big),&\quad(8)\end{array} h^^i+1=Norm(hi+h^i+1),(6)h^^^+1=W2ReLU(W1h^^i+1),(7)hi+1=Norm(h^^i+1+h^^^i+1),(8)

  • W 1 ℓ , ∈ R 2 d × d , W 2 ℓ , ∈ R d × 2 d , h ^ ^ i ℓ + 1 , h ^ ^ ^ i ℓ + 1 W_{1}^{\ell},\in \mathbb{R}^{2d\times d}, W_{2}^{\ell},\in \mathbb{R}^{d\times2d}, \hat{\hat{h}}_{i}^{\ell+1}, \hat{\hat{\hat{h}}}_{i}^{\ell+1} W1,R2d×d,W2,Rd×2d,h^^i+1,h^^^i+1 都是中间变量
  • Norm可以是LayerNorm或者BatchNorm

Graph Transformer Layer with edge features(带边特征)

接下来介绍的是上图第二个模型,根据公式(5),将此分数视为边<i,j>的隐式信息,紧接着使用公式(12)为边<i,j>注入可用的边信息,如下:
h ^ i ℓ + 1 = O h ℓ ∣ ∣ k = 1 H ( ∑ j ∈ N i w i j k , ℓ V k , ℓ h j ℓ ) , (9) e ^ i j ℓ + 1 = O e ℓ ∣ ∣ k = 1 H ( w ^ i j k , ℓ ) , w h e r e , (10) w i j k , ℓ = s o f t m a x j ( w ^ i j k , ℓ ) , (11) w ^ i j k , ℓ = ( Q k , ℓ h i ℓ ⋅ K k , ℓ h j ℓ d k ) ⋅ E k , ℓ e i j ℓ , (12) \begin{aligned}&\hat{h}_{i}^{\ell+1}&&=\quad O_{h}^{\ell}\mathcal{\left|\right|}_{k=1}^{H}\Big(\sum_{j\in\mathcal{N}_{i}}w_{ij}^{k,\ell}V^{k,\ell}h_{j}^{\ell}\Big),&&\text{(9)}\\&\hat{e}_{ij}^{\ell+1}&&=\quad O_{e}^{\ell}\mathcal{\left|\right|}_{k=1}^{H}\Big(\hat{w}_{ij}^{k,\ell}\Big), \mathrm{where},&&\text{(10)}\\&w_{ij}^{k,\ell}&&=\quad\mathrm{softmax}_{j}(\hat{w}_{ij}^{k,\ell}),&&\text{(11)}\\&\hat{w}_{ij}^{k,\ell}&&=\quad\left(\frac{Q^{k,\ell}h_{i}^{\ell}\cdot K^{k,\ell}h_{j}^{\ell}}{\sqrt{d_{k}}}\right) \cdot E^{k,\ell}e_{ij}^{\ell},&&\text{(12)}\end{aligned} h^i+1e^ij+1wijk,w^ijk,=Ohk=1H(jNiwijk,Vk,hj),=Oek=1H(w^ijk,),where,=softmaxj(w^ijk,),=(dk Qk,hiKk,hj)Ek,eij,(9)(10)(11)(12)

  • Q k , ℓ , K k , ℓ , V k , ℓ , E k , ℓ ∈ R d k × d , O h ℓ , O e ℓ ∈ R d × d Q^{k,\ell},K^{k,\ell},V^{k,\ell},E^{k,\ell} \in \mathbb{R}^{d_{k}\times d}, O_{h}^{\ell},O_{e}^{\ell} \in \mathbb{R}^{d\times d} Qk,,Kk,,Vk,,Ek,Rdk×d,Oh,OeRd×d
  • 这里的公式,矩阵运算过程中总感觉维度不对应,后期再看这个问题

紧接着,经历相同的过程,如下:
对于节点:
h ^ ^ i ℓ + 1 = N o r m ( h i ℓ + h ^ i ℓ + 1 ) , (13) h ^ ^ ^ i ℓ + 1 = W h , 2 ℓ R e L U ( W h , 1 ℓ h ^ ^ i ℓ + 1 ) , (14) h i ℓ + 1 = N o r m ( h ^ ^ i ℓ + 1 + h ^ ^ ^ i ℓ + 1 ) , (15) \begin{aligned} &\hat{\hat{h}}_{i}^{\ell+1}&& =\quad\mathrm{Norm}\Big(h_{i}^{\ell}+\hat{h}_{i}^{\ell+1}\Big), &&&& \text{(13)} \\ &\hat{\hat{\hat{h}}}_{i}^{\ell+1}&& =\quad W_{h,2}^{\ell}\mathrm{ReLU}(W_{h,1}^{\ell}\hat{\hat{h}}_{i}^{\ell+1}), &&&& \text{(14)} \\ &h_{i}^{\ell+1}&& =\quad\mathrm{Norm}\Big(\hat{\hat{h}}_{i}^{\ell+1}+\hat{\hat{\hat{h}}}_{i}^{\ell+1}\Big), &&&& \text{(15)} \end{aligned} h^^i+1h^^^i+1hi+1=Norm(hi+h^i+1),=Wh,2ReLU(Wh,1h^^i+1),=Norm(h^^i+1+h^^^i+1),(13)(14)(15)

  • W h , 1 ℓ , ∈ R 2 d × d , W h , 2 ℓ , ∈ R d × 2 d W_{h,1}^{\ell},\in \mathbb{R}^{2d\times d}, W_{h,2}^{\ell},\in \mathbb{R}^{d\times2d} Wh,1,R2d×d,Wh,2,Rd×2d

对于边:
e ^ ^ i j ℓ + 1 = N o r m ( e i j ℓ + e ^ i j ℓ + 1 ) , ( 16 ) e ^ ^ ^ i j ℓ + 1 = W e , 2 ℓ R e L U ( W e , 1 ℓ e ^ ^ i j ℓ + 1 ) , ( 17 ) e i j ℓ + 1 = N o r m ( e ^ ^ i j ℓ + 1 + e ^ ^ ^ i j ℓ + 1 ) , ( 18 ) \hat{\hat{e}}_{ij}^{\ell+1}=\quad\mathrm{Norm}\Big(e_{ij}^{\ell}+\hat{e}_{ij}^{\ell+1}\Big),(16)\\\hat{\hat{\hat{e}}}_{ij}^{\ell+1}=\quad W_{e,2}^{\ell}\mathrm{ReLU}(W_{e,1}^{\ell}\hat{\hat{e}}_{ij}^{\ell+1}),(17)\\e_{ij}^{\ell+1}=\quad\mathrm{Norm}\Big(\hat{\hat{e}}_{ij}^{\ell+1}+\hat{\hat{\hat{e}}}_{ij}^{\ell+1}\Big),(18) e^^ij+1=Norm(eij+e^ij+1),(16)e^^^ij+1=We,2ReLU(We,1e^^ij+1),(17)eij+1=Norm(e^^ij+1+e^^^ij+1),(18)

  • W e , 1 ℓ , ∈ R 2 d × d , W e , 2 ℓ , ∈ R d × 2 d W_{e,1}^{\ell},\in \mathbb{R}^{2d\times d},W_{e,2}^{\ell},\in \mathbb{R}^{d\times2d} We,1,R2d×d,We,2,Rd×2d

基于任务的 MLP 层

在 Graph Transformer 最后一层获得的节点表示被传递到基于任务的 MLP 网络,用于计算与任务相关的输出,然后将其馈送到损失函数以训练模型的参数

4 实验

为了评估提出的模型的性能,在ZINC,PATTERN,CLUSTER这三个数据集实验。

  • ZINC, Graph Regression:分子数据集,node代表分子,edge代表分子之间的键。键之间有丰富的特征信息,所以用第二个模型。
  • PATTERN,Node Classification:任务是把nodes分成两个communities,没有明确的edge信息,所以用第一个模型。
  • CLUSTER, Node Classification:任务是为每个node分配cluster,一共有6个cluster,用第一个模型。

模型的配置:使用PyTorch,DGL。一共有10层Graph Transformer layers,每层有8个attention head和随机隐藏单元,学习率递减策略,当学习率达到 1 0 − 6 10^{-6} 106就停止训练。使用 4 种不同的种子进行每个实验,并报告 4 次运行的平均值和平均性能测量值。
表1如下:

  • GraphTransformer (GT) 在所有数据集上的结果。 ZINC 的性能测量是 MAE,PATTERN 和 CLUSTER的性能测量是 Acc。 结果(除了 ZINC 之外,所有结果都越高越好)是使用 4 种不同种子进行 4 次运行的平均值。
  • 粗体:每个数据集表现最佳的模型。
  • 使用给定的图(稀疏图)和(完整图)执行每个实验,其中完整图在所有节点之间创建完全连接;对于 ZINC 全图,边特征被丢弃。
    在这里插入图片描述
    表2如下所示:
    每个数据集上的最佳表现分数(来自表 1)与 GNN baselines的比较
    在这里插入图片描述
    实验结论如下:
  • 由表1可知,带有PE和BN的模型实验数据更好。
  • 由表2可知,提出的模型明显比GCN和GTN要好,但没有GatedGCN好。
  • 提出的第二个模型的性能在ZINC上近似于GatedGCN。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/880293.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++:日期类的实现

目录 一、前言 二、头文件 三、各个函数的实现 打印、检查日期及获取日期 、、-、-、 、<、<、>、>、 &#xff01; 日期-日期 >>、<< 一、前言 前面几篇讲了关于类和对象的一些知识&#xff0c;本篇就来实现一下前面用到的日期类。 二、头文…

市面第一款 C++ 版本的U盘装机软件(即将上线)

市面大部分U盘装机软件&#xff0c;都是采用Au3脚本开发&#xff0c;而且有各种捆绑&#xff0c;闲来无聊&#xff0c;采用Qt C制作一款CU盘装机软件&#xff0c;从此告别Au3脚本&#xff0c;各种炫酷界面随便换&#xff0c;敬请期待 另外两个界面暂时不公布&#xff0c;防止Au…

uni-app页面调用接口和路由(四)

文章目录 一、路由二、页面调用接口二、路由跳转1.uni.navigateTo(OBJECT)2.uni.redirectTo(OBJECT)3.uni.reLaunch(OBJECT)4.uni.switchTab(OBJECT)5.uni.navigateBack(OBJECT) 总结 一、路由 路由配置 uni-app页面路由为框架统一管理&#xff0c;开发者需要在pages.json里配…

Linux —— Socket编程(一)

一、本篇重点 1. 认识IP地址、端口号、网络字节序等网络编程中的基本概念 2. 学习Socket api的基本用法 3. 能够实现一个简单的udp客户端/服务器 二、基本概念 1. 理解源IP地址和目的IP地址 简单的理解&#xff0c;IP地址是用于标识一台机器的&#xff0c;我们通过IP地址去…

Springboot常见问题(bean找不到)

如图错误显示userMapper bean没有找到。 解决方案&#xff1a; mapper包位置有问题&#xff1a;因为SpringBoot默认的包扫描机制会扫描启动类所在的包同级文件和子包下的文件。注解问题&#xff1a; 比如没有加mapper注解 然而无论是UserMapper所在的包位置还是Mapper注解都是…

大数据Hologres(一):Hologres 简单介绍

文章目录 Hologres 简单介绍 一、什么是实时数仓 Hologres 二、产品优势 1、专注实时场景 2、亚秒级交互式分析 3、统一数据服务出口 4、开放生态 5、MaxCompute查询加速 6、计算存储分离架构 三、应用场景 搭建实时数仓 四、产品架构 1、Shared Disk/Storage &am…

ER 图 Entity-Relationship (ER) diagram 101 电子商城 数据库设计

起因&#xff0c; 目的: 客户需求, 就是要设计一个数据库。 过程&#xff0c; 关于工具: UI 设计&#xff0c;我最喜欢的工具其实是 Canva, 但是 Canva 没有合适的模板。我用的是 draw.io, 使用感受是&#xff0c;很垃圾。 各种快捷键不适应&#xff0c;箭头就是点不住&…

OpenCV4.8 开发实战系列专栏之 01- 环境搭建与图像读写

大家好&#xff0c;欢迎大家学习OpenCV4.8 开发实战专栏&#xff0c;长期更新&#xff0c;不断分享源码。 专栏代码全部基于C 与Python双语演示&#xff0c;专栏答疑群 请联系微信 OpenCVXueTang_Asst 本文关键知识点&#xff1a; 开发环境搭建、读取图像与显示图像,读取图像…

【笔记篇】一篇文章搞定Spring框架

文章目录 前言一、Spring框架的优势 二、 Spring的使用流程Spring的依赖注入bean后处理器容器后处理器FileSystemResource类Spring的AOP机制AOP基础知识AOP应用案例Spring的事务管理事务控制参数事务的隔离级别 总结 前言 学习完了Spring框架&#xff0c;总结回顾一下。 一、…

使用vite+react+ts+Ant Design开发后台管理项目(三)

前言 本文将引导开发者从零基础开始&#xff0c;运用vite、react、react-router、react-redux、Ant Design、less、tailwindcss、axios等前沿技术栈&#xff0c;构建一个高效、响应式的后台管理系统。通过详细的步骤和实践指导&#xff0c;文章旨在为开发者揭示如何利用这些技术…

工程师 - Windows下打开PowerShell和CMD Prompt的若干方法

打开PowerShell 在Windows中&#xff0c;你可以通过以下几种方式来打开PowerShell&#xff1a; 1. 开始菜单&#xff08;Start Menu&#xff09;&#xff1a;点击“开始”按钮&#xff0c;然后在搜索栏中输入“PowerShell”。在搜索结果中&#xff0c;选择“Windows PowerShell…

夹耳式蓝牙耳机哪个牌子最好?夹耳式耳机推荐性价比排行榜

耳夹式耳机既不堵耳孔、也不需要包覆耳廓&#xff0c;佩戴时看起来更像是一个“耳环”&#xff0c;固定方式也类似“夹耳朵”。不过&#xff0c;它并不是真的夹住了耳朵肉&#xff0c;而是半夹、半挂——依靠耳廓边缘厚、里面薄&#xff0c;且有一定的弯折面的特殊构造&#xf…

网络层协议 —— IP协议

目录 0.前言 1.IP协议的格式 2.IP地址 2.1IP地址的划分 国际间IP地址的划分 公有IP 私有IP 特殊的IP地址 国内IP地址的划分 2.2IP地址不足问题 2.3IP地址的功能 2.4如何使用IP地址 2.5IP地址的构成 3.网段划分 以前的方案 现在的方案 4.认识宏观网络 5.路由 …

边缘智能-大模型架构初探

R2Cloud接口 机器人注册 请求和应答 注册是一个简单的 HTTP 接口&#xff0c;根据机器人/用户信息注册&#xff0c;创建一个新机器人。 请求 URL URLhttp://ip/robot/regTypePOSTHTTP Version1.1Content-Typeapplication/json 请求参数 Param含义Rule是否必须缺省roboti…

[vulnhub] Hackademic.RTB1

第一次打靶机&#xff0c;思路看的红队笔记 https://www.vulnhub.com/entry/hackademic-rtb1,17/ 环境&#xff1a;kali Linux - 192.168.75.131&#xff0c;靶机 - 192.168.75.132 主机发现和端口扫描 扫描整个网络有哪台机子在线&#xff0c;不进行端口扫描 nmap -sP 192.16…

竹云赋能“中国·贵州”全省统一移动应用平台建设,打造政务服务“新引擎”

近日&#xff0c;2024中国国际大数据产业博览会在贵州贵阳圆满落幕。会上&#xff0c;由贵州省政府办公厅牵头建设的“中国贵州”全省统一移动应用平台正式发布&#xff0c;聚焦民生办事、政务公开、政民互动、扁平高效、数据赋能五大模块&#xff0c;旨在打造公平普惠的服务平…

【2020工业图像异常检测文献】PaDiM

PaDiM: a Patch Distribution Modeling Framework for Anomaly Detection and Localization 1、Background 在单类学习&#xff08;仅使用正常数据&#xff08;即“单一类”&#xff09;来训练模型&#xff09;环境中的异常检测和定位任务方法中&#xff0c;要么需要深度神经网…

ubuntu 安装minikube,并拉取k8s镜像

虚拟机是vmware17, 系统是ubuntu20.4&#xff0c; minikube是1.23.1&#xff0c; docker是24.0.7&#xff0c; 为什么要装minikube&#xff0c;通常k8s集群是要3台机子以上&#xff0c;而通过minikube&#xff0c;可以在一台机子上搭建出k8s集群&#xff0c;minikube采用的是D…

【深入学习Redis丨第六篇】Redis哨兵模式与操作详解

〇、前言 哨兵是一个分布式系统&#xff0c;你可以在一个架构中运行多个哨兵进程&#xff0c;这些进程使用流言协议来接收关于Master主服务器是否下线的信息&#xff0c;并使用投票协议来决定是否执行自动故障迁移&#xff0c;以及选择哪个Slave作为新的Master。 文章目录 〇、…

【环境踩坑系列】centos7安装python3.10.X

前言 虽然centOS8已经发布了相当一段时间了&#xff0c;但是基于稳定性、成熟的社区等原因&#xff0c;大家在选择centOS作为服务器操作系统的时候仍然会选择centOS7作为首选。但是centOS7自带的是python2.7.5&#xff0c;当前大量的python程序要用到的又是python3&#xff0c…