自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 收藏
  • 关注

原创 论文阅读 Understanding Oversquashing in GNNs through the Lens of Effective Resistance

1ᵤ是 “指示向量”:只有第 u 个位置是 1,其他都是 0(比如节点 u 是第 2 个节点,1ᵤ就是 [0,1,0,...,0]);通俗理解:这个公式是 “数学上计算有效电阻的方法”,结果越小,u 和 v 连通性越好。;dᵤ是节点 u 的度数(朋友数),这里是为了归一化,让不同度数的节点也能比较。有效电阻和 “节点间的路径数、路径长度” 直接相关—— 路径越多、越短,Rᵤᵥ越小;路径越少、越长,Rᵤᵥ越大。问题:GNN 的 Oversquashing 问题让远节点信息传不过来;

2025-12-20 19:41:01 727

原创 论文翻译:Understanding Oversquashing in GNNs through the Lens of Effective Resistance

消息传递图神经网络(GNN)是处理图结构数据的热门学习架构。然而,GNN 存在一个问题 —— 过挤压(oversquashing),即 GNN 难以在远距离节点间传递信息。理解并缓解过挤压近期已受到研究界的广泛关注。本文通过输入图中节点间的这一视角,继续深入研究该问题。有效电阻通过图中的路径直观捕捉两个节点间连接的 “强度”,且在图论多个领域有着丰富的研究基础。我们提出将作为图中总过挤压程度的边界,并为其应用提供了理论依据。我们进一步开发了一种算法,通过向输入图中添加边来最小化总有效电阻,从而缓解过挤压。

2025-12-16 23:41:30 994

原创 K-RagRec源码阅读:retrieval_topk()函数

输入:用户观影历史(文本 + 电影 ID 列表)筛选:选出最冷门的若干电影(局部召回:每部电影在GG1中检索相关实体(全局重排:用完整历史对候选实体重排序(re_ranking子图构造:为 top 实体构建一阶子图(输出:子图列表,用于下游推荐或解释graph = []对retrieval_topk的详解:数据集参数类型示例值说明selfobject当前推荐系统实例,包含图、映射、编码器等inputstr用户完整观影历史的字符串表示,用于编码全局兴趣,有10个List[int]从。

2025-12-08 17:12:53 574

原创 K-RagRec源码阅读 retrieve.py(3)

💡 “n_prizes” 可理解为 “node prizes” —— 每个节点的“得分”或“奖励”。在工业级推荐/检索系统中,常采用。(因为 0.9 > 0.8)

2025-12-08 13:17:41 1005

原创 K-RagRec源码阅读 retrieval.py(2)

这个函数不是为了 GNN 计算,而是为了。

2025-12-07 23:24:14 909

原创 NetworkX vs PyG 同一张图的两种不同表示形式

self.Graph 和 self.G 是同一张图的两种不同表示形式(NetworkX vs PyG)。前者便于做图遍历(如找邻居),后者便于做深度学习计算。self.Graphself.G在计算机科学中,图(Graph)是一种数据结构,由节点(Node/Vertex)边(Edge)组成。

2025-12-07 21:16:27 872

原创 seed随机种子

深度学习包含大量随机过程,包括参数初始化、数据打乱、dropout 等。随机种子用于固定这些随机性,使训练过程可重复。这可以保证每次运行得到相同的结果,便于调参、比较模型、复现实验、撰写论文,是机器学习科学实验的基本要求。

2025-12-05 22:10:39 487

原创 K-RagRec源码阅读:retrieve.py(1)

retrieve_movies_list:筛选出的电影 id 列表,retrieve_movies_list 仍然来源于用户历史,只是经过“选择”和“压缩”根据 MovieLens 数据集中所有电影的交互频次(被用户评分/观看的次数),将电影 ID 按照“从冷门到热门”排序,并返回这个排序列表。中的核心检索模块,负责从预训练好的知识图谱中,根据用户历史观看电影,检索相关的一阶 / 二阶子图,为 LLM 提供结构化的检索增强输入。按列表中的位置排序,也就是按“从冷门到热门”重新排序。

2025-12-05 14:43:18 709

原创 UI 和终端

UI =简单说:UI 就是有按钮、有窗口、有菜单的可视化界面比如:你双击图标打开软件、点按钮运行程序、看到图形界面、用鼠标操作,这都叫 UI。它通常表现为:图形界面、可视化界面、按钮、窗口、输入框,图形用户界面,简称 UI。

2025-12-04 21:14:57 391

原创 Windows、Linux、macOS概念梳理

Windows、Linux、macOS 都是操作系统Unix 是老祖宗Linux 最适合开发和服务器命令行是用文字操作电脑Shell 是执行命令的程序脚本是自动化命令的文件一句话概括:程序员写代码、跑实验时,多在 Linux 上用 Shell 写脚本,通过命令行操作服务器。

2025-12-04 20:58:37 938

原创 SIFT尺度不变特征变换

SIFT 是传统局部特征的「标杆」,以「尺度 + 旋转不变性」和高精度著称,但因速度慢、有专利,更适合对精度要求极高的场景;而你实验中选择的 ORB,是 SIFT 的「轻量化替代方案」,以牺牲少量精度为代价,实现了开源免费、高速提取,完全适配家具分类这类结构化物体的分类任务,这也是你能取得 99.1% 高准确率的关键选型依据。

2025-12-04 19:52:56 708

原创 视觉词袋(Bag of Visual Words, BoVW)向量生成

原始图像 → 提取局部描述子(ORB/SIFT) → 量化为视觉单词ID → 统计基础频次BoW → TF-IDF加权 → L2归一化 → 最终BoW向量 → 输入分类器(SVM)→ 分类结果量化是 “降维映射” 的核心,将变长描述子转为固定长度的单词 ID;TF-IDF 加权是图像分类的 “精度关键”,突出有区分度的视觉单词;归一化是 “稳定性保障”,消除向量尺度差异对分类器的干扰。

2025-12-04 15:56:23 472

原创 构建视觉词典(visual vocabulary / codebook)

构建视觉词典就是把(比如 ORB 的二进制描述子)聚成若干类“视觉单词”(visual words)。每个簇心代表一类相似的局部图像模式(比如“椅子腿的某种局部纹理”)。之后把每张图像里出现的这些单词频率统计成一个定长向量(BoW histogram),用于训练分类器。

2025-12-03 23:00:26 178

原创 ORB局部描述子提取

FAST 的核心任务是在图像中快速找到 “角点”—— 角点就是图像中「灰度变化剧烈、周围像素明暗对比明显」的点。Features:特征 → 这里特指 “角点特征”(图像中最稳定、最易识别的局部特征)。from:来自 → 说明特征是从 “加速分段测试” 中提取的。:加速 → FAST 算法的核心优势!比传统角点检测(如 Harris 角点)快 10-100 倍,适合实时场景(比如视频跟踪)。:分段测试 → 这是 FAST 检测角点的核心逻辑。BRIEF 的核心任务是。

2025-12-03 22:37:50 661

原创 HSV 3D Histogram(直方图)全局特征提取

HSV 是一种颜色空间(Color Space),和我们更熟悉的 RGB(红绿蓝)不同,HSV 更接近人类对颜色的感知方式。H(Hue,色调):表示颜色的种类,比如红色、绿色、蓝色等。取值范围通常是 0°–360°(在 OpenCV 中常被归一化到 0–180,因为用 8 位图像表示)。S(Saturation,饱和度):表示颜色的纯度或鲜艳程度。0 表示灰色,越高越鲜艳。V(Value,明度/亮度):表示颜色的明亮程度。0 是黑色,越高越亮。

2025-12-03 21:26:37 385

原创 K_RagRec源码阅读:index_KG.py(3)

这段代码是自己实现一个简化版的GCN层(Graph Convolutional Network),然后构建2层GCN,对输入的图数据编码并保存中间层的节点嵌入结果。下面我用一个电影推荐系统 + 知识图谱的具体例子,帮助你直观理解。假设我们有一个知识图谱(KG),由三元组构成:在代码里,这些数据被转换成:通常是初始嵌入(initial embeddings),比如:Description文本embedding(例如SBERT)One-hot向量Random initialization但这些embedd

2025-12-02 14:12:02 950

原创 K_RagRec代码阅读:lm_modelling.py

功能:指定预训练模型的仓库地址(来自 Hugging Face Hub)细节解析:专门优化句子嵌入的库,基于 Hugging Face Transformers 封装,适合语义相似性、文本匹配任务:模型基座是 RoBERTa(优化版 BERT),"large" 表示模型规模(隐藏层维度 1024),专门为句子级嵌入训练,知识图谱中用于将实体描述、关系描述等文本转换为语义向量(后续用于实体匹配、关系抽取等)作用:确定使用的预训练权重,避免从零训练,直接复用成熟的语义表示能力功能。

2025-11-28 23:08:19 985

原创 K_RagRec代码详解:Index_KG.py(2)

可以把它想象成 Excel 表格。和上面完全一样,但这次是对。

2025-11-28 22:33:20 796

原创 Sentence-BERT (SBERT) 详解:原理、使用与比较

SBERT 是一种专门用于生成高质量句子嵌入的模型,通过微调预训练 BERT 模型,使生成的嵌入能够更好地捕捉语义相似性。与普通 BERT 相比,SBERT 在句子相似度任务上更高效、更准确。

2025-11-26 22:07:10 820

原创 PyTorch Geometric Data 对象与 .pt 文件

结构化:所有字段都对应图数据的核心组件(节点、边、向量),字段名固定,模型能直接通过data.x调用;二进制:不占用额外空间,加载速度比 CSV 快 10~100 倍(模型训练时不用重复解析文本);模型友好:张量格式能直接在 GPU 上运算,无需额外转换(这也是为什么不用 CSV 直接给模型用)。

2025-11-26 21:17:23 404

原创 K_RagRec代码分析:构建知识图谱index_KG.py(1)

函数定义输入参数:三元组字符串列表(实际传入单条三元组,格式为),存储原始实体 - 关系 - 实体组合;比如['/m/05z5lc /film/film/starring /m/03l72gz'],列表里面只有一个元素.node_ids全局共享的实体原始 ID→数字 ID」映射字典,用于维护跨三元组的实体标识一致性,确保同一实体仅分配唯一数字 ID。如:{'/m/05z5lc': 0, '/m/03l72gz': 1}返回值。

2025-11-26 11:16:13 691

原创 K_RagRec知识图谱数据集

知识图谱的核心是 “实体 ID + 关系 + 实体 ID” 的三元组结构 —— 机器(模型)只需要 ID 是唯一、可识别的,就能理解 “/m/05z5lc(电影)和 /m/0_gm92y(某工作人员)存在‘其他工作人员’的关系”,不依赖 “实体名称” 就能完成推理、检索等任务(比如 “找到和该电影共享同一位其他工作人员的作品”)。的名称会导致 “不知道这个‘其他工作人员’具体是谁”,但这属于 “细节信息缺失”,不影响知识图谱的。(比如你依然能知道 “这个电影有其他工作人员”,只是不知道具体姓名)。

2025-11-25 20:55:14 401

原创 K_RagRec项目数据集解析

例如:1,"['3186', '1270', '1721', '1022', '2340', '1836', '3408', '2804', '1207', '1193']","[1, 1, 1, 1, 0, 1, 1, 1, 1, 1]",720,0,978300760。all_data.json:系统提供20个推荐选项,但是数据很多,可能有50多万条。,不是分析用户不喜欢的电影。ratings_45.txt:筛选 评分 ≥ 4的数据,因为推荐系统是。train.csv(核心训练集):模型训练的。

2025-11-25 17:21:51 818

原创 VScode 添加远程服务器教程

在 Remote Explorer 界面右上角找到 "+" 号(添加新连接),点击它。打开终端进行交互:终端 = 远程服务器的命令行窗口 = 你操作服务器的 “遥控器”Ctrl+S保存配置文件后,此时就能在左侧SSH中看到添加的远程服务器地址了。打开左边的侧边栏方块四宫格图标:扩展(Extensions)(作者:Microsoft),点击Install安装。在弹出的输入框中,完整输入服务器的连接命令。正确输入密码后,就成功连接了。按enter键后,会出现让你。

2025-11-21 13:12:01 508

原创 基于大语言模型(LLM)的推荐系统

传统推荐系统(协同过滤、序列模型等)主要处理的数据(如用户ID、物品ID、评分、点击时间)。它们像是优秀的“模式识别器”,但不理解数据背后的。传统推荐系统主要利用用户和物品的ID、数值特征、类别特征等,而LLM-based推荐系统则利用LLM对文本信息的强大理解能力,将用户历史行为(如点击、购买等)和物品的文本信息(如标题、描述)作为输入,通过LLM来理解用户偏好和物品特性,从而进行推荐。

2025-11-03 21:41:50 705

原创 推荐系统演进过程

使用LLM(如Llama 2)对候选物品进行精细排序,通过提示模板将用户历史和候选物品转换为文本,并利用LLM的输出 logits 计算排序分数。:利用大语言模型(LLM)的强大语言理解能力,处理文本特征(如物品标题、描述),进行更智能的推荐。如果用户 A 和 B 的历史行为相似,那么 A 喜欢的、B 没看过的内容,也推荐给 B。:使用余弦相似度或欧几里得距离等算法,计算用户画像与候选物品之间的相似度,推荐相似度高的物品。:根据用户历史喜欢的物品,构建用户偏好档案(例如,通过加权平均物品特征)。

2025-11-03 19:31:21 494

原创 推荐系统发展路径

特性传统推荐系统LLM辅助的推荐系统核心原理统计关联,矩阵计算语义理解,逻辑推理数据依赖用户-物品交互矩阵交互数据 + 文本描述 + 通用知识物品表示ID, 稀疏向量, 手工特征稠密语义向量, 自然语言描述用户表示历史交互ID列表, 画像向量自然语言描述的历史行为序列推荐逻辑“相似用户喜欢” 或 “类似物品”“基于你的历史和物品描述,推理得出”可解释性较弱,通常需要后处理生成理由极强,可直接生成自然语言理由冷启动困难相对容易(可利用物品文本描述)主要挑战稀疏性,流行度偏差,特征工程。

2025-10-28 22:50:38 748

原创 Python 类的用法

self代指当前对象实例,cls代表当前类class 类名:"""类的文档字符串(可选,说明类的功能)"""# 类属性(所有对象共享的属性)类属性名 = 属性值# 初始化方法(创建对象时自动调用,用于初始化对象的属性)def __init__(self, 参数1, 参数2, ...):# 实例属性(每个对象独有的属性,用 self. 定义)self.实例属性名1 = 参数1self.实例属性名2 = 参数2# 实例方法(操作实例属性的方法,第一个参数必须是 self)

2025-10-24 22:37:35 876

原创 面向对象和面向过程 编程思想

面向过程(Procedure-Oriented Programming,简称 POP)和面向对象(Object-Oriented Programming,简称 OOP)是两种不同的编程思想,它们的核心差异在于。理解这两种思想的区别,能帮助你在不同场景下选择更合适的编程方式。

2025-10-24 21:39:11 683

原创 Python里的内置函数

在 Python 中,指的是。绝大多数内置函数由 C 语言实现,执行速度远快于用 Python 代码手动编写的同等功能(例如sum()比自己写循环求和快很多)。

2025-10-24 17:55:56 849

原创 Python 中匿名函数(lambda 表达式)的用法详解

Lambda 表达式(也称为匿名函数)是 Python 中用于创建小型、一次性使用的匿名函数的一种简洁方式。它们使用lambda关键字定义,不需要使用def关键字来正式定义函数。

2025-10-24 16:14:09 664

原创 Python里 函数的用法

定义函数是 Python 编程的核心工具,掌握函数的定义、参数、返回值、作用域、嵌套、闭包、递归等知识,能极大提升代码的模块化和复用性。建议通过大量练习(如实现数学运算、数据处理等功能)加深理解,逐步熟练运用各种函数特性。

2025-10-24 14:58:57 974

原创 Python 常见 bug 总结和异常处理

当系统内置异常无法满足需求时(如业务特定错误),可通过继承Exception(或其子类)定义自定义异常,使异常更具语义化。# 定义自定义异常(继承Exception)"""年龄不合法异常"""super().__init__(f"无效年龄:{age}(必须在0-150之间)")# 使用自定义异常raise InvalidAgeError(age) # 主动触发# 捕获自定义异常try:print(f"处理异常:{e}") # 输出:处理异常:无效年龄:200(必须在0-150之间)最佳实践。

2025-10-23 21:30:29 992

原创 python里面的re模块和正则表达式

一种用于描述字符串模式的工具,通过预定义符号(元字符)匹配、查找、替换符合规则的字符串。应用场景:验证格式(邮箱、手机号)、提取信息(日志中的 IP)、批量替换文本等。预定义字符含义等价于\d匹配任意数字(0-9)[0-9]\D匹配任意非数字[^0-9]\w匹配字母、数字、下划线(a-z, A-Z, 0-9, _)\W匹配非字母、数字、下划线\s匹配空白字符(空格、Tab、换行等)\S匹配非空白字符\b匹配单词边界(单词与非单词的分隔处)\B匹配非单词边界r。

2025-10-23 21:03:28 992

原创 Transformer通俗理解

输入一句话↓[Embedding 层] → 把每个词变成数字向量↓[位置编码 Positional Encoding] → 告诉模型“词的顺序”↓[编码器 Encoder] → 理解这句话的意思(6 层)↓[解码器 Decoder] → 生成回答(也是 6 层)↓输出回答Fully connected layer(全连接层)把最后的向量变成一个大数组数组的长度 = 词汇表大小(比如 30,000 个词)每个值代表“这个位置出现某个词的概率”步骤中文英文作用1输入文本。

2025-10-20 00:13:39 812

原创 AIGC之扩散模型Diffusion Model

简单说:以前是 “人创作内容,AI 辅助处理”(比如用 PS 修图),现在是 “人给 AI 指令,AI 直接创作内容”(比如给 AI 说 “画一只会飞的熊猫”,AI 直接出图)—— 这就是 AIGC 的核心。你只需要知道,它是在利用预测的噪声,来“计算”出上一步更清晰的图像。c. 根据一个特定的公式(基于我们前向过程的数学推导),利用预测出的噪声 ϵθ​,计算出去除一部分噪声后的图片 xt−1​。,而不是被动处理已有的数据(比如 AI 识别图片里的猫,是 “处理内容”,不是 AIGC)。

2025-10-19 22:53:05 609

原创 GAN 生成对抗网络 (Generative Adversarial Network)

GAN 是通过让一个“造假者”(生成器)和一个“警察”(判别器)不断对抗,最终让造假者学会生成以假乱真的数据。

2025-10-17 21:12:05 1156

原创 LSTM长短期记忆网络

LSTM(长短期记忆网络,Long Short-Term Memory)是 RNN 的 “升级版”,专门解决标准 RNN 的 “梯度消失 / 爆炸” 问题,能有效记住长序列中的关键信息(比如一句话开头和结尾的关联)。它的核心是通过 “门控机制” 控制信息的 “保存”“更新” 和 “输出”,我们一步步拆解它的原理、结构和计算过程。标准 RNN 的隐藏状态ht​会随着时间传递,但在长序列中,早期信息的梯度会因多次矩阵乘法而 “消失”(比如 0.5^100≈0),导致模型记不住远距离的依赖。

2025-10-17 16:46:00 698

原创 RNN循环神经网络

问题回答什么是序列数据?有顺序、前后依赖的数据,如文本、语音、时间序列。什么是序列模型?能处理序列、理解顺序依赖的模型,如RNN。为什么CNN不适合?感受野有限、没有记忆、难处理长期依赖。一、RNN 的核心使命:解决 “序列依赖” 问题普通神经网络(如全连接网络、CNN)的输入是 “独立的”“固定长度的”,比如一张图片的像素(打乱顺序不影响识别)、一个固定维度的特征向量。文本:“我今天去____”,空格处的词依赖 “今天”“去” 这些前文信息;时间序列:明天的气温依赖过去 7 天的气温趋势。

2025-10-17 15:22:19 901

原创 NLP与各种模型的关系

模型/架构类型基于核心能力典型应用场景RNN/LSTM序列模型循环结构处理序列,记忆短期依赖早期的文本分类、NER、简单翻译基础架构自注意力机制并行处理,捕捉长距离依赖所有现代NLP模型的基础BERT预训练模型编码器双向理解上下文文本分类、NER、问答GPT预训练模型解码器自回归文本生成聊天机器人、文章创作、代码生成T5预训练模型编码器-解码器统一文本到文本任务翻译、摘要、问答、生成BART预训练模型编码器-解码器理解并生成(去噪)文本摘要、机器翻译简单来说。

2025-10-16 20:30:30 944

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除