Node2Vec论文翻译

news2024/11/23 22:44:20

node2vec: Scalable Feature Learning for Networks

node2vec:可扩展的网络特征学习

ABSTRACT

网络中节点和边缘的预测任务需要在学习算法使用的工程特征上付出仔细的努力。最近在更广泛的表示学习领域的研究通过学习特征本身在自动化预测方面取得了重大进展。然而,目前的特征学习方法的表现力不足以捕获网络中观察到的连接模式的多样性。

在这里,我们提出了node2vec,一种用于学习网络中节点的连续特征表示的算法框架。在node2vec中,我们学习节点到低维特征空间的映射,最大化保留节点网络邻域的可能性。我们定义了节点网络邻居的灵活概念,并设计了一个有偏差的随机游走程序,可以有效地探索不同的邻居。我们的算法概括了基于网络邻域的严格概念的先前工作,并且我们认为探索邻域的灵活性是学习更丰富的表示的关键。

我们证明了 node2vec 相对于现有最先进技术在来自不同领域的几个现实世界网络中的多标签分类和链接预测方面的功效。总而言之,我们的工作代表了一种在复杂网络中有效学习最先进的任务独立表示的新方法。

网络分析中的许多重要任务涉及节点和边的预测。在典型的节点分类任务中,我们感兴趣的是预测网络中节点最可能的标签。例如,在社交网络中,我们可能对预测用户的兴趣感兴趣,或者在蛋白质-蛋白质相互作用网络中,我们可能对预测蛋白质的功能标签感兴趣。类似地,在链接预测中,我们希望预测网络中的一对节点是否应该有一条边连接它们。链接预测在很多领域都很有用。例如,在基因组学中,它可以帮助我们发现基因之间的新颖相互作用,在社交网络中,它可以识别现实世界的朋友 。

任何有监督的机器学习算法都需要一组信息丰富、具有区分性且独立的特征。在网络的预测问题中,这意味着必须为节点和边构建特征向量表示。典型的解决方案涉及基于专家知识手工设计特定领域的功能。即使人们不考虑特征工程所需的繁琐工作,这些特征通常是针对特定任务而设计的,并且不能泛化到不同的预测任务。

另一种方法是通过解决优化问题来学习特征表示。特征学习的挑战是定义目标函数,其中涉及平衡计算效率和预测准确性的权衡。一方面,人们可以直接寻找一种能够优化下游预测任务性能的特征表示。虽然这种监督过程具有良好的准确性,但由于需要估计的参数数量激增,它的代价是训练时间复杂度很高。在另一个极端,目标函数可以定义为独立于下游预测任务,并且可以以纯粹无监督的方式学习表示。这使得优化的计算效率很高,并且通过精心设计的目标,它会产生与任务无关的特征,这些特征在预测准确性方面与特定于任务的方法紧密匹配。

然而,当前的技术无法令人满意地定义和优化网络中可扩展的无监督特征学习所需的合理目标。基于线性和非线性降维技术(例如主成分分析、多维缩放及其扩展)的经典方法优化了一个目标,该目标转换网络的代表性数据矩阵,使其最大化,数据表示的方差。因此,这些方法总是涉及适当数据矩阵的特征分解,这对于大型现实世界网络来说是昂贵的。此外,由此产生的潜在表示在网络上的各种预测任务上表现不佳。

或者,我们可以设计一个目标来保护节点的局部邻域。可以使用类似于单个隐藏层前馈神经网络上的反向传播的随机梯度下降 (SGD) 来有效优化目标。最近在这个方向上的尝试提出了有效的算法,但依赖于网络邻居的严格概念,这导致这些方法在很大程度上对网络特有的连接模式不敏感。具体来说,网络中的节点可以根据它们所属的社区进行组织(即同质性);在其他情况下,组织可以基于网络中节点的结构角色(即结构等效性)。例如,在图 1 中,我们观察到节点 u u u s 1 s_1 s1 属于同一个紧密结合的节点社区,而两个不同社区中的节点 u u u s 6 s_6 s6 共享相同的中心节点结构角色。现实世界的网络通常表现出这些等价物的混合。因此,必须允许一种灵活的算法来学习遵循两个原则的节点表示:能够学习将来自同一网络社区的节点紧密嵌入在一起的表示,以及学习共享相似角色的节点具有相似嵌入的表示。这将使特征学习算法能够泛化到各种领域和预测任务。

Image

现在的工作。 我们提出了node2vec,一种用于网络中可扩展特征学习的半监督算法。受先前自然语言处理工作的启发,我们使用 SGD 优化了基于图形的自定义目标函数。直观上,我们的方法返回的特征表示最大限度地保留了 d d d 维特征空间中节点的网络邻域的可能性。我们使用二阶随机游走方法来生成节点的(样本)网络邻域。

我们的主要贡献是定义了节点网络邻居的灵活概念。通过选择适当的邻域概念,node2vec 可以学习根据节点的网络角色和/或所属社区来组织节点的表示。我们通过开发一系列有偏随机游走来实现这一目标,这些游走可以有效地探索给定节点的不同邻域。由此产生的算法是灵活的,使我们能够通过可调参数来控制搜索空间,这与之前的工作中严格的搜索过程不同。因此,我们的方法概括了先前的工作,并且可以对网络中观察到的所有等价物进行建模。控制我们的搜索策略的参数具有直观的解释,并使行走偏向不同的网络探索策略。这些参数也可以以半监督的方式使用一小部分标记数据直接学习。

我们还展示了如何将单个节点的特征表示扩展到节点对(即边)。为了生成边缘的特征表示,我们使用简单的二元运算符组合各个节点的学习特征表示。这种组合性使 node2vec 能够完成涉及节点和边的预测任务。

我们的实验重点关注网络中的两个常见预测任务:多标签分类任务,其中每个节点都被分配一个或多个类标签;以及链接预测任务,我们在给定一对节点的情况下预测边缘的存在。我们将 node2vec 的性能与最先进的特征学习算法进行了对比。我们对来自不同领域的几个现实世界网络进行了实验,例如社交网络、信息网络以及系统生物学网络。实验表明,node2vec 在多标签分类方面优于最先进的方法高达 26.7%,在链接预测方面优于最先进的方法高达 12.6%。即使使用 10% 的标记数据,该算法也显示出具有竞争力的性能,并且对于噪声或缺失边缘形式的扰动也具有鲁棒性。从计算角度来看,node2vec 的主要阶段是可以并行化的,并且可以在几个小时内扩展到具有数百万个节点的大型网络。

总的来说,我们的论文做出了以下贡献:

  1. 我们提出了node2vec,一种用于网络中特征学习的高效可扩展算法,它使用 SGD 有效地优化新颖的网络感知、邻域保留目标。
  2. 我们展示了node2vec如何符合网络科学的既定原则,为发现符合不同等价的表示提供了灵活性。
  3. 我们基于邻域保留目标扩展了 node2vec 和其他特征学习方法,从节点扩展到基于边缘的预测任务的节点对。
  4. 我们根据经验评估了 node2vec 在多个真实数据集上的多标签分类和链接预测。

本文的其余部分的结构如下。在第2节中,我们简要回顾了网络特征学习的相关工作。我们在第 3 节中介绍了使用 node2vec 进行特征学习的技术细节。在第 4 节中,我们根据经验评估了 node2vec 在各种现实世界网络上的节点和边缘上的预测任务,并评估了我们算法的参数敏感性、扰动分析和可扩展性方面。我们最后讨论了 node2vec 框架,并在第 5 节中强调了未来工作的一些有前景的方向。node2vec 的数据集和参考实现可在项目页面上找到:http://snap.stanford.edu/node2vec.

2. RELATED WORK

机器学习社区在不同的主题下对特征工程进行了广泛的研究。在网络中,为节点生成特征的传统范例是基于特征提取技术,该技术通常涉及一些基于网络属性的手工制作的种子特征。相反,我们的目标是通过将特征提取作为表示学习问题来自动化整个过程,在这种情况下我们不需要任何手工设计的特征。

无监督特征学习方法通常利用图的各种矩阵表示的谱特性,特别是拉普拉斯矩阵和邻接矩阵。从线性代数的角度来看,这些方法可以被视为降维技术。已经提出了几种线性(例如,PCA)和非线性(例如,IsoMap)降维技术。这些方法都存在计算和统计性能缺陷。就计算效率而言,数据矩阵的特征分解是昂贵的,除非解的质量受到近似的显着影响,因此,这些方法很难扩展到大型网络。其次,这些方法针对对网络中观察到的不同模式(例如同质性和结构等价性)不稳健的目标进行优化,并对底层网络结构和预测任务之间的关系做出假设。例如,谱聚类做出了强同质性假设,即图割对于分类很有用。这样的假设在许多情况下都是合理的,但在跨不同网络的有效泛化方面却不能令人满意。

自然语言处理表征学习的最新进展为离散对象(例如单词)的特征学习开辟了新的方法。特别是,Skip-gram 模型旨在通过优化邻域保留似然目标来学习单词的连续特征表示。该算法的流程如下:它扫描文档的单词,并针对每个单词嵌入它,以便该单词的特征可以预测附近的单词(即某个上下文窗口内的单词)。单词特征表示是通过使用带有负采样的 SGD 优化似然目标来学习的。 Skip-gram 目标基于分布假设,该假设指出相似上下文中的单词往往具有相似的含义。也就是说,相似的词往往出现在相似的词邻域中。

受 Skip-gram 模型的启发,最近的研究通过将网络表示为“文档”来建立网络的类比。与文档是有序的单词序列一样,我们可以从底层网络中采样节点序列,并将网络转换为有序的节点序列。然而,节点有多种可能的采样策略,从而导致不同的学习特征表示。事实上,正如我们将要展示的,不存在适用于所有网络和所有预测任务的明确的获胜采样策略。这是先前工作的一个主要缺点,它无法提供从网络中采样节点的任何灵活性。我们的算法node2vec通过设计一个灵活的目标克服了这个限制,该目标不依赖于特定的采样策略,并提供参数来调整探索的搜索空间(参见第3节)。

最后,对于基于节点和边缘的预测任务,最近有大量基于现有和新颖的图特定深度网络架构的监督特征学习工作。这些架构使用多层非线性变换直接最小化下游预测任务的损失函数,从而获得高精度,但由于训练时间要求高而以可扩展性为代价。

3. FEATURE LEARNING FRAMEWORK

我们将网络中的特征学习表述为最大似然优化问题。令 G = ( V , E ) G = (V, E) G=(V,E) 为给定网络。我们的分析是通用的,适用于任何(无)定向、(无)加权网络。令 f : V → R d f:V\to\mathbb{R}^{d} f:VRd为从节点到我们旨在为下游预测任务学习的特征表示的映射函数。这里 d d d 是一个参数,指定特征表示的维数。等价地, f f f 是大小为 ∣ V ∣ × d |V|\times d V×d 的矩阵。对于每个源节点 u ∈ V u \in V uV,我们将 N S ( u ) ⊂ V N_{S}(u)\subset V NS(u)V定义为通过邻域采样策略 S S S 生成的节点 u u u 的网络邻域。

我们继续将 Skip-gram 架构扩展到网络。我们寻求优化以下目标函数,该函数最大化观察节点 u u u 的网络邻域 N S ( u ) N_{S}(u) NS(u) 的对数概率,该节点 u u u 以其特征表示为条件,由 f f f 给出:

max ⁡ f ∑ u ∈ V log ⁡ P r ( N S ( u ) ∣ f ( u ) ) . ( 1 ) \max_{f}\sum_{u\in V}\log Pr(N_{S}(u)|f(u)).\quad(1) fmaxuVlogPr(NS(u)f(u)).(1)

为了使优化问题易于处理,我们做出两个标准假设:

  • 有条件的独立。我们通过假设观察邻域节点的可能性独立于观察给定源的特征表示的任何其他邻域节点来分解可能性:

P r ( N S ( u ) ∣ f ( u ) ) = ∏ n i ∈ N S ( u ) P r ( n i ∣ f ( u ) ) . Pr(N_S(u)|f(u))=\prod_{n_i\in N_S(u)}Pr(n_i|f(u)). Pr(NS(u)f(u))=niNS(u)Pr(nif(u)).

  • 特征空间的对称性。源节点和邻域节点在特征空间中彼此具有对称效应。因此,我们将每个源邻域节点对的条件似然建模为由其特征的点积参数化的 softmax 单元:

P r ( n i ∣ f ( u ) ) = exp ⁡ ( f ( n i ) ⋅ f ( u ) ) ∑ v ∈ V exp ⁡ ( f ( v ) ⋅ f ( u ) ) . Pr(n_i|f(u))=\frac{\exp(f(n_i)\cdot f(u))}{\sum_{v\in V}\exp(f(v)\cdot f(u))}. Pr(nif(u))=vVexp(f(v)f(u))exp(f(ni)f(u)).

有了上述假设,方程1中的目标简化为:

max ⁡ f ∑ u ∈ V [ − log ⁡ Z u + ∑ n i ∈ N S ( u ) f ( n i ) ⋅ f ( u ) ] . ( 2 ) \max_f\sum_{u\in V}\bigg[-\log Z_u+\sum_{n_i\in N_S(u)}f(n_i)\cdot f(u)\bigg].\quad(2) fmaxuV[logZu+niNS(u)f(ni)f(u)].(2)

每个节点的划分函数 Z u = ∑ v ∈ V exp ⁡ ( f ( u ) ⋅ f ( v ) ) Z_{u}=\sum_{v\in V}\exp(f(u)\cdot f(v)) Zu=vVexp(f(u)f(v))对于大型网络来说计算起来很昂贵,我们使用负采样来近似它。我们优化方程2在定义特征 f f f的模型参数上使用随机梯度上升。

基于 Skip-gram 架构的特征学习方法最初是在自然语言背景下开发的。考虑到文本的线性性质,可以使用连续单词上的滑动窗口自然地定义邻域的概念。然而,网络不是线性的,因此需要更丰富的邻域概念。为了解决这个问题,我们提出了一种随机过程,对给定源节点 u u u 的许多不同邻域进行采样。邻域 N S ( u ) N_{S}(u) NS(u) 不仅限于直接邻居,而且可以具有截然不同的结构,具体取决于采样策略 S S S

3.1 Classic search strategies

我们将源节点的邻域采样问题视为局部搜索的一种形式。图 1 显示了一个图,其中给定源节点 u u u,我们的目标是生成(采样)其邻域 N S ( u ) N_S(u) NS(u)。重要的是,为了能够公平地比较不同的采样策略 S S S,我们应将邻域集 N S N_S NS 的大小限制为 k k k 个节点,然后对单个节点 u u u 采样多个集合。一般来说,生成 k k k 个节点的邻域集 N S N_S NS 有两种极端采样策略:

  • 广度优先采样(BFS)邻域 N S N_S NS 仅限于与源直接相邻的节点。例如,在图 1 中,对于大小 k = 3 k = 3 k=3 的邻域,BFS 对节点 s 1 , s 2 , s 3 s_1,s_2,s_3 s1,s2,s3 进行采样。
  • 深度优先采样(DFS)邻域由以距源节点的距离逐渐增加的方式顺序采样的节点组成。在图 1 中,DFS对 s 4 , s 5 , s 6 s_4,s_5,s_6 s4,s5,s6 进行采样。

广度优先和深度优先采样代表了他们探索的搜索空间方面的极端场景,从而对学习的表示产生了有趣的影响。

特别是,网络中节点的预测任务经常在两种相似性之间穿梭:同质性和结构等价性。根据同质性假设 ,高度互连且属于相似网络集群或社区的节点应该紧密嵌入在一起(例如,图 1 中的节点 s 1 s_1 s1 u u u 属于同一网络社区)。相反,根据结构等价假设,在网络中具有相似结构作用的节点应该紧密地嵌入在一起(例如,图1中的节点 u u u s 6 s_6 s6充当其相应社区的中心)。重要的是,与同质性不同,结构等价并不强调连通性;而是强调连通性。网络中的节点可以相距很远,但仍然具有相同的结构作用。在现实世界中,这些等价概念并不是排他性的;网络通常表现出两种行为,其中一些节点表现出同质性,而另一些则反映结构等效性。

我们观察到 BFS 和 DFS 策略在生成反映上述任一等价性的表示方面发挥着关键作用。特别是,BFS 采样的邻域导致与结构等价密切对应的嵌入。直观地,我们注意到,为了确定结构等效性,准确地描述当地社区通常就足够了。例如,基于网络角色(例如桥梁和枢纽)的结构等价性可以通过观察每个节点的直接邻居来推断。通过将搜索限制在附近的节点,BFS 实现了这种表征并获得每个节点邻域的微观视图。此外,在 BFS 中,采样邻域中的节点往往会重复多次。这也很重要,因为它减少了表征 1 跳节点相对于源节点的分布的方差。然而,对于任何给定的 k k k,只探索了该图的一小部分。

DFS则相反,它可以探索网络的更大部分,因为它可以进一步远离源节点 u u u(样本大小 k k k是固定的)。在DFS中,采样的节点更准确地反映了一个宏观的观点,这是必不可少的基于同质性的社区推断的邻居。然而,DFS的问题是,不仅要推断网络中存在哪些节点到节点的依赖关系,而且要描述这些依赖关系的确切性质。这很难,因为我们对样本大小有限制,并且要探索的邻域很大,导致方差很高。其次,移动到更大的深度会导致复杂的依赖关系,因为采样的节点可能远离源并且可能不太具有代表性。

Image

3.2 node2vec

基于上述观察,我们设计了一种灵活的邻域采样策略,使我们能够在 BFS 和 DFS 之间平滑插值。我们通过开发一种灵活的有偏随机游走程序来实现这一目标,该程序可以以 BFS 和 DFS 方式探索邻域。

3.2.1 Random Walks 随机游走

形式上,给定源节点 u u u,我们模拟固定长度 l l l 的随机游走。让 c i c_i ci 表示遍历中的第 i i i 个节点,从 c 0 = u c_0 = u c0=u 开始。节点 c i c_i ci 由以下分布生成:

P ( c i = x ∣ c i − 1 = v ) = { π v x Z if ( v , x ) ∈ E 0 otherwise P(c_i=x\mid c_{i-1}=v)=\begin{cases}\frac{\pi_{vx}}{Z}&\text{if} (v,x)\in E\\0&\text{otherwise}\end{cases} P(ci=xci1=v)={Zπvx0if(v,x)Eotherwise

其中 π v x \pi_{vx} πvx 是节点 v v v x x x 之间的非归一化转移概率, Z Z Z 是归一化常数。

3.2.2 Search bias α 搜索偏差 α \alpha α

偏置随机游走的最简单方法是根据静态边权重 w v x w_{vx} wvx 对下一个节点进行采样,即 π v x = w v x \pi_{vx}=w_{vx} πvx=wvx(在未加权图 w v x = 1 w_{vx} = 1 wvx=1 的情况下)然而,这不允许我们解释网络结构并指导我们的搜索过程来探索不同类型的网络邻居。此外,与分别适合结构等价和同质性的极端采样范式 BFS 和 DFS 不同,我们的随机游走应该适应这样一个事实:这些等价概念不是竞争性的或排他性的,并且现实世界的网络通常表现出两者的混合。

我们使用两个参数 p p p q q q 来定义二阶随机游走,这两个参数 p p p q q q 引导游走:考虑一个刚刚穿过边 ( t , v ) (t, v) (t,v) 且现在位于节点 v v v 的随机游走(图 2)。现在,步行需要决定下一步,以便评估从 v v v 开始的边 ( v , x ) (v, x) (v,x) 上的转移概率 π v x π_{vx} πvx。我们将非归一化转移概率设置为 π v x = α p q ( t , x ) ⋅ w v x \pi_{vx}=\alpha_{pq}(t,x)\cdot w_{vx} πvx=αpq(t,x)wvx,其中

α p q ( t , x ) = { 1 p if d t x = 0 1 if d t x = 1 1 q if d t x = 2 \alpha_{pq}(t,x)=\begin{cases}\frac{1}{p}&\text{if}d_{tx}=0\\1&\text{if}d_{tx}=1\\\frac{1}{q}&\text{if}d_{tx}=2\end{cases} αpq(t,x)= p11q1ifdtx=0ifdtx=1ifdtx=2

d t x d_{tx} dtx表示节点 t t t x x x 之间的最短路径距离。请注意, d t x d_{tx} dtx 必须是 { 0 , 1 , 2 } \{0, 1, 2\} {0,1,2} 之一,因此,这两个参数对于引导行走来说是必要且充分的。

直观上,参数 p p p q q q 控制步行探索和离开起始节点 u u u 邻域的速度。 特别是,这些参数允许我们的搜索过程(近似)在 BFS 和 DFS 之间进行插值,从而反映不同节点等价概念的亲和力。

返回参数, p p p 参数 p p p 控制立即重新访问步行中的节点的可能性。将其设置为较高的值 ( > m a x ( q , 1 ) > max(q, 1) >max(q,1)) 可确保我们不太可能在接下来的两个步骤中对已访问过的节点进行采样(除非遍历中的下一个节点没有其他邻居)。该策略鼓励适度探索并避免采样中的 2 跳冗余。另一方面,如果 p 较低 ( < m i n ( q , 1 ) < min(q, 1) <min(q,1)),则会导致步行回溯一步(图 2),这将使步行保持“本地”靠近起始节点 u u u

Image

输入输出参数, q q q 参数 q q q 允许搜索区分“向内”和“向外”节点。回到图 2,如果 q > 1 q > 1 q>1,则随机游走偏向靠近节点 t t t 的节点。这样的游走获得了相对于游走中的起始节点的底层图的局部视图,并在我们的样本由小局部区域内的节点组成的意义上近似 BFS 行为。

相反,如果 q < 1 q < 1 q<1,则步行更倾向于访问距离节点 t t t 较远的节点。这种行为反映了DFS鼓励向外探索的精神。然而,这里的一个本质区别是我们在随机游走框架内实现了类似 DFS 的探索。因此,采样节点与给定源节点 u u u 的距离并不是严格增加的,但反过来,我们受益于易于处理的预处理和随机游走的卓越采样效率。请注意,通过将 π v , x π_{v,x} πv,x 设置为游走 t t t 中前一个节点的函数,随机游走是二阶马尔可夫。

随机游走的好处。 与纯 BFS/DFS 方法相比,随机游走有几个好处。就空间和时间要求而言,随机游走在计算上是高效的。存储图中每个节点的直接邻居的空间复杂度为 O ( ∣ E ∣ ) O(|E|) O(E)。对于二阶随机游走,存储每个节点的邻居之间的互连是有帮助的,这会导致 O ( a 2 ∣ V ∣ ) O(a^2|V|) O(a2V) 的空间复杂度,其中 a a a 是图的平均度,对于现实世界的网络来说通常很小。与经典的基于搜索的采样策略相比,随机游走的另一个关键优势是其时间复杂度。特别是,通过在样本生成过程中施加图连接性,随机游走提供了一种方便的机制,可以通过在不同源节点之间重用样本来提高有效采样率。

通过模拟长度 l > k l > k l>k 的随机游走,由于随机游走的马尔可夫性质,我们可以立即为 l − k l − k lk 个节点生成 k k k 个样本。因此,每个样本的有效复杂度为 O ( l k ( l − k ) ) O(\frac l{k(l-k)}) O(k(lk)l)。例如,在图 1 中,我们对长度 l = 6 l = 6 l=6 的随机游走 { u , s 4 , s 5 , s 6 , s 8 , s 9 } \{u,s_4,s_5,s_6,s_8,s_9\} {u,s4,s5,s6,s8,s9}进行采样,结果为 N S ( u ) = { s 4 , s 5 , s 6 } , N S ( s 4 ) = { s 5 , s 6 , s 8 } N_{S}(u)=\{s_{4},s_{5},s_{6}\}, N_{S}(s_{4}) = \{s_{5},s_{6},s_{8}\} NS(u)={s4,s5,s6},NS(s4)={s5,s6,s8} N S ( s 5 ) = { s 6 , s 8 , s 9 } N_S(s_5) = \{s_6, s_8, s_9\} NS(s5)={s6,s8,s9}。请注意,样本重复使用可能会在整个过程中引入一些偏差。但我们发现它大大提高了效率。

Image

3.2.3 The node2vec algorithm

算法 1 中给出了 node2vec 的伪代码。在任何随机游走中,由于起始节点 u u u 的选择,都会存在隐式偏差。由于我们学习所有节点的表示,因此我们通过从每个节点开始模拟 r r r 个固定长度 l l l 的随机游走来抵消这种偏差。在行走的每一步,采样都是基于转移概率 π v x π_{vx} πvx 进行的。可以预先计算二阶马尔可夫链的转移概率 π v x π_{vx} πvx,因此,可以使用别名采样在 O ( 1 ) O(1) O(1) 时间内有效地在模拟随机游走时完成节点采样。 node2vec 的三个阶段,即计算转移概率的预处理、随机游走模拟和使用 SGD 的优化,是按顺序执行的。每个阶段都是可并行的并异步执行,有助于提高node2vec的整体可扩展性。

node2vec可以在http://snap.stanford.edu/node2vec获取。

Image

3.3 Learning edge features 学习边缘特征

node2vec 算法提供了一种半监督方法来学习网络中节点的丰富特征表示。然而,我们通常对涉及节点对而不是单个节点的预测任务感兴趣。例如,在链接预测中,我们预测网络中两个节点之间是否存在链接。由于我们的随机游走自然地基于底层网络中节点之间的连接结构,因此我们使用对各个节点的特征表示的引导方法将它们扩展到节点对。

给定两个节点 u u u v v v,我们在相应的特征向量 f ( u ) f(u) f(u) f ( v ) f(v) f(v) 上定义一个二元运算符 o \text{o} o,以生成表示 g ( u , v ) g(u, v) g(u,v),使得 g : V × V → R d ′ g: V\times V \to \mathbb{R}^{d^{\prime}} g:V×VRd 其中 d ′ d\prime d ( u , v ) (u, v) (u,v) 对的表示大小。我们希望我们的运算符通常为任何一对节点定义,即使该对之间不存在边,因为这样做使得表示对于链接预测有用,其中我们的测试集包含真边和假边(即不存在)。我们考虑了算子 o \text{o} o 的几种选择,使得 d ′ = d d\prime = d d=d,如表 1 所示。

Image

4. EXPERIMENTS

公式2中的目标独立于任何下游任务,node2vec 提供的探索灵活性将学习到的特征表示提供给下面讨论的各种网络分析设置。

4.1 Case Study: Les Misérables network 案例研究:《悲惨世界》网络

在第 3.1 节中,我们观察到 BFS 和 DFS 策略代表了基于同质性(即网络社区)和结构等效(即节点的结构角色)原则的嵌入节点范围的极端。我们现在的目标是凭经验证明这一事实,并证明 node2vec 实际上可以发现遵循这两个原则的嵌入。

我们使用一个网络,其中节点对应于小说《悲惨世界》中的角色,边连接共同出现的角色。该网络有 77 个节点和 254 个边。我们设置 d = 16 d = 16 d=16 并运行 node2vec 来学习网络中每个节点的特征表示。特征表示使用 kmeans 进行聚类。然后,我们在二维中可视化原始网络,节点现在根据其集群分配颜色。

图 3(上)显示了当我们设置 p = 1 , q = 0.5 p = 1, q = 0.5 p=1,q=0.5 时的示例。请注意网络区域(即网络社区)如何使用相同的颜色进行着色。在这种情况下,node2vec 发现在小说的主要次要情节中经常相互互动的人物集群/社区。由于字符之间的边缘是基于共现性的,因此我们可以得出结论,这种表征与同质性密切相关。

Image

为了发现哪些节点具有相同的结构角色,我们使用相同的网络,但设置 p = 1 , q = 2 p = 1, q = 2 p=1,q=2,使用 node2vec 获取节点特征,然后根据获得的特征对节点进行聚类。这里,node2vec 获得了节点到簇的互补分配,使得颜色对应于结构等价,如图 3(底部)所示。例如,node2vec 将蓝色节点紧密地嵌入在一起。这些节点代表充当小说不同子情节之间桥梁的角色。同样,黄色节点主要代表处于外围且交互有限的角色。人们可以为这些节点簇分配替代的语义解释,但关键的一点是,node2vec 并不依赖于特定的等价概念。正如我们通过实验表明的那样,这些等价概念通常出现在大多数现实世界的网络中,并对预测任务的学习表示的性能产生重大影响。

4.2 Experimental setup

我们的实验评估了通过 node2vec 在标准监督学习任务上获得的特征表示:节点的多标签分类和边缘的链接预测。对于这两个任务,我们根据以下特征学习算法评估了 node2vec 的性能:

  • 谱聚类(Spectral clustering):这是一种矩阵分解方法,其中我们将图 G 的归一化拉普拉斯矩阵的顶部特征向量作为节点的特征向量表示。
  • DeepWalk:该方法通过模拟均匀随机游走来学习 d d d 维特征表示。DeepWalk中的采样策略可以看作是 p = 1 p = 1 p=1 q = 1 q = 1 q=1的node2vec的特例。
  • LINE:该方法在两个单独的阶段学习 d d d 维特征表示。在第一阶段,它通过对节点的直接邻居进行 BFS 式模拟来学习 d / 2 d/2 d/2 维。在第二阶段,它通过严格在距源节点 2 跳距离处采样节点来学习下一个 d / 2 d/2 d/2 维度。

我们排除了其他已被证明不如 DeepWalk的矩阵分解方法。我们还排除了最近的方法 GraRep,该方法概括了 LINE 以合并来自超过 2 跳的网络邻居的信息,但无法有效地扩展到大型网络。

与之前用于评估基于采样的特征学习算法的设置相比,我们为每种方法生成相同数量的样本,然后评估在预测任务中获得的特征的质量。在此过程中,我们纯粹因为实现语言 (C/C++/Python) 而观察到性能提升,因为它对于算法来说是次要的。因此,在采样阶段,设置 DeepWalk、LINE 和 node2vec 的参数,以便它们在运行时生成相同数量的样本。例如,如果 K \mathcal K K是总体采样预算,则node2vec参数满足 K = r ⋅ l ⋅ ∣ V ∣ \mathcal{K}=r\cdot l\cdot|V| K=rlV。在优化阶段,所有这些基准测试都使用 SGD 进行优化,但我们纠正了两个关键差异。首先,DeepWalk 使用分层采样来近似 softmax 概率,其目标类似于 node2vec 使用的目标。然而,与负采样相比,分层 softmax 效率较低。因此,在保持其他一切不变的情况下,我们在 DeepWalk 中切换到负采样,这也是 node2vec 和 LINE 中事实上的近似。其次,node2vec 和 DeepWalk 都有一个用于优化的上下文邻域节点数量的参数,数量越大,需要的优化轮次就越多。对于 LINE,此参数设置为 unity,但由于 LINE 比其他方法更快地完成一个 epoch,因此我们让它运行 k k k 个 epoch。

node2vec 使用的参数设置与 DeepWalk 和 LINE 使用的典型值一致。具体来说,我们设置 d = 128 , r = 10 , l = 80 , k = 10 d = 128, r = 10, l = 80, k = 10 d=128,r=10,l=80,k=10,并且优化针对单个 epoch 运行。我们对 10 个随机种子初始化重复实验,我们的结果具有统计显着性, p p p 值小于 0.01。最好的输入输出和返回超参数是通过对 10% 标记数据进行 10 倍交叉验证来学习的,对 p , q ∈ { 0.25 , 0.50 , 1 , 2 , 4 } p, q \in \{0.25, 0.50, 1, 2, 4\} p,q{0.25,0.50,1,2,4} 进行网格搜索。

4.3 Multi-label classification

在多标签分类设置中,每个节点都被分配有限集 L \mathcal L L 中的一个或多个标签。在训练阶段,我们观察节点的某一部分及其所有标签。任务是预测剩余节点的标签。这是一项具有挑战性的任务,尤其是当 L \mathcal L L 很大时。我们利用以下数据集:

  • BlogCatalog:这是 BlogCatalog 网站上列出的博客作者的社交关系网络。这些标签代表通过博主提供的元数据推断出的博主兴趣。该网络有 10312个节点、333983个边和 39 个不同的标签。
  • Protein-Protein Interactions (PPI):我们使用智人 PPI 网络的子图。子图对应于由节点诱导的图,我们可以从标志基因集中获得标签并代表生物状态。该网络有 3890 个节点、76584 个边和 50 个不同的标签。
  • Wikipedia:这是出现在维基百科转储的前百万字节中的单词共现网络。这些标签代表使用斯坦福 POS-Tagger 推断的词性 (POS) 标签。该网络有 4777 个节点、184812 个边和 40 个不同的标签。

所有这些网络都表现出同质性和结构等价性的合理组合。例如,我们期望博客作者的社交网络表现出强烈的基于同质性的关系;然而,也可能存在一些“熟悉的陌生人”,即不互动但有共同兴趣的博主,因此在结构上是等效的节点。蛋白质-蛋白质相互作用网络中蛋白质的生物学状态也表现出两种类型的等价性。例如,当蛋白质执行与邻近蛋白质互补的功能时,它们表现出结构等效性,而在其他时候,它们基于同质性进行组织,以协助邻近蛋白质执行相似的功能。单词共现网络相当密集,因为维基百科语料库中 2 长度窗口中同时出现的单词之间存在边缘。因此,具有相同词性标签的单词并不难找到,同质性很高。同时,由于句法语法模式,例如限定词后面的名词、名词后面的标点符号等,我们期望词性标签中存在一些结构等效性。

实验结果。 节点特征表示被输入到具有 L 2 L2 L2 正则化的一对一逻辑回归分类器。训练数据和测试数据在 10 个随机实例中平均分配。我们使用 M a c r o − F 1 Macro-F_1 MacroF1 分数来比较表 2 中的性能,相对性能增益超过了最接近的基准。 M i c r o − F 1 Micro-F_1 MicroF1 和准确度的趋势相似,但未显示。

Image

从结果中,我们很明显可以看到,探索邻域时所增加的灵活性如何使 node2vec 的性能优于其他基准算法。在BlogCatalog中,我们可以通过将参数 p p p q q q 设置为较低值来发现同质性和结构等价性的正确组合,使我们在 M a c r o − F 1 Macro-F_1 MacroF1 分数上比 DeepWalk 提高 22.3%,比 LINE 提高 229.2%。LINE 显示出比预期更差的性能,这可以通过其无法重用样本来解释,而使用随机游走方法可以轻松完成这一壮举。即使在我们的其他两个网络中,我们存在等价物的混合,node2vec 的半监督性质也可以帮助我们推断特征学习所需的适当探索程度。在 PPI 网络的情况下,最佳探索策略( p = 4 , q = 1 p = 4, q = 1 p=4,q=1)与 DeepWalk 的均匀( p = 1 , q = 1 p = 1,q = 1 p=1,q=1)探索几乎没有区别,通过避免冗余,我们仅比 DeepWalk 略有优势,在已经访问过的节点中, p p p 值很高,但在 M a c r o − F 1 Macro-F_1 MacroF1 分数方面比 LINE 提高了 23.8%,令人信服。然而,一般来说,均匀随机游走可能比node2vec学习的探索策略差很多。正如我们在维基百科单词共现网络中所看到的,均匀行走无法引导搜索过程走向最佳样本,因此,我们比 DeepWalk 获得了 21.8% 的增益,比 LINE 获得了 33.2% 的增益。

为了进行更细粒度的分析,我们还比较了将训练测试分割从 10% 更改为 90% 时的性能,同时像以前一样在 10% 的数据上学习参数 p p p q q q。为简洁起见,我们在图 4 中以图形方式总结了 M i c r o − F 1 Micro-F_1 MicroF1 M a c r o − F 1 Macro-F_1 MacroF1 分数的结果。在这里,我们进行了类似的观察。所有方法都显着优于 Spectral 聚类,DeepWalk 优于 LINE,node2vec 始终优于 LINE,并在跨领域实现了较 DeepWalk 的巨大改进。例如,我们在 BlogCatalog 上以 70% 标记数据实现了相对 DeepWalk 的最大改进,达到 26.7%。在最坏的情况下,搜索阶段对学习到的表示几乎没有影响,在这种情况下,node2vec 相当于 DeepWalk。同样,与 LINE 相比,这些改进更加引人注目,除了 BlogCatalog 上的大幅提升(超过 200%)之外,我们还观察到 PPI 等其他数据集上的大幅改进高达 41.1%,而仅使用 10% 标记数据进行训练。

Image

4.4 Parameter sensitivity 参数灵敏度

node2vec 算法涉及许多参数,在图 5a 中,我们使用标记数据和未标记数据之间的 50-50 分割来检查参数的不同选择如何影响 BlogCatalog 数据集上的 node2vec 性能。除所测试的参数外,其他参数均采用默认值。 p p p q q q 的默认值设置为 unity。

Image

我们将 M a c r o − F 1 Macro-F_1 MacroF1 分数测量为参数 p p p q q q 的函数。随着输入输出参数 p p p 和返回参数 q q q 的减小,node2vec 的性能会提高。这种性能的提高可以基于我们期望在 BlogCatalog 中看到的同质和结构等效性。虽然低 q q q 鼓励向外探索,但它通过低 p p p 来平衡,确保行走不会离起始节点太远。

我们还研究了特征数量 d d d 和节点的邻域参数(行走次数 r r r、行走长度 l l l 和邻域大小 k k k)如何影响性能。我们观察到,一旦表示的维度达到 100 左右,性能就会趋于饱和。同样,我们观察到,增加每个源的行走次数和长度可以提高性能,这并不奇怪,因为我们有更大的总体采样预算 K \mathcal K K 来学习表示。这两个参数对该方法的性能都有相对较大的影响。有趣的是,上下文大小 k k k 也提高了性能,但代价是增加了优化时间。然而,在这种情况下,性能差异并不那么大。

4.5 Perturbation Analysis 扰动分析

对于许多现实世界的网络,我们无法获得有关网络结构的准确信息。我们进行了一项扰动研究,分析了与 BlogCatalog 网络中的边缘结构相关的两个不完美信息场景下的 node2vec 的性能。在第一种情况下,我们将性能作为缺失边缘比例的函数(相对于整个网络)来衡量。缺失的边是随机选择的,但受到网络中连接组件数量保持固定的约束。正如我们在图 5b(顶部)中看到的,随着缺失边缘比例的增加, M a c r o − F 1 Macro-F_1 MacroF1 分数的下降大致呈线性且斜率较小。在图随时间演变的情况下(例如,引文网络),或者网络构建成本高昂的情况下(例如,生物网络),网络中缺失边的鲁棒性尤其重要。

在第二个扰动设置中,我们在网络中随机选择的节点对之间存在噪声边缘。如图5b(下)所示,与缺失边的设置相比,node2vec的性能最初下降得稍快,但随着时间的推移, M a c r o − F 1 Macro-F_1 MacroF1分数下降的速度逐渐减慢。同样,node2vec 对错误边缘的鲁棒性在多种情况下非常有用,例如用于构建网络的测量有噪声的传感器网络。

4.6 Scalability 可扩展性

为了测试可扩展性,我们使用 node2vec 学习节点表示,Erdos-Renyi 图的默认参数值从 100 个节点增加到 1000000 个节点,平均度数恒定为 10。在图 6 中,我们凭经验观察到,node2vec 随着数量的增加呈线性缩放。在不到四小时内生成一百万个节点的表示的节点数。采样过程包括计算行走的转移概率(小到可以忽略不计)的预处理和随机行走的模拟。使用负采样和异步 SGD使优化阶段变得高效。

Image

先前工作中的许多想法可以为提高采样过程的计算效率提供有用的指导。我们展示了 DeepWalk中也使用的随机游走如何允许将采样节点重新用作游走中出现的不同源节点的邻域。别名采样允许我们的游走推广到加权网络,几乎不需要预处理。尽管我们可以根据基础任务和领域自由设置搜索参数,无需额外成本,但学习搜索参数的最佳设置会增加开销。然而,正如我们的实验所证实的,这种开销是最小的,因为 node2vec 是半监督的,因此可以用很少的标记数据有效地学习这些参数。

4.7 Link prediction 链路预测

在链接预测中,我们得到一个删除了一定比例边缘的网络,我们希望预测这些缺失的边缘。我们生成边的标记数据集如下:为了获得正例,我们从网络中删除随机选择的50%的边,同时确保删除边后获得的残差网络是连接的;为了生成负例,我们随机采样,网络中没有边连接的相同数量的节点对。

由于之前没有任何特征学习算法用于链接预测,因此我们另外根据一些流行的启发式分数评估了 node2vec,这些分数在链接预测中取得了良好的性能。我们考虑的分数是根据构成该对的节点的邻域集来定义的(参见表 3)。我们在以下数据集上测试我们的基准:

  • Facebook:在Facebook网络中,节点代表用户,边代表任意两个用户之间的好友关系。该网络有 4039 个节点和 88234 个边。
  • Protein-Protein Interactions(PPI):在智人的 PPI 网络中,节点代表蛋白质,边表示一对蛋白质之间的生物相互作用。该网络有 19706 个节点和 390633 个边。
  • arXiv ASTRO-PH:这是一个由提交到电子打印 arXiv 的论文生成的协作网络,其中节点代表科学家,如果两位科学家在论文中进行过合作,则他们之间存在一条边。该网络有 18722 个节点和 198110 个边。

Image

实验结果。我们在表 4 中总结了链路预测的结果。为了便于演示,省略了每个 node2vec 条目的最佳 p p p q q q 参数设置。我们可以从结果中得出的一般观察结果是,节点对的学习特征表示显着优于启发式基准分数,其中 node2vec 在 arXiv 数据集上实现了最佳 AUC 改进,比最佳性能基线提高了 12.6%(Adamic-Adar)。

Image

在特征学习算法中,node2vec 在所有网络中都优于 DeepWalk 和 LINE,对于每种算法的二元运算符的最佳选择,AUC 分数分别提高了 3.8% 和 6.5%。当我们单独查看运算符时(表 1),node2vec 的性能优于 DeepWalk 和 LINE,除非在涉及加权 L1 和加权 L2 运算符的情况下 LINE 表现更好。总体而言,Hadamard 算子与 node2vec 一起使用时高度稳定,并且在所有网络中平均提供最佳性能。

Image

5. DISCUSSION AND CONCLUSION

在本文中,我们研究了网络中的特征学习作为基于搜索的优化问题。这种观点给我们带来了多种优势。它可以解释基于探索-利用权衡的经典搜索策略。此外,当应用于预测任务时,它为学习到的表示提供了一定程度的可解释性。例如,我们观察到 BFS 只能探索有限的邻域。这使得 BFS 适合表征网络中依赖于节点的直接局部结构的结构等价性。另一方面,DFS 可以自由地探索网络邻居,这对于以高方差为代价发现同质社区非常重要。

DeepWalk 和 LINE 都可以看作是网络上的刚性搜索策略。 DeepWalk 提出使用均匀随机游走进行搜索。这种策略的明显局限性是它使我们无法控制所探索的社区。 LINE 主要提出了一种广度优先策略,对节点进行采样并仅在 1 跳和 2 跳邻居上独立优化似然度。这种探索的效果更容易表征,但它具有限制性,并且在探索更深度的节点时不提供灵活性。相比之下,node2vec 中的搜索策略是灵活可控的,通过参数 p p p q q q 探索网络邻域。虽然这些搜索参数具有直观的解释,但当我们可以直接从数据中学习它们时,我们会在复杂网络上获得最佳结果。从实际的角度来看,node2vec 具有可扩展性并且对扰动具有鲁棒性。

我们展示了节点嵌入对链接预测的扩展如何优于专门为此任务设计的流行启发式分数。我们的方法允许使用表 1 中列出的其他二元运算符。作为未来的工作,我们希望探索 Hadamard 运算符相对于其他运算符成功的原因,并根据搜索参数为边建立可解释的等价概念。 Node2vec 的未来扩展可能涉及具有特殊结构的网络,例如异构信息网络、具有节点和边的显式域特征的网络以及带符号边网络。连续特征表示是许多深度学习算法的支柱,使用 node2vec 表示作为图上端到端深度学习的构建块会很有趣。

论文链接:

https://arxiv.org/pdf/1607.00653.pdf

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

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

相关文章

win:Ollama安装和大模型的集成

一、Ollama介绍 Ollama 是一个用于在本地运行大型语言模型 (LLM) 的开源框架。它支持多种平台&#xff0c;包括 Windows、Linux 和 macOS。 Ollama 的主要功能包括&#xff1a; 将 LLM 模型转换为可执行文件 提供简单的命令行界面来运行 LLM 模型 支持多种 LLM 模型&#x…

P8602 [蓝桥杯 2013 省 A] 大臣的旅费【树的直径】

P8602 [蓝桥杯 2013 省 A] 大臣的旅费 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) #include<iostream> #include <algorithm> #include <vector> using namespace std; #define int long long const int N5e5100; int n; int res0; typedef pair<int,…

盘点业务流程管理认证,第3个最权威,考的人最多!

在当今竞争激烈的商业环境中&#xff0c;有效的业务流程管理变得至关重要。为了在这个领域取得成功&#xff0c;拥有相关的认证已经成为一种必要的资格。 市场上目前流行的业务流程管理认证&#xff0c;我总结了3个&#xff0c;分别是&#xff1a;BRMP业务关系管理认证、Lean …

:-1: error: Project ERROR: msvc-version.conf loaded but QMAKE_MSC_VER isn‘t set

qt报错 错误1 : error: Project ERROR: msvc-version.conf loaded but QMAKE_MSC_VER isnt set 错误1 : error: Project ERROR: msvc-version.conf loaded but QMAKE_MSC_VER isn’t set bug的现象:qtcreator无法通过点击pro文件来打开项目 方法:参考 根据上面的参考,我么找到…

谷歌浏览器变黑色背景 扩展程序 Hacker Vision

这个扩展程序能够把浏览器的背景变成黑色&#xff0c;长时间阅读文章的时候护眼效果很不错 效果如下

聚焦价值提升与市场扩张,ATFX任命Ergin Erdemir为拉丁美洲地区负责人

日前&#xff0c;全球知名品牌ATFX宣布一项重磅人事任命&#xff0c;Ergin Erdemir履新拉丁美洲地区负责人。我们相信通过这一重要战略举措&#xff0c;能够加强品牌在全球最具活力地区之一的拉美业务增长的承诺&#xff0c;并巩固品牌在当地的知名度和影响力。 Ergin Erdemi…

Java考题讲解一共5套,也可以在线刷题

【拯救者】Java刷题训练(二级专升本期末自考必备) &#x1f4d9;巩固基础 &#x1f4dc;知道考点 狠狠提分⬆️ (二级专升本期末自考必备) 大纲 一共5套题,每套可以先看视频,然后刷题. 末尾汇总了5套选择 填空 判断题, 优点: 可以查看解析和错题

[C++][算法基础]字符串统计(Trie树)

维护一个字符串集合&#xff0c;支持两种操作&#xff1a; I x 向集合中插入一个字符串 x&#xff1b;Q x 询问一个字符串在集合中出现了多少次。 共有 N 个操作&#xff0c;所有输入的字符串总长度不超过 &#xff0c;字符串仅包含小写英文字母。 输入格式 第一行包含整数…

应用配置不用愁,CRMEB Pro版新功能贴心保障

“配置系统应用时&#xff0c;没设置过的还得去搜教程&#xff0c;有些细节不了解还很容易设置错误&#xff0c;又得从头再来&#xff0c;真的好麻烦&#xff01;” “还有一些系统的设置&#xff0c;只说明了上传的素材类型和规格&#xff0c;根本不清楚到底是哪个地方的&…

大模型技术应用实训室解决方案

一、建设背景 随着大数据、云计算等技术的不断进步&#xff0c;大模型技术已成为人工智能领域的重要研究方向&#xff0c;其在自然语言处理、计算机视觉、语音识别等领域展现出强大的应用潜力。自2022年11月ChatGPT问世以来&#xff0c;大模型开始备受关注&#xff0c;科技巨头…

自偏置电流镜、wilson和cascode电流镜、低压自偏置电流镜

1.自偏置电流镜 参考1&#xff1a;正确偏置和自启动电路 正确偏置&#xff1a; 2.自启动电路 参考2&#xff1a;两种自启动电路、cascode低压设计、自启动充放电过程分析 3.低压自偏置电流镜 参考3&#xff1a;电阻偏置分析 VbVgs3VodVgs1Vod 4.电阻偏置和MOS偏置的分…

【攻防世界】easyphp(PHP代码审计)

进入题目环境&#xff0c;检查页面内容&#xff0c;页面附有源代码&#xff1a; <?php highlight_file(__FILE__); $key1 0; $key2 0;$a $_GET[a]; $b $_GET[b];if(isset($a) && intval($a) > 6000000 && strlen($a) < 3){if(isset($b) &&a…

棋牌室计时吧台计费收费灯控管理系统软件操作流程

棋牌室计时吧台计费收费灯控管理系统软件操作流程 一、前言 以下软件操作教程以&#xff0c;佳易王棋牌桌球计时计费管理系统软件灯控版V17.87为例说明 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 该计时计费软件可以是棋牌和桌球混合同时计时计费 …

Unity自己实现的中英文的切换(简单好抄)

关键技术&#xff08;读取文件的方法&#xff0c;Split()分割字符串&#xff09; 1.搭建一个这样的场景&#xff0c;场景中有3个文本&#xff08;用新版的&#xff09;&#xff0c;一个空对象&#xff0c;一个按钮 2.编写翻译文本&#xff08;编写一个txt文本&#xff0c;在文…

调用paddleocr实现中文文字识别

文章目录 paddleocr简介paddleocr安装paddleocr使用 paddleocr简介 飞桨首次开源文字识别模型套件PaddleOCR&#xff0c;目标是打造丰富、领先、实用的文本识别模型/工具库。 最新开源的超轻量PP-OCRv3模型大小仅为16.2M。同时支持中英文识别&#xff1b;支持倾斜、竖排等多种…

VueRouter的介绍:什么是路由呢?VueRouter的作用及使用,VueRouter的使用分为5个步骤和特定的2步

1.什么是路由呢&#xff1f; 路由就是路径和组件之间的映射关系&#xff0c;当我们路径变化的时候&#xff0c;就要切换对应的组件。 在前端中解决路径与组件之间的映射关系&#xff0c;官方提供了VueRouter这个插件 2.VueRouter的作用及使用 作用&#xff1a;修改地址栏路…

三角测量法恢复深度

参考&#xff1a;单目vo中的深度确定方法--三角测量_单目相机三角测量-CSDN博客 方法一&#xff1a;直接法 由于我们已经通过本质矩阵分解或者单应矩阵分解获得了R与t&#xff0c;此时想求的是两个特征点的深度 bool depthFromTriangulation(const SE3& T_search_ref,co…

CSS-文本域和输入框美化处理、文字和图片对齐、文字超出文本域以省略号显示、magin的运用

文本域和输入框美化处理 调整边框和背景&#xff1a; input[type"text"], textarea {border: 1px solid #ccc;border-radius: 5px;background-color: #f9f9f9;padding: 5px; }调整字体和颜色&#xff1a; input[type"text"], textarea {font-family: Ar…

【C语言】扫雷小游戏

文章目录 前言一、游戏玩法二、创建文件test.c文件menu()——打印菜单game()——调用功能函数&#xff0c;游戏的实现main()主函数 game.c文件初始化棋盘打印棋盘随机布置雷的位置统计周围雷的个数展开周围一片没有雷的区域计算已排查位置的个数排查雷(包括检测输赢): game.h文…

ssm034学生请假系统+jsp

学生请假系统设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本学生请假系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处…