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

学习日记-0407(Inductive Matrix Completion Using Graph Autoencoder)

论文阅读:Inductive Matrix Completion Using Graph Autoencoder

代码:swtheing/IMC-GAE

总而言之就是设计了一个不同评分下的邻接图,然后对每一个评分图T进行独立GNN编码。这个 GNN 编码器主要由三个组件构成:嵌入层、消息传递层和累积层。其中嵌入组成为用户向量,item向量,评分向量三部分组成,然后由于这样子训练参数就要3*T ,参数量太大,于是让user和item向量共享,降低到T个 rating embedding+2;然后进行节点聚合,由于节点类型有两种,user和item,利用双线性运算得到e(i,j)user_i和item_j的关系,然后进行归一化,得到每个评分T的e(i,j)向量,最后进行加权求和计算预测值。中间还有一些细节,比如计算loss的时候尽量让相邻评分下的向量表示相近(这样提高泛化性),以及在聚合时逐层变化的dropout 概率。

Layer-wise node dropout 是一种逐层调整节点丢弃概率的方法,旨在让模型更专注于局部图结构,避免过度平滑,并提高模型的泛化能力。

IMCGAE,集成了基于GAE的模型和IGMC,获得了一个更有效的真实推荐系统的模型。然后,我们在图1中展示了IMC-GAE的概述。特别是IMC-GAE是一个基于关联的模型由三个主要组件组成: 1)嵌入层的输入特征包括节点,相同的特性和角色感知特性,2)关系GCN编码器,3)双线性解码器结合目标节点的表示重建链接表示。

3.3异构图上的特征编码器

接下来,IMC-GAE 在每个评分子图上独立地应用了一个节点级别的 GNN 编码器,以学习每个节点在不同评分类型下的表示。这个 GNN 编码器主要由三个组件构成:嵌入层、消息传递层和累积层。


3.3.1 Embedding Layer

目的与设计

具体实现

  • 问题转化:模型将评分矩阵看作一个异构图,其中用户和物品为节点,不同评分(例如1星、2星等)对应不同的边类型。

  • 评分子图:对于图中的每种评分类型 TTT,所有具有该评分的边被收集到一个“评分子图”中,每个评分子图都包含相同的节点集合,但边的连接方式反映了在该评分下的交互信息。

  • 目标:为每个节点构造初始表示,以便后续的消息传递能够捕捉到不同评分类型下的局部图结构信息以及节点自身的特性。

  • 三种嵌入:在每个评分子图中,节点的初始表示由三种嵌入组成:

    • identical node embedding (ut​):捕捉节点的基本或标识性特征。

    • role-aware embedding (rt​):区分节点角色(例如区分用户和物品),帮助模型分辨不同类型节点之间的交互。

    • rating embedding (lt):专门用于表示与评分相关的信息,反映在当前评分子图中的交互模式。

  • 参数共享策略

    • 如果每个评分子图都独立使用这三种嵌入,则每个节点需要学习 3×T 个嵌入,参数量非常大。

    • 为了降低参数量并增强模式学习的稳健性,论文中将 identical embeddingrole-aware embedding 在所有评分子图中共享;只有 rating embedding 针对每个评分类型单独学习。

    • 因此,每个节点总共只需学习T 个 rating embedding 加上 2 个共享的嵌入,合计 T+2 个嵌入。

  • 嵌入组合

    • 在每个评分子图 t 中,通过拼接(concatenation)这三种嵌入,得到节点 i 的初始表示


3.3.2 Message Passing Layer

目的

具体实现


3.3.3 Accumulation Layer

目的

具体实现


总结

这部分内容讲解了 IMC-GAE 模型中 GNN 编码器的构造流程,包括三个主要组件:

整个过程将异构图中不同类型的评分信息有效整合,并为后续的链接重构(例如通过 bilinear decoder)提供高质量的节点表示。

  • 这个 xt0[i]就是节点 i 在评分子图 t 中的嵌入向量,作为后续消息传递层的输入。
  • 局部信息聚合:利用图卷积网络(GCN)的消息传递机制,在每个评分子图中聚合节点邻居的信息,捕捉局部图结构特征。

  • 多层特征融合:经过多层消息传递后,节点会有来自不同层的信息。如何有效融合这些信息,以兼顾浅层(更接近原始输入)和深层(抽象特征)的优势,是设计关键。

  • 多层消息传递堆叠

    • 在每个评分子图中,模型堆叠 LLL 层消息传递层,并在层与层之间使用 ReLU 激活函数。

  • 加权融合

    • 参考先前的工作,节点 iii 在评分子图 ttt 中的最终表示 ht[i]h_t[i]ht​[i] 由各层输出的加权和构成:

    • 这里每一层的权重为 1/(l+1),使得较低层的信息(接近原始输入的细节)获得较大权重。

  • 跨评分子图的融合

    • 将节点 i 在所有 T 个评分子图中的最终表示 ht[i]累加,得到该节点的整体表示。这一步实现了不同评分类型信息的整合,为后续链接预测或评分重构提供综合特征。

  • Embedding Layer:为每个评分子图中的节点构造融合了身份、角色和评分信息的初始表示,并通过共享策略减少参数量。

  • Message Passing Layer:采用标准的 GCN 机制,通过对称归一化将邻居信息聚合进来,捕捉局部图结构特征。

  • Accumulation Layer:通过对多层输出加权求和,再跨评分子图累加,形成每个节点的最终综合表示。

3.4 Bilinear decoder

IMC-GAE 模型中 bilinear decoder 的设计思想,其主要目标是利用双线性运算重构用户和物品之间的链接(即评分),并将每个评分级别视为一个独立的类别进行建模。

1. 针对不同评分级别建模

  • 评分子图(Rating Subgraph):假设评分矩阵中有 TTT 个评分级别(比如评分 1~5),模型为每个评分级别构造一个对应的评分子图。每个子图中的链接表示在该评分下用户与物品之间的交互。

2. 双线性运算计算链接表示

  • 用户和物品的表示:经过 Encoder 处理后,每个用户 i和物品 j都有一个最终表示,分别记作 n[i]和 n[j]。

  • 双线性运算:对于每个评分级别 ttt,模型使用一个可学习的参数矩阵 WtW_tWt​ 来对用户和物品的表示进行双线性融合,公式为:

    这一步骤的作用是:

    • 将用户和物品的表示通过 WtW_tWt​ 进行组合,

    • 得到一个标量 et[i,j],它衡量了在评分 t下用户 i与物品 j 之间的交互强度或相似性

3. 整合各评分级别的输出

  • 链接表示向量:对于一对用户 iii 和物品 jjj,在所有 TTT 个评分子图中,会得到一个包含 TTT 个分量的向量:

  • Softmax 归一化:对这个向量应用 softmax 操作,将每个评分级别的得分转换成概率分布,记为 St(e(i,j))S_t(e(i,j))St​(e(i,j)),其中 StS_tSt​ 表示在第 ttt 个评分类别上的 softmax 概率。

  • 最终评分预测:通过对所有评分类别的概率进行加权求和,得到最终的评分预测:

这表示模型结合了每个评分级别的信息,输出一个综合评分预测。

总结

  • Bilinear Decoder 的核心:利用用户和物品的表示以及对应的可学习参数矩阵 WtW_tWt​,通过双线性运算计算出在各个评分级别下的交互得分。

  • 独立建模评分级别:每个评分级别都被单独建模,这样可以更细致地捕捉不同评分对应的交互模式。

  • Softmax 组合:将所有评分级别的得分通过 softmax 转换为概率,再合并为最终预测分数,这样可以看作是对不同评分可能性的加权平均。

这种设计既保留了评分间的差异性,也使得模型能够在预测评分时利用多个子模型的输出,增强了预测的准确性和鲁棒性。

当在IMC-GAE- 2的顶部进一步堆叠传播层时,我们发现IMC-GAE-3导致了ML-100k上的性能下降,但在豆瓣和雅虎音乐上的性能有所提升。这可能是由于更深的层具有更高的节点丢弃概率,可能会在潜在链接表示中引入噪声。更具体地说,更深的层(例如IMC-GAE-3中的第三层)失去了原始图的连通性,使得模型无法从邻居中学习潜在链接表示。此外,其他两个数据集上的边际改进验证了超出1跳邻居的局部图模式仍然能提高模型在稀疏评分矩阵中的性能。

相关文章:

学习日记-0407(Inductive Matrix Completion Using Graph Autoencoder)

论文阅读:Inductive Matrix Completion Using Graph Autoencoder 代码:swtheing/IMC-GAE 总而言之就是设计了一个不同评分下的邻接图,然后对每一个评分图T进行独立GNN编码。这个 GNN 编码器主要由三个组件构成:嵌入层、消息传递层…...

FPGA入门:状态机思想编程

一、状态机思想编写流水灯 1、状态机思想的概念 状态机思想是一种用于描述和处理具有多个状态以及状态之间转换关系的系统的思维方式。以下是对其主要概念、应用场景和优势的介绍: 主要概念 状态:指系统在某一时刻的状况或条件。例如,在一…...

【电路笔记】-切换触发器

切换触发器 文章目录 切换触发器1、概述2、切换触发器3、JK触发器转换为D型触发器4、D型触发器转换为切换触发器切换触发器是常用的时序逻辑电路,作为单个比特双稳态存储元件,在计数器、存储器设备中经常使用,或作为响应时钟脉冲的分频器。 1、概述 切换触发器是另一种基于…...

示例项目文档模板集:TaskBoard 任务管理系统

一套完整、高可读性、结构清晰的项目文档模板,适用于中小型软件项目的设计、开发、交接与展示全流程。 📌 项目概述文档(overview.md) 📂 项目名称:TaskBoard 🧭 项目简介 TaskBoard 是一款专为敏捷团队打造的任务管理系统,支持任务分配、状态追踪与协作沟通,帮…...

TF-IDF忽略词序问题思考

自从开始做自然语言处理的业务,TF-IDF就是使用很频繁的文本特征技术,他的优点很多,比如:容易理解,不需要训练,提取效果好,可以给予大规模数据使用,总之用的很顺手,但是人…...

代理模式的优缺点是什么?

什么是代理模式? 代理模式(Proxy Pattern)是一种结构型设计模式,它通过创建代理对象来控制对原始对象的访问。 这种模式在前端开发中广泛应用,特别是在需要控制对象访问、添加额外逻辑或优化性能的场景中。 ​​核心…...

十分钟上手:Distilling the Knowledge in a Neural Network

概述:知识蒸馏是一种模型压缩技术,通过让轻量化的学生模型模仿复杂教师模型的输出概率分布,结合软目标和硬目标进行训练,从而将教师模型的泛化能力迁移至学生模型,实现小模型的高效部署而不显著降低性能。 硬目标&…...

百度的deepseek与硅基模型的差距。

问题: 已经下载速度8兆每秒,请问下载30G的文件需要多长时间? 关于这个问题。百度的回答如下: ‌30GB文件下载时间计算‌ ‌理论计算‌(基于十进制单位): ‌单位换算‌ 文件大小:3…...

OpenCV 图形API(18)用于执行两个矩阵(或数组)的逐元素减法操作函数sub()

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 描述 计算两个矩阵之间的逐元素差值。 sub 函数计算两个矩阵之间的差值,要求这两个矩阵具有相同的尺寸和通道数: dst ( I ) src…...

布谷一对一直播源码android版环境配置流程及功能明细

一:举例布谷交友(一对一直播源码)搭建部署的基本环境说明 1. 首先安装Center OS 7.9系统,硬盘最低 40G 2. 安装宝塔环境 https://bt.cn(强烈推荐使用) 3. 安装环境 ● PHP 7.3(安装redis扩展…...

#MongoDB 快速上手

docker pull mongo docker run -d --name my-mongo -p 27017:27017 mongo docker exec -it my-mongo mongo 🚪进入 Mongo Shell 后的第一步 你进入后会看到类似提示符: >说明已经进入 Mongo Shell,现在就可以操作数据库了。 &#x1…...

docker相关命令

常用命令 #创建并启动 docker-compose up -d # 启动之后就可以通过浏览器访问了 #停止并删除 docker-compose down #重启 docker-compose restart #停止 docker-compose stop #启动 docker-compose startdocker search #搜索镜像(只搜索官方仓库的,官方仓库地址&am…...

浅谈进程与程序的区别

如大家所了解的,进程与程序是有区别的。 下面做了一个总结,供大家参考、学习: 1. 程序是指令的有序集合,是一个静态的概念,其本身没有任何运行的含义。进程是程序在 CPU 上的一次执行过程,是一个动态的概…...

redis 和 MongoDB都可以存储键值对,并且值可以是复杂json,用完整例子分别展示说明两者在存储json键值对上的使用对比

Redis 存储 JSON 键值对示例 存储操作: // 存储用户信息(键:user:1001,值:JSON对象) SET user:1001 {"name":"Alice", "age":30, "address":"New York&quo…...

基于chatgpt得到的生活成本计算

意大利的生活成本因城市而异,比如米兰和罗马相对较贵,而南部城市如那不勒斯或巴勒莫则便宜一些。下面是意大利大致的基本生活成本和费用明细(以欧元€为单位,2025年初数据为基础,具体数值可能随时间和汇率略有变化&…...

C和C++有什么区别?

C和C是两种不同的编程语言,虽然它们有许多相似之处,但也存在一些关键的区别。 C是一种过程化编程语言,专注于函数和流程控制,非常适合系统级编程。而 C是一种面向对象编程语言,支持类、对象和封装、继承、多态等特性。…...

力扣1338 === 贪心算法解决数组减半问题

目录 问题分析 方法思路:贪心算法 步骤分解 代码解释 复杂度分析 正确性证明 示例验证 边界情况 总结 要解决这个问题,我们需要找到最少需要删除的不同整数集合,使得剩余的元素个数不超过原数组的一半。以下是对该问题的详细分析和解…...

企业知识库如何搭建?应对高频咨询的AI自助问答系统

在客户服务和内部沟通中,“同样的问题被反复问”、“信息找不到”、“新员工上手慢”等现象屡见不鲜。为了提升企业运营效率,越来越多企业开始重视知识库建设,而“企业知识库如何搭建”也成为热门话题。 尤其在AI技术快速发展的今天&#xf…...

UE5学习笔记 FPS游戏制作44 统一UI大小 sizeBox

如果我们希望多个类似的UI大小一样,例如不同菜单的标题,可以使用sizeBox组件 我们在标题控件上,用sizeBox包裹所有子物体 然后指定他的最小宽高,或最大宽高 如果指定的是最小宽高,当子元素(如图片&#xf…...

SpringAOP新链浅析

前言 在复现CCSSSC软件攻防赛的时候发现需要打SpringAOP链子,于是跟着前人的文章自己动手调试了一下 参考了大佬的文章 https://gsbp0.github.io/post/springaop/#%E6%B5%81%E7%A8%8B https://mp.weixin.qq.com/s/oQ1mFohc332v8U1yA7RaMQ 正文 依赖于Spring-AO…...

高效网页截图利器:支持长截图、异步加载内容截图、API调用、Docker一键部署!

一、简介 利用playwright自动化工具,模拟浏览器打开网页,实现完整网页截图功能支持长截图,支持异步加载动态渲染内容截图支持docker一键部署支持API调用项目地址:https://github.com/luler/hello_screenshot 二、安装 提前安装好d…...

处理语言模型返回的响应

completion.choices[0].message.content 是在处理语言模型(如 OpenAI 的 GPT 系列)返回的响应时,用于 访问模型生成的文本内容的代码路径。为了更好地理解它,我们需要先了解语言模型响应的结构。 1. 响应的结构 当使用语言模型&…...

Go语言类型捕获及内存大小判断

代码如下: 类型捕获可使用:reflect.TypeOf(),fmt.Printf在的%T。 内存大小判断:len(),unsafe.Sizeof。 package mainimport ("fmt""unsafe""reflect" )func main(){var i , j 1, 2f…...

Java 大视界 -- Java 大数据机器学习模型在智能客服多轮对话系统中的优化策略(179)

💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…...

CAS号:288574-78-7,Zinpyr-1可用作PET传感器

试剂描述: Zinpyr-1(ZP-1)是一种具细胞膜渗透性的荧光探针,选择性检测锌离子(Zn2)(Kd 0.7 0.1 nM)。一旦与金属离子复合,诱发荧光信号产生。活细胞内,Zinpyr…...

【JVM调优实战指南:从案例分析到性能优化】

一、JVM 调优核心原则 JVM 调优旨在平衡系统的吞吐量、延迟和内存使用。在进行 JVM 调优时,我们可以遵循以下原则: 先优化代码:优先排查业务逻辑中的内存泄漏、对象滥用等问题。优化代码不仅能从根本上解决性能问题,还能减少对 J…...

交换机转发原理 和 DNS服务

1. 收到报文后,将其转换为二进制,并记录在缓存当中 2. 根据二进制中的源 MAC 地址,与接收报文的接口,记录对应关系,在 MAC 地址表中,每个动态表项 300S 老化时间。 3. 判断 如果目的 MAC 是组播或广…...

强化学习Q-Learning:DQN

强化学习Q-Learning/DQN 本文是一篇学习笔记,主要参考李宏毅老师的强化学习课程。 目前主流的强化学习方法大致可以分为 policy-based 和 value-based 两大类。之前我们介绍的 policy gradient 策略梯度,就是 policy-based 的方法。本文要介绍的 Q-learn…...

OpenCv(七)——模板匹配、打包、图像的旋转

目录 一、模板匹配 模板匹配原理 1、单模板之间的匹配 (1)读取并显示待匹配的图片和模板图片 (2)模板匹配并绘制匹配位置的外接矩形 (3)显示最终的效果 2、模板与多个对象匹配,仅匹配当前…...

汽车售后诊断 ODX 和 OTX 对比分析报告

一、引言 在汽车行业不断发展的当下,汽车售后诊断技术对于保障车辆性能、维护车主权益以及提升汽车品牌服务质量起着至关重要的作用。随着汽车电子化程度的不断提高,售后诊断所涉及的数据和流程愈发复杂,这就促使行业需要更加标准化、高效化…...

关于图卷积

深入理解神经网络中的图卷积 一、为什么需要图卷积(动机) 在图结构中,比如: 社交网络(节点是人,边是朋友关系)分子结构(节点是原子,边是化学键)知识图谱&a…...

Meta LLaMA 4:对抗 GPT-4o 与 Claude 的开源王牌

2025 年 4 月,Meta 正式发布了 LLaMA 4 系列的首批两款模型。 这两款模型模型分别是:LLaMA 4 Scout 与 LLaMA 4 Maverick,均采用了 专家混合架构(Mixture-of-Experts, MoE)。 据 Meta 表示,这是首次有 …...

如何进行SQL调优

如何进行SQL调优 SQL 调优是优化数据库查询性能的过程,目的是减少查询的执行时间,提高数据库系统的整体效率。SQL 调优的技巧和方法可以针对不同的数据库管理系统(DBMS)有所不同,但基本的原则和步骤是相似的。以下是一…...

WAF防护规则配置技巧与企业级安全实践指南

面对日益复杂的Web应用攻击,WAF规则配置直接决定防护体系的有效性。本文深度解析规则优先级编排、误报消减策略、智能学习机制等17项关键技术,结合金融行业API攻击案例与Gartner最新防御框架,为企业提供可落地的WAF优化路径。 WAF规则引擎的…...

第16届蓝桥杯单片机模拟试题Ⅱ

试题 代码 sys.h #ifndef __SYS_H__ #define __SYS_H__#include <STC15F2K60S2.H> //ds1302.c extern unsigned char time[3]; void w_ds1302(); void r_ds1302(); //iic.c float v_adc(unsigned char addr); //sys.c extern float light_v; extern float rb2_v; exte…...

机器学习——ROC曲线、PR曲线

一、ROC曲线简介 1.1 ROC曲线的构成 1.横轴&#xff08;假正率&#xff0c;FPR&#xff09;&#xff1a; 表示负样本被错误分类为正的比例&#xff08;越小越好&#xff09; 2.纵轴&#xff08;真正率&#xff0c;TPR&#xff0c;即召回率&#xff09;&#xff1a; 表示正样…...

Flutter之交互事件

目录&#xff1a; 1、点击事件标准案例1.1、效果图2.1、代码实现 1、点击事件标准案例 1.1、效果图 2.1、代码实现 class FavoriteWidget extends StatefulWidget {const FavoriteWidget({super.key});overrideState<FavoriteWidget> createState() > _FavoriteWidge…...

深入解析Spring Boot自动装配:原理、设计与最佳实践

引言 Spring Boot作为现代Java开发中的一股清流&#xff0c;凭借其简洁、快速和高效的特性&#xff0c;迅速赢得了广大开发者的青睐。而在Spring Boot的众多特性中&#xff0c;自动装载&#xff08;Auto-configuration&#xff09;无疑是最为耀眼的明珠之一。本文将深入剖析Sp…...

【责任链】模式解决流程中多个接口的流程问题

业务需求 整体流程有5步骤&#xff0c;每个步骤调用一个接口&#xff0c;每个接口成功才能进行下一步。如a->b->c->d->e&#xff0c; 比如入学报到 a&#xff1a;报班&#xff0c;根据名字生成学号uid b&#xff1a;根据学号分配班级获取班级编号cid c&#xff1a…...

excel常见错误包括(#N/A、#VALUE!、#REF!、#DIV/0!、#NUM!、#NAME?、#NULL! )

目录 1. #N/A2. #VALUE!3. #REF!4. #DIV/0!5. #NUM!6. #NAME?7. #NULL!8.图表总结 在 Excel 中&#xff0c;可能会遇到以下常见的错误值&#xff0c;每个都有特定的含义和成因&#xff1a; 1. #N/A 含义&#xff1a; 表示“Not Available”&#xff08;不可用&#xff09;。…...

【湖南大学】2025我们该如何看待DeepSeek

大家好&#xff0c;我是樱木。 DeepSeek 官方网站&#xff1a;https://www.deepseek.com/ 一、DeepSeek 到底是什么&#xff1f; TA 到底厉害在哪里&#xff1f; 故事从 ChatGPT 说起 去年我们看到 Open AI 发布ChatGPT 后&#xff0c;全球的注意力到了 AI 身上。 我们来拆…...

RAG中构建个人知识库

1. 添加本地模型 1.1 查看本地模型 ollama list1.2 ragflow添加本地模型 1.3 系统模型配置 2. 构建知识库 2.1 准备知识库素材 2.2 配置知识库 2.3 知识库绑定素材文件 上传文件素材 - 解析文件 3. 构建交互系统 3.1 配置助理 3.2 完善提示词 3.3 设置模型参数 4. 体验效…...

在 Kubernetes (k8s) 中,apiserver 的 IIP和 VIP的区别

在 Kubernetes (k8s) 中&#xff0c;apiserver 的 IIP&#xff08;Internal IP&#xff09; 和 VIP&#xff08;Virtual IP&#xff09; 是与集群网络通信和高可用性设计相关的两个重要概念。 IIP&#xff08;Internal IP&#xff09; 定义&#xff1a; IIP 是 apiserver 所在…...

OpenCV--图像形态学

在图像处理领域&#xff0c;图像形态学是一种基于形状进行图像分析的有力工具&#xff0c;广泛应用于图像分割、特征提取、边缘检测、图像降噪等多个方面。借助 OpenCV 这个强大的计算机视觉库&#xff0c;我们可以轻松实现各种图像形态学操作。本文将深入探讨图像形态学的基本…...

智慧医疗数据集

WiNGPT2 更新时间&#xff1a;2024-11-29 访问地址: GitHub 描述&#xff1a; WiNGPT是一个基于GPT的医疗垂直领域大模型&#xff0c;旨在将专业的医学知识、医疗信息、数据融会贯通&#xff0c;为医疗行业提供智能化的医疗问答、诊断支持和医学知识等信息服务&#xff0c;…...

3D激光轮廓仪知识整理(待补充)

文章目录 1.原理和应用场景1.1 相机原理1.1.1 测量原理1.1.2 相机激光器1.1.3 沙姆镜头1.1.4 相机标定1.1.5 中心线提取 1.2 应用场景1.2.1 测量相关应用1.2.2 缺陷检测相关易用 2.相机参数介绍及选型介绍2.1 成像原理2.2 原始图成像2.3 生成轮廓图2.4 相机规格参数2.4.1 单轮廓…...

算法思想之双指针

文章目录 双指针字符串序列判定字符串所有整数最小和服务交换接口失败率分析分披萨最多团队 双指针 双指针是指在解决问题时使用两个指针&#xff0c;通常分别指向数组或字符串中的不同位置&#xff0c;通过移动这两个指针来解决问题的一种技巧。双指针技巧常用于解决数组、链…...

Windows环境下PyCharm 配置miniforge

问题描述. 目前Anconda python 环境管理软件&#xff0c;已非常臃肿。为了替代该软件&#xff0c;可以使用miniforge软件来代替。 1. 安装windows miniforge软件 (1) 下载网站&#xff1a;https://github.com/conda-forge/miniforge?tabreadme-ov-file 从网址下载&#xff…...

C语言基础18

内容提要 构造类型 结构体 共用体/联合体 枚举 typedef 构造类型 数据类型 基本类型/基础类型 整型 短整型&#xff1a;short [int] -- 2字节 基本整型&#xff1a;int -- 4字节 长整型&#xff1a;long [int] -- 32位4字节/64位8字节 长长整型&#xff1a;long long…...

Docker部署Jenkins服务

文章目录 1.下载Jenkins服务2.部署Java21&#xff08;可选&#xff09;2.1 安装Java21 3.Maven3.9.9安装4.启动Jenkins5.初始化Jenkins5.1 入门5.2 安装推荐的插件5.3 创建第一个管理员用户5.4 实例配置5.5 Jenkins已就绪5.6 开始使用Jenkins5.7 重启Jenkins 6.配置Jenkins6.1 …...