图Transformer 推荐系统

文章目录

  • Graph Transformer for Recommendation
    • 摘要
    • 引言
    • 相关工作
    • 方法
      • 3.1 Graph Invariant Rationale Learning
        • 3.1.1 Graph Collaborative Rationale Discovery
        • 3.1.2 Global Topology Information Injection
        • 3.1.3 Rationale Discovery with Graph Transformer.
        • 3.1.4 Task-Adaptive Rationale Discovery.
      • 3.2Rationale-Aware Self-Augmentation
        • 3.2.1 基本原理启发图屏蔽自动编码
        • 3.2.2 Complement Independence Modeling
        • 3.2.3 SSL-Augmented Model Optimization.
      • 3.3 Discussion of Time and Space Complexity
    • 实验
    • 结论
    • 启发点

Graph Transformer for Recommendation

核心内容是提出了一种新颖的推荐系统方法,名为Graph TransFormer(GFormer),它通过结合图Transformer 架构和生成式自监督学习(SSL)来改进推荐系统中的表示学习。

  • 问题背景:在推荐系统中,标签稀缺是一个常见问题。自监督学习(SSL)已成为解决这一问题的一种流行方法,它通过从未标记的数据中生成辅助监督信号。

  • 方法介绍:GFormer模型的核心是利用图变换器架构来编码用户-项目交互的配对关系,并发现有用的自监督信号,这些信号具有其自身的合理性解释。该方法自动化了自监督数据增强过程,并通过任务自适应的合理化来指导图变换器。

  • 主要贡献:

    • 1)提出了一种新的推荐系统方法,该方法通过图变换器自动提取具
      有信息性的用户-项目交互模式。
    • 2)开发了一种拓扑感知的图变换器,用于整合用户-项目交互建模,并实现自动化的协作合理性发现。

摘要

这篇论文提出了一种新颖的推荐系统表示学习方法,该方法通过整合生成式自监督学习(SSL)和图变换器架构来实现。我们强调了使用相关自监督预训练任务进行高质量数据增强对于提升性能的重要性。为此,我们提出了一种新方法,它通过一种理由感知的生成式SSL自动化自监督增强过程,该方法能够提取信息丰富的用户-项目交互模式。我们提出的推荐系统Graph TransFormer(GFormer)提供了参数化的协作理由发现,以进行选择性增强,同时保持全局用户-项目关系。在GFormer中,我们允许理由感知的SSL启发图协同过滤,通过图变换器中的任务自适应不变合理化。实验结果表明,我们的GFormer能够在不同数据集上一致性地提高基线性能。此外,通过几项深入实验,我们进一步从不同方面调查了不变理由感知增强。
论文链接
开源代码

引言

自监督学习(SSL)已成为解决推荐系统中标签稀缺问题的流行解决方案,它通过从未标记的数据中生成辅助监督信号。通过与图神经网络(GNN)架构的协同过滤整合,SSL增强的图增强已被证明在有限的训练标签下对建模用户-项目交互有效。在当代方法中,基于图对比学习的推荐模型是使用最广泛的增强范式之一,其关键洞见是利用辅助学习任务中的监督信号,这些任务通过SSL增强的共同训练来补充主要的推荐目标

现有的基于图对比的方法旨在通过实现生成的正样本(例如,用户自我区分)之间的表示一致性,以及最小化负样本对(例如,不同用户)之间的相似性来最大化互信息。最近的努力尝试遵循互信息最大化的原则,通过启发式数据增强器对比用户-项目交互图的不同结构视图。例如,SGL提出通过随机移除用户和项目节点及其连接来破坏图结构,以构建拓扑对比视图。然而,盲目破坏图拓扑结构可能导致用户和项目之间关键关系的丢失,例如独特的用户交互模式或长尾项目有限的标签(如图1(a)所示)。因此,明确提供学习有信息表示所需的基本自监督信号是至关重要的,这需要在设计的增强器中具有不变的合理性。

从对齐局部级别和全局级别嵌入以进行增强的角度来看,一些研究通过各种信息聚合技术获得语义相关的子图表示,例如HCCF中的基于超图的消息传递和NCL中的EM算法基于节点聚类。然而,由于它们手工制作的性质,增强的质量可能受到手动构建的超图结构和用户聚类设置的影响。因此,这些增强方案不足以使用有用的自监督信号(例如,真正的负样本对和硬增强实例)来规范训练过程。此外,**这些手动设计的对比方法可能很容易被常见的噪声(例如,误点击行为[18],受欢迎度偏见[39])所误导(如图1(b)所示)。**从有偏见的数据中引入增强的SSL信息可能会放大噪声效应,这会稀释学习真正的用户-项目交互模式。因此,现有解决方案可能在适应不断变化的实际推荐环境中的自监督过程方面存在不足。
在这里插入图片描述

尽管在SSL增强的推荐系统中取得了进展,但一个基本问题仍然被理解不足:**在推荐中,哪些信息是关键的,应该为自监督增强而保留?**受到最近在推进自监督学习方面取得成功的掩码自编码(MAE)技术的启发,这项工作从生成式自监督增强的角度探索了上述问题,具有理由感知的不变表示学习。与对比学习不同,掩码自编码范式直接采用重建目标作为数据增强的原则性前提任务。它自然地避免了上述手动生成的对比视图数据增强的局限性。当前工作。在这项工作中,我们提出了一个新的推荐系统,使用Graph TransFormer自动提取具有不变协作理由的掩码自监督信号。我们从理由发现[26, 40]中获得灵感,以弥合图掩码自编码器与自适应增强之间的差距。我们的GFormer充分利用了变换器在显式编码成对关系方面的强大功能,以发现对下游推荐任务有益的自监督信号,并解释它们自己的理由。具体来说,我们开发了一个拓扑感知的图Transformer,以融入用户-项目交互建模,实现自动化的协作理由发现。

相关工作

在这里插入图片描述在这里插入图片描述

方法

在这里插入图片描述GFormer模型的框架,包括四个主要部分:

  • 1-协同理由发现:利用拓扑感知的图变换器来识别和合理化用户-项目交互。
  • 2-位置感知的消息传递:通过考虑节点间的相对位置信息,加强了用户-项目之间的依赖性编码,并提升了全局图上下文的表现。
  • 3-图自编码器:用于重建识别出的协同理由,这些理由包含了有助于自监督学习的用户-项目交互信息。
  • 4-任务自适应的自监督:根据推荐任务的主要优化目标,模型能够自适应地调整自监督学习过程。

3.1 Graph Invariant Rationale Learning

为了消除噪声特征的影响并增强模型的可解释性,表示学习中已经探索了带有合理化的表示学习,以识别(例如,语言词汇、图像像素)指导模型预测结果的重要特征子集。最近,合理化学习技术被引入到图表示学习中,通过发现重要图结构信息的不变理由,以利于下游的图挖掘任务。在基于图的协同过滤场景中,我们的不变理由发现方案旨在找到最佳指导自监督增强的图结构子集,以便为下游推荐任务提供支持。

我们的图协同理由发现方案旨在从两个角度优化以下目标:性能充足性和补充独立性。这个目标正式给出如下:
在这里插入图片描述
f(·)表示预测函数,而R(·)和C(·)分别表示输入图G的基本原理和基本原理的补充。具体来说,为了实现性能充足,第一项旨在最小化使用基本原理R(G)和整个图G之间的性能差异。这里,D(·)表示差异测量函数。通过这样做,图协作关系的重要结构信息在我们学习的基本原理 R(G) 中得到了很好的保存。此外,为了通过减轻噪声信号来追求补集独立性,第二项寻求最小化补集图结构 C (R(G)) 和基本原理 R(G) 的依赖性。出于这个目标,我们发现的基本原理的补充对标签预测几乎没有影响。因此,我们的图原理发现可以利用用户和项目之间的不变关系,同时减轻虚假交互的噪声影响。

3.1.1 Graph Collaborative Rationale Discovery

为了实现增强的抗噪声自我监督,我们的 GFormer 旨在自动提取交互图 G 上的重要图结构,即协作原理。为了生成信息交互子图结构,我们的协作原理发现旨在估计子图 GR 作为交互图 G 的原理的以下概率:
在这里插入图片描述
其中ρR表示被选为协作理由GR的交互边的比例,GC被定义为包含不属于GR的边的子图。在这里,我们定义 e 和 e′ 分别表示基本原理和补充子图中的用户-项目交互。为了估计上述分布概率,我们的 GFormer 建议推断单个边缘 p (e |G) 和 p (e’ |G) 被识别为基本原理的概率。使用用于节点嵌入的图编码器,参数化基本原理生成器正式概括如下:
在这里插入图片描述
受到 Transformer 中自注意力的依赖合理化设计的启发,我们的图编码器 GT(·) 建立在 Graph Transformer 架构之上,这将在 3.1.3 节中详细介绍。为了将全局拓扑上下文注入到不变的原理发现过程中,我们设计了图拓扑嵌入模块 TE(·) 来捕获整个图中的协作效果,如第 3.1.2 节所述。具体来说,H ∈ R(I+J )×d 表示包含所有 I 个用户节点和 J 个项目节点的表示的嵌入表。嵌入函数GT(·)和TE(·)的可学习参数分别用θGT和θTE表示。在我们的学习过程中,通过优化协同过滤任务的基于 BPR 的目标函数 LRD 来推断 θGT 和 θTE。这使得我们的 GFormer 模型中 SSL 增强的任务自适应原理发现成为可能。

3.1.2 Global Topology Information Injection

受位置感知图神经网络 [34] 在捕获全局关系信息方面的力量的推动,我们的 GFormer 提出通过保留高阶用户/项目依赖性来增强协作原理发现。我们首先从用户-项目交互图 G = {V, E} 中采样一组锚节点 VA ⊂ V。为了根据用户和项目与锚节点的连接性来表示用户和项目的全局拓扑嵌入,我们计算目标节点 vk 和每个锚节点 va 之间的距离 dk,a,其中距离定义为必须遍历的最小边数从 G 中的 vk 到 va。给定计算出的距离,我们推导出每对目标锚节点 (k, a) 的相关权重 ωk,a 如下:
在这里插入图片描述
q表示任意目标节点和锚节点之间的相关权重允许的最大值,用于归一化目的。然后将节点相关权重归一化到 [0, 1] 范围。利用权重 ωk,a,我们通过考虑目标节点 k 和每个锚节点 va ∈ VA 之间的相关权重来细化目标节点嵌入:
在这里插入图片描述
这里, ̃ h l k, ̃ h l -1 k ∈ Rd 分别表示节点 vk 在第 l 和第 (l -1) 图传播层中的嵌入。为了表示基于锚节点的全局拓扑上下文,我们定义 HlT 来表示第 l 层的全局拓扑嵌入矩阵。 W l ∈ Rd×2d 是一个可学习的变换矩阵。 [·||·] 表示向量串联。经过 L 个图信息传播步骤后,H L 中的嵌入保留了高阶拓扑信息。然后我们将此信息注入到 id 对应的嵌入中以获得拓扑嵌入,如下所示:
在这里插入图片描述
通过这种方式,我们的参数化基本原理生成器可以捕获全局协作关系并识别用户和项目之间交互的信息模式以进行 SSL 增强。

3.1.3 Rationale Discovery with Graph Transformer.

我们的基本原理发现旨在提取用户项交互的信息模式,这些模式可用于在监督标签有限的不断变化的推荐环境中进行自我监督增强。为了应对这一挑战,我们从 Transformer 架构及其核心自注意力机制中汲取灵感。具体来说,我们提出了一种新方法来学习环境不变的用户偏好信息作为具有选择性增强的生成自我监督信号。这种设计使我们的 GFormer 能够减轻观察行为数据引起的噪声,这些数据很容易包含可能对推荐性能产生负面影响的偏差和混杂因素。
我们的参数化原理发现模块是在图转换器框架上构建的,以将隐式标签不变节点关系编码为选定的原理。为了将用户和项目节点的位置信息纳入拓扑学习过程,我们将全局拓扑感知节点嵌入 ̄ H 馈送到多头自注意力机制中以实现合理化。具体来说,我们学习节点 vk 和 vk′ 对于第 h 个注意力头的相关性如下:
在这里插入图片描述
这里,Wh Q 和 Wh K ∈ Rd H ×d 表示用于获取查询和关键嵌入以计算注意力分数的变换。由于我们的图转换器编码的注意力分数捕获了节点依赖性的强度,因此我们聚合多头分数以获得图边的概率分数 p ((vk, vk′ )|G),例如 vk –vk′ ,被选为理由。这些基本原理对应于重要的用户-项目交互模式的子集,这些模式最能说明具有不变表示的用户偏好学习过程,其表示为:
在这里插入图片描述
为了对我们的拓扑感知图转换器估计的基本原理进行采样,我们单独采样 ρR · |E|根据概率得分 p ((vk, vk′ )|G) 从边集 E 中提取边。这里,超参数 ρR ∈ R 控制被选择用于合理化的重要边子集的大小。

3.1.4 Task-Adaptive Rationale Discovery.

为了在我们的理由发现中执行任务级适应,我们的 GFormer 是一种任务适应性理由发现范例,可以执行特定于任务的合理化以提供定制建议。具体来说,我们的模型利用嵌入和从图形转换器中提取的基本原理来生成用户对项目的偏好的预测。该过程正式给出如下:
在这里插入图片描述
yi,j ∈ R 表示用户 ui 采用项目 p j 的预测概率。嵌入 zL i 和 zj ∈ Rd 用于对用户-项目交互进行预测,而顶点 vk 的 zL k 是通过 L 层 LightGCN [5] 获得的。这里 ER 表示采样原理图 GR 的边集。 βk,k′ = 1/√︁ dkdk′ 表示节点 vk 和 vk′ 的度为 dk 和 dk′ 的拉普拉斯归一化。 0阶嵌入Z0是通过拓扑感知图转换器中的多头嵌入聚合获得的,其中H是注意头的数量,Wh V ∈ Rd/H ×d表示自注意中的值变换。我们采用残差连接来使用拓扑感知嵌入 ̄ h k′ 作为输入。根据每个 (ui, yj ) 交互的预测概率得分,我们应用以下 BPR 损失来指导基本原理发现过程并优化下游任务的目标:
在这里插入图片描述
成对训练三元组是通过对用户和项目进行采样而形成的,使得 ui ∈ U 和 v+ j ,v− j ∈ P,并且三元组满足 (ui, p+ j ) ∈ E 和 (ui, p − j ) ∉ E、sigmoid函数用sigm(·)表示。为了整合特定于任务的知识,采用了拓扑感知图转换器。该转换器提供任务感知参数学习,以针对不同的推荐场景定制协作原理发现。因此,协作原理发现满足充分性原则[36],目标为 f (R(G)) = f (G)。

3.2Rationale-Aware Self-Augmentation

3.2.1 基本原理启发图屏蔽自动编码

我们提出的用于发现协作原理的自蒸馏范例涉及通过图屏蔽自动编码对蒸馏的信息用户-项目交互模式进行自我增强。为了实现这一目标,我们使用理性感知掩码自动编码器配置 GFormer,该编码器掩码从交互图中识别出的合理性,以进行基于自动编码的重建。为了对屏蔽图结构 GM = {V, EM } 进行采样,我们使用基本原理分数的倒数。这使我们能够掩盖最重要的基本原理结构,如下所示:
在这里插入图片描述
我们提出的用于发现协作原理的自蒸馏范例涉及通过图屏蔽自动编码对蒸馏的信息用户-项目交互模式进行自我增强。为了实现这一目标,我们使用理性感知掩码自动编码器配置 GFormer,该编码器掩码从交互图中识别出的合理性,以进行基于自动编码的重建。为了对屏蔽图结构 GM = {V, EM } 进行采样,我们使用基本原理分数的倒数。这使我们能够屏蔽最重要的基本原理结构,如下所示: pM (·) 是屏蔽图中采样边的概率。 αM k,k’ 是在掩码生成器中选择节点 vk 和 vk’ 之间的边的概率。 ̄ αM k,k′ 是使用权重 αk,k′ 的倒数计算的非标准化注意力得分。添加一个小值 ε 以避免分母为零。屏蔽图具有比基本原理图更高的边缘密度,以仅去除抗噪声自动编码的最重要的基本原理边缘。然后将带有边集 EM 的屏蔽图 GM 作为自动编码器网络的输入,如下所示:
在这里插入图片描述
S ∈ R(I+J )×d 表示自动编码器中的最终嵌入。 GT(·) 和 TE(·) 分别表示我们的图变换网络和拓扑信息编码器。我们使用从 LightGCN 编码的 L 阶本地节点嵌入 ̄ S L 增强初始嵌入。 ̄ S0 使用 id 对应的嵌入 H 进行初始化。嵌入 S 用于训练屏蔽的用户-项目交互的重建。这可以表示为:
在这里插入图片描述
LMAE 是重建屏蔽交互模式的训练目标。 ̃ yk,k′ 表示图 G 上边缘 (vk, vk′ ) 的预测分数。受我们协作原理发现的启发,我们的图屏蔽自动编码器经过训练,可以重建适用于下游推荐任务的重​​要交互模式。我们的理性感知增强方法可以防止我们的生成 SSL 受到噪声边缘的影响。

3.2.2 Complement Independence Modeling

为了在原理发现中实现补集独立性(如第 3.1 节中所讨论),我们引入了一个学习组件来鼓励提炼的协作原理与其相应的补集之间的独立性,从而减少信息冗余。这是通过对比正则化来完成的,其中我们最小化基本原理图 GR 和采样补图 GC 之间的互信息。补图的采样方式与图掩蔽类似,但使用不同的采样率 ρC << ρM 来识别噪声边缘。补图 GC = {V, EC } 生成如下:
在这里插入图片描述
为了确保补图 GC 不包含可能影响独立正则化的非噪声边缘,我们使用低采样率 ρC 。然后,我们应用以下损失来最小化高阶表示中的基本原理图 GR 和补图 GC 之间的相似性:
在这里插入图片描述
L-GCNL (·) 表示 LightGCN [5] 中 L 个图层的堆叠,用于在输入图(GR 和 GC)上递归传递消息。 τ 是温度系数的超参数。对比独立正则化 LCIR 将所有节点的基本原理嵌入 eR k 和补充嵌入 eC k 的嵌入推离彼此。这增强了模型鼓励发现的基本原理和补充之间独立性的能力,从而提高了 GFormer 中基于 SSL 的增强的噪声抑制能力。

3.2.3 SSL-Augmented Model Optimization.

在训练阶段,我们使用嵌入 S ∈ R(I+J ) ×d 来进行预测以训练推荐器。对于模型训练,最小化以下逐点损失函数:
在这里插入图片描述
作为对比,GFormer 最大化所有积极的用户-项目交互的预测,并最小化所有消极的用户-项目交互的预测。在测试阶段,我们用观察到的交互图 G 替换 GFormer 中的屏蔽图 GM,并通过 ˆ yi,j = s⊤ i sj 预测用户 ui 和项目 p j 之间的关系。通过结合多个培训目标,我们的 GFormer 经过优化,可最大限度地减少以下总体目标:
在这里插入图片描述
λ1、λ2和λ3是用于损失平衡的超参数。最后一项是参数的 Frobenius 范数正则化。

3.3 Discussion of Time and Space Complexity

  • 时间复杂度。我们的 GFormer 使用图形转换器进行协作原理发现,并使用 LightGCN 作为原理子图结构的图形编码器。前者嵌入变换的复杂度为 O (LT × (I + J ) × d2),信息传播和聚合的复杂度为 O (LT × (ρR + ρM ) × |E | × d)。 LightGCN 需要 O ((LC ρR + LAρM + LI ρR) × |E | × d) 成本。
  • 空间复杂性。我们的协作原理发现模块直接构建在图编码器 - Graph Transformer 之上,这意味着与其他原理图结构学习方法(例如[12, 14])相比,不需要额外的原理学习参数。因此,我们的 GFormer 模型比这些方法需要更小的空间成本(即 O ((I + J ) × d + d2))。

实验

在本节中,我们进行了广泛的模型评估实验,以回答以下关键研究问题:

  • RQ1:与各种最先进的(SOTA)推荐模型相比,我们的 GFormer 有多有效?
  • RQ2:如果我们用不同的简单实现替换 GFormer 的关键模块,模型性能会如何变化?
  • RQ3:我们的理性感知图形转换器如何应对数据噪声和数据稀缺问题?
  • RQ4:建议的GFormer 的训练效率是多少?
  • RQ5:关键参数如何影响模型性能?
  • RQ6:我们的协作原理发现范式如何实现用户-项目交互模式的可解释性?

在这里插入图片描述

结论

本文旨在揭示有用的用户-项目交互模式,作为通过学习 SSL 不变原理来增强协同过滤的原理。我们提出的 GFormer 模型提供了指导,通过集成全局拓扑嵌入和任务自适应来提取语义信息图连接。我们的工作为通过屏蔽图自动编码构建理性感知通用增强开辟了途径。我们的实证结果表明,基于 SSL 的增强和有效的合理化可以促进用户偏好学习,从而显着提高推荐性能。虽然我们的新模型已经赋予了自适应增强与任务感知的基本原理发现,但如何将其适应其他推荐场景(例如社交感知推荐和知识图增强推荐器)是一个有趣的开放问题。

启发点

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

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

相关文章

怎样快速获取Vmware VCP 证书,线上考试,voucher报名优惠

之前考一个VCP证书&#xff0c;要花大一万的费用&#xff0c;可贵了&#xff0c;考试费不贵&#xff0c;贵就贵在培训费&#xff0c;要拿到证书&#xff0c;必须交培训费&#xff0c;即使vmware你玩的很溜&#xff0c;不需要再培训了&#xff0c;但是一笔贵到肉疼的培训费你得拿…

Android MediaMetadataRetriever获取视频宽高,Java

Android MediaMetadataRetriever获取视频宽高&#xff0c;Java public static int[] getVideoSize(Context ctx, Uri uri) {MediaMetadataRetriever retriever new MediaMetadataRetriever();int[] size {-1, -1}; //宽&#xff0c;高try {retriever.setDataSource(ctx, uri)…

PowerDesigner 16.5安装教程

&#x1f4d6;PowerDesigner 16.5安装教程 ✅1. 下载✅2. 安装 ✅1. 下载 官网地址&#xff1a;https://www.powerdesigner.biz/EN/powerdesigner/powerdesigner-licensing-history.php 云盘下载&#xff1a;https://www.123pan.com/s/4brbVv-aUoWA.html ✅2. 安装 1.运行P…

开发uniapp 小程序时遇到的问题

1、【微信开发者工具报错】routeDone with a webviewId XXX that is not the current page 解决方案: 在app.json 中添加 “lazyCodeLoading”: “requiredComponents” uniapp的话加到manifest.json下的mp-weixin 外部链接文章&#xff1a;解决方案文章1 解决方案文章2 &qu…

C++ | Leetcode C++题解之第144题二叉树的前序遍历

题目&#xff1a; 题解&#xff1a; class Solution { public:vector<int> preorderTraversal(TreeNode *root) {vector<int> res;if (root nullptr) {return res;}TreeNode *p1 root, *p2 nullptr;while (p1 ! nullptr) {p2 p1->left;if (p2 ! nullptr) {…

STM32 | 独立看门狗 | RTC(实时时钟)

01、独立看门狗概述 在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状…

【学习心得】算法刷题心得分享

一、为什么要刷题&#xff1f; 提升编程能力&#xff0c;强化对数据结构的理解&#xff0c;熟练掌握常用的算法等为竞赛、考试做准备找实习、找工作需要&#xff08;上机考试面试手撕代码&#xff09;提升自信心&#xff0c;放松一下 二、刷题前应该有哪些知识储备&#xff1f;…

lua对接GPT4实现对话

演示效果&#xff1a; 准备材料&#xff1a; 1、FastWeb网站开发服务&#xff1a;fwlua.com 2、一台服务器 该示例使用开源项目&#xff1a;fastweb 实现。 代码比较简单&#xff0c;主要是两部分&#xff0c;一个lua代码和一个html页面&#xff0c;用来用户发起请求和后台…

5.1 实体完整性

一个表只能有一个主键约束&#xff0c;且主键约束不能取空值。 通过unique约束定义唯一性&#xff0c;为了保证一个表非主键列不输入重复值&#xff0c;可在该列定义unique约束。 primary key约束与unique约束主要区别如下。 (1)一个表只能创建一个primary key约束&#xff0…

计算机组成原理之指令格式

1、指令的定义 零地址指令&#xff1a; 1、不需要操作数&#xff0c;如空操作、停机、关中断等指令。 2、堆栈计算机&#xff0c;两个操作数隐藏在栈顶和此栈顶&#xff0c;取两个操作数&#xff0c;并运算的结果后重新压回栈顶。 一地址指令&#xff1a; 二、三地址指令 四…

Flutter 实现dispose探测控件

文章目录 前言一、什么是dispose探测控件&#xff1f;1、通常情况2、使用dispose探测控件 二、如何实现1、继承StatefulWidget2、定义dipose回调3、定义child4、重载Dispose方法5、build child 三、完整代码四、使用示例1、基本用法2、设置定义数据 总结 前言 开发flutter一般…

《TCP/IP网络编程》(第十四章)多播与广播

当需要向多个用户发送多媒体信息时&#xff0c;如果使用TCP套接字&#xff0c;则需要维护与用户数量相等的套接字&#xff1b;如果使用之前学习的UDP&#xff0c;传输次数也需要和用户数量相同。 所以为了解决这些问题&#xff0c;可以采用多播和广播技术&#xff0c;这样只需要…

数据挖掘丨轻松应用RapidMiner机器学习内置数据分析案例模板详解(上篇)

RapidMiner 案例模板 RapidMiner 机器学习平台提供了一个可视化的操作界面&#xff0c;允许用户通过拖放的方式构建数据分析流程。 RapidMiner目前内置了 13 种案例模板&#xff0c;这些模板是预定义的数据分析流程&#xff0c;可以帮助用户快速启动和执行常见的数据分析任务。…

gdb 【Linux】

程序发布方式&#xff1a;  1、debug版本&#xff1a;程序会被加入调试信息&#xff0c;以便于进行调试。  2、release版本&#xff1a;不添加任何调试信息&#xff0c;是不可调试   确定一个可执行程序是debug&#xff0c;还是release [cxqiZ7xviiy0goapxtblgih6oZ test_g…

LabVIEW图像采集处理项目中相机选择与应用

在LabVIEW图像采集处理项目中&#xff0c;选择合适的相机是确保项目成功的关键。本文将详细探讨相机选择时需要关注的参数、黑白相机与彩色相机的区别及其适用场合&#xff0c;帮助工程师和开发者做出明智的选择。 相机选择时需要关注的参数 1. 分辨率 定义&#xff1a;分辨率…

Deepin安装PostGresql

最近要把开发环境完全从Windows移到Deepin上&#xff0c;本次介绍在Deepin借助apt-get安装和配置数据库。同时可以用Dbever提供图形化管理工具。 安装PostGreSQL数据库和创建数据库 #安装postgresql zhanglianzhuzhanglianzhu-PC:/$ sudo apt-get install postgresql-16 正在…

876. 链表的中间结点-链表

876. 链表的中间结点 - 力扣&#xff08;LeetCode&#xff09; 快慢指针 class Solution { public:ListNode* middleNode(ListNode* head) {ListNode* slow head;ListNode* fast head;while(fast ! nullptr && fast->next ! nullptr){slow slow->next;fast …

论文阅读:Indoor Scene Layout Estimation from a Single Image

项目地址&#xff1a;https://github.com/leVirve/lsun-room/tree/master 发表时间&#xff1a;2018 icpr 场景理解&#xff0c;在现实交互的众多方面中&#xff0c;因其在增强现实&#xff08;AR&#xff09;等应用中的相关性而得到广泛关注。场景理解可以分为几个子任务&…

【Web世界探险家】3. CSS美学(二)文本样式

&#x1f4da;博客主页&#xff1a;爱敲代码的小杨. ✨专栏&#xff1a;《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 |《MySQL探索之旅》 |《Web世界探险家》 ❤️感谢大家点赞&#x1f44d;&#x1f3fb;收藏⭐评论✍&#x1f3fb;&#xff0c;您的三连就是我持续更…

vue-cli是什么?和 webpack是什么关系?

前言 Vue CLI是Vue.js项目的官方脚手架&#xff0c;基于Node.js与Webpack构建。安装Vue CLI前需确保Node.js已安装&#xff0c;随后通过npm全局安装。Vue CLI能迅速创建和管理Vue.js项目&#xff0c;提升开发效率。而Webpack则负责资源打包&#xff0c;通过配置文件管理依赖、插…