[学习笔记]PageRank算法
参考资料:改变世界的谷歌PageRank算法
pagerank算法用于计算节点重要度
思想
如果网页被更多的入度(被引用),则网页更重要。
被重要网站引用比被普通网站引用更加凸显重要性。
所以考虑一个网站是否重要,需要看引用它的网站是否重要,这就成了一个递归的问题。
理解pagerank的五个角度
迭代求解线性方程组

例子

这里看上去有三个方程,三个未知数,其实只有2个方程。
虽然高斯消元可以求解,但是可扩展性较差。
节点j的rank值 r j r_j rj是考虑所有到 j j j的节点的rank值,各自除以它的出度,再求和。
迭代求解

迭代左乘M矩阵
迭代的过程用矩阵表示:(左边的矩阵的i行j列 A i j 有非零值 A_{ij}有非零值 Aij有非零值表示存在第j个节点到第i个节点的有向边)

左边的矩阵称为列概率矩阵(列转移矩阵/列替代矩阵,column stochastic matrix)
右边的向量叫pagerank向量
矩阵的特征向量
迭代公式:
r = M ⋅ r r=M \cdot r r=M⋅r其实可以看作是
1 ⋅ r = M ⋅ r 1 \cdot r=M \cdot r 1⋅r=M⋅r
从这个角度看,pagerank向量就是M矩阵的特征值为1的特征向量。

对于Column Stochastic矩阵,由Perreon-Frobenius定理,最大的特征值就是1,且存在唯一的主特征向量(特征值1对应的特征向量),向量所有元素求和为1。
通过幂迭代的方式,可以快速求解pagerank向量。
随机游走
随机游走->计数求和->归一化为概率,得到的就是pagerank向量。


马尔科夫链


求解pagerank


收敛性分析

1. 是否收敛-收敛,收敛到同一个结果
Ergodic Theorem
根据Ergodic Theorem,对于不可约(irreducible)和非周期(aperiodic)的马尔可夫链:
1.存在一个唯一的稳定的马尔科夫分布
2.并且所有初始分布收敛到同一个分布
可约(reducible)马尔可夫链和不可约马尔可夫链
可约是存在孤立的状态
不可约是所有状态都可达

周期马尔可夫链和非周期马尔可夫链

2.结果是不是代表重要度-两类问题
Spider trap问题
所有的出度边都在group里面,导致这个group吸收了所有的重要度

dead end问题
没有出度,重要度最终为0

对于这两种情况,即使收敛了,也不是合理的网络重要度。
例子




解决办法
spider trap问题的解决办法

dead end的解决办法

最终解决办法


pagerank的升级-mapreduce的工作

pagerank算法用于计算节点相似度-用于推荐系统
给定:一个bipartite graph用于表示用户和商品的交互
目标:寻找与指定节点最相似的节点
假设:被同一个用户访问过的节点,更可能是相似的
pagerank,随机游走视角的启发
pagerank的一种解释是:随机游走,并有概率随机传送到网络中的任意一个节点,继续游走
Topic-Specific PageRank(也称为personalized pagerank):随机游走,并有传送到指定的一些节点,继续游走
random walks with restarts:随机游走,并有传送到指定的一个节点,继续游走
随机游走访问次数-相似性的度量
给定一个节点集query_nodes,模拟一个随机游走:
- 记录访问次数
- 在概率 α \alpha α下,在query_nodes中重启walk
- 有高访问次数的节点则和query_nodes中的点有更高的相似性
伪代码

优点

代码实战
参考资料:https://www.bilibili.com/video/BV1Wg411H7Ep/?p=16&spm_id_from=pageDriver
相关文章:
[学习笔记]PageRank算法
参考资料:改变世界的谷歌PageRank算法 pagerank算法用于计算节点重要度 思想 如果网页被更多的入度(被引用),则网页更重要。 被重要网站引用比被普通网站引用更加凸显重要性。 所以考虑一个网站是否重要,需要看引用它的网站是否重要&#…...
【洛谷算法题】P5704-字母转换【入门1顺序结构】
👨💻博客主页:花无缺 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5704-字母转换【入门1顺序结构】🌏题目描述🌏输入格式&a…...
Pytorch——查找、替换module相关操作
nn.Module类可用操作 1. model.named_parameters() # 遍历模型的所有参数并打印它们的名称和形状 for name, param in model.named_parameters():print(f"Parameter Name: {name}, Parameter Shape: {param.shape}")输出示例: Parameter Name: conv1.w…...
组件安全以及漏洞复现
组件安全 1. 概述 A9:2017-使⽤含有已知漏洞的组件 A06:2021-Vulnerable and Outdated Components 组件(例如:库、框架和其他软件模块)拥有和应用程序相同的权限。如果应用程序中含有已知漏洞的组件被攻击者利用,可能会造成…...
人工智能安全-4-小样本问题
0 提纲 小样本学习问题数据增强基于模型的小样本学习基于算法的小样本学习相关资源1 小样本学习问题 在小样本监督分类中,通常将问题表述为 N-way-K-shot分类, 当K = 1,称为one-shot learning;当K = 0时,成为zero-shot learning(ZSL)。ZSL就要求学习的问题具备充足的先…...
iOS 17中的Safari配置文件改变了游戏规则,那么如何设置呢
Safari在iOS 17中最大的升级是浏览配置文件——能够在一个应用程序中创建单独的选项卡和书签组。这些也可以跟随你的iPad和Mac,但在本指南中,我们将向你展示如何使用运行iOS 17的iPhone。 你可能有点困惑,为什么Safari中没有明显的位置可以添…...
AC自动机小结
AC自动机是一种多模匹配算法。 常见操作 查询一个串的子串 任何一个串的子串都可以表示成他的一个前缀的后缀 他的前缀可以在Trie树上查询 后缀相当于其在fail树上的所有祖先 例1 : HDU4117 接上。首先AC自动机要学会离线。 对于每个点查询祖先复杂度很大。…...
【C++】构造函数分类 ③ ( 调用有参构造函数的方法 | 括号法 | 等号法 )
文章目录 一、在不同的内存中创建类的实例对象1、括号法调用构造函数2、等号法调用构造函数 二、完整代码示例 一、在不同的内存中创建类的实例对象 在上一篇博客 【C】构造函数分类 ② ( 在不同的内存中创建类的实例对象 | 栈内存中创建实例对象 | new 关键字创建对象 ) 中 , …...
uni-app 之 uni.request 网络请求API接口
uni-app 之 uni.request 网络请求API接口 image.png <template><!-- vue2的<template>里必须要有一个盒子,不能有两个,这里的盒子就是 view--><view>--- uni.request 网络请求API接口 ---<view><!-- 免费的测试接口 --…...
代码随想录33|509. 斐波那契数,70. 爬楼梯,746. 使用最小花费爬楼梯, 34. 在排序数组中查找元素的第一个和最后一个位置
509. 斐波那契数 链接地址 class Solution { public:int fib(int n) {if (n < 1) return n;vector<int> dp(n 1);dp[0] 0;dp[1] 1;for (int i 2; i < n 1; i) {dp[i] dp[i - 1] dp[i - 2];}return dp[n];} };70. 爬楼梯 链接地址 class Solution { public…...
什么是Executors框架?
Executors 是 Java 标准库中的一个工具类,位于 java.util.concurrent 包中,用于创建和管理线程池。它提供了一组静态工厂方法,用于快速创建不同类型的线程池。Executors 框架的目标是使线程池的创建和管理更加简单和方便。 以下是一些 Executors 框架的常用工厂方法和线程池…...
【kafka】kafka单节点/集群搭建
概述 本章节将分享不同版本的kafka单节点模式和集群模式搭建。 在kafka2.8版本之前,需要依赖zookeeper服务,而在kafka2.8版本(包括)之后,可以不在依赖zookeeper服务。本章节将分kafka2.8版本之前的版本和之后的版本分…...
如何进行机器学习
进行机器学习主要包含以下步骤: 获取数据:首先需要获取用于学习的数据,数据的质量和数量都会影响机器学习的效果。如果自己的数据量较少,可以尝试在网上寻找公开数据集进行训练,然后使用自己的数据进行微调。另一种方…...
Vue项目使用axios配置请求拦截和响应拦截以及判断请求超时处理提示
哈喽大家好啊,最近做Vue项目看到axios axios官网:起步 | Axios 中文文档 | Axios 中文网 (axios-http.cn) 重要点: axios是基于Promise封装的 axios能拦截请求和响应 axios能自动转换成json数据 等等 安装: $ npm i…...
《DevOps实践指南》- 读书笔记(四)
DevOps实践指南 Part 3 第一步 :流动的技术实践11. 应用和实践持续集成11.1 小批量开发与大批量合并11.2 应用基于主干的开发实践11.3 小结 12. 自动化和低风险发布12.1 自动化部署流程12.1.1 应用自动化的自助式部署12.1.2 在部署流水线中集成代码部署 12.2 将部署…...
盲打键盘的正确指法指南
简介 很多打字初学者,并不了解打字的正确指法规范,很容易出现只用两根手指交替按压键盘的“二指禅”情况。虽然这样也能实现打字,但是效率极低。本文将简单介绍盲打键盘的正确指法,以便大家在后续的学习和工作中能够提高工作效率…...
【MySQL】索引 详解
索引 详解 一. 概念二. 作用三. 使用场景四. 操作五. 索引背后的数据结构B-树B树聚簇索引与非聚簇索引 一. 概念 索引是一种特殊的文件,包含着对数据表里所有记录的引用指针。可以对表中的一列或多列创建索引,并指定索引的类型,各类索引有各…...
怎么通过ip地址连接共享打印机
在现代办公环境中,共享打印机已成为一种常见的需求。通过共享打印机,多个用户可以在网络上共享同一台打印机,从而提高工作效率并减少设备成本。下面虎观代理小二二将介绍如何通过IP地址连接共享打印机。 确定打印机的IP地址 首先࿰…...
迅为i.MX8mm小尺寸商业级/工业级核心板
尺寸: 50mm*50mm CPU: NXP i.MX8M Mini 主频: 1.8GHz 架构: 四核Cortex-A53,单核Cortex-M4 PMIC: PCA9450A电源管理PCA9450A电源管理NXP全新研制配,iMX8M的电源管理芯片有六个降压稳压器、五…...
vue中v-for循环数组使用方法中splice删除数组元素(错误:每次都删掉点击的下面的一项)
总结:平常使用v-for的key都是使用index,这里vue官方文档也不推荐,这个时候就出问题了,我们需要key为唯一标识,这里我使用了时间戳(new Date().getTime())处理比较复杂的情况, 本文章…...
别再只调库了!拆解一个智能家居语音项目,聊聊STM32裸机开发中多任务处理的几种实用思路
裸机开发的艺术:STM32智能家居项目中多任务处理的五种高阶策略 从智能家居项目看裸机开发的挑战与机遇 在嵌入式开发领域,RTOS(实时操作系统)的普及让许多开发者形成了思维定式——面对多任务需求时,第一反应往往是移植…...
掌握Nemo文件管理器:Cinnamon桌面环境的高效文件管理利器
掌握Nemo文件管理器:Cinnamon桌面环境的高效文件管理利器 【免费下载链接】nemo File browser for Cinnamon 项目地址: https://gitcode.com/gh_mirrors/ne/nemo Nemo作为Cinnamon桌面环境的默认文件管理器,不仅仅是一个简单的文件浏览器…...
PlayCover 2.0重构Mac游戏体验:社交与云服务双引擎驱动革新
PlayCover 2.0重构Mac游戏体验:社交与云服务双引擎驱动革新 【免费下载链接】PlayCover Community fork of PlayCover 项目地址: https://gitcode.com/gh_mirrors/pl/PlayCover 在Mac平台运行iOS游戏长期面临两大痛点:缺乏社交连接与跨设备数据同…...
别再纠结模型了!用Python+Simulink快速搭建四旋翼无人机仿真(附完整代码)
用PythonSimulink快速搭建四旋翼无人机仿真实战指南 四旋翼无人机开发中最令人头疼的环节,往往不是控制算法设计,而是如何快速搭建一个可靠的仿真环境。我曾见过不少团队在模型选择上耗费数周时间,最终却陷入理论完美主义陷阱——他们反复纠结…...
实用教程!用fft npainting lama镜像批量处理图片水印
实用教程!用fft npainting lama镜像批量处理图片水印 1. 引言 1.1 为什么需要批量水印处理 在日常工作中,我们经常遇到需要处理大量带有水印图片的情况。无论是电商平台的商品图、社交媒体上的素材,还是企业内部文档,水印的存在…...
跨平台网络资源嗅探下载工具:一站式解决多媒体内容获取难题
跨平台网络资源嗅探下载工具:一站式解决多媒体内容获取难题 【免费下载链接】res-downloader 资源下载器、网络资源嗅探,支持微信视频号下载、网页抖音无水印下载、网页快手无水印视频下载、酷狗音乐下载等网络资源拦截下载! 项目地址: https://gitcod…...
全网最详细的AI产品经理学习路线,非常详细收藏这一篇就够了
前言 AI产品经理作为一个新兴且热门的职业,不仅需要具备传统产品经理的能力,还需要对AI技术有深入的理解和应用。本学习路线旨在帮助有志于成为AI产品经理的学习者系统地掌握所需的知识和技能。 前排提示,文末有大模型AGI-CSDN独家资料包哦…...
专访越擎科技创始人: 外骨骼的设计与仿真该如何入门
具身智能机器人领域的技术创新如火如荼,从轮式机器人,人形机器人,四足机器狗等不一而足。而从分类来看,外骨骼机器人作为增强人的能力的典型应用,不仅在医疗领域发挥重要作用,在工业应用等场景中也大大的增…...
从零到一:手把手教你用海康VisionMaster完成第一个字符识别项目(附完整流程与避坑点)
从零到一:手把手教你用海康VisionMaster完成第一个字符识别项目(附完整流程与避坑点) 在工业自动化领域,字符识别技术正逐渐成为生产线上的"眼睛"。无论是产品追溯码读取、包装日期检测,还是仪表盘数值记录&…...
NaViL-9B效果实测:支持‘请将图中文字翻译为英文,并描述整体场景’
NaViL-9B效果实测:支持请将图中文字翻译为英文,并描述整体场景 1. 多模态能力惊艳亮相 NaViL-9B作为新一代原生多模态大语言模型,在图文理解方面展现出令人印象深刻的能力。不同于传统模型仅能处理单一模态,它能够同时理解图片内…...

