一、介绍
计算机的出现是为了解决现实世界中的问题,特别是那些复杂的难于被人类处理的算法和流程。正如流行歌曲中唱的那样“你就是那一张无边无际的网,轻易就把我网在了网中央”,现实世界的描述往往就是一张巨大的网格,它的海量的节点和关系不是人能够完全掌控和分析的。那么映射到计算机呢?会不会就容易了很多。
举一个最常用的例子,大家每天接触的网络,其实就是一个巨大的有向图。可以把计算机、网页或者其它等等都定义为这个图的节点。它们之间的每一次互动,都可以定义为连接的边。边的指向节点和被指向节点的连接数量,就可以确定它们的关系的紧密度(比如一台计算机A,总是和另外两台计算机B和C通信,那么这三者间紧密度就高)。这个紧密度就可以定义为节点间连接的权重(当然可能实际情况还会根据B和C的重要性进行综合处理)。
二、PageRank算法
在了解了网络中的节点连接权重处理之后就可以顺理成章的转移到网页间的超链接的关系(通过紧密度来构建依赖权重),为了解决节点间互相循环产生的依赖的问题(有没有线程死锁的味道)。可以通过线性代数中的状态转移矩阵来进行处理,矩阵的列表示了网页的影响力(依赖)的概率。这样就构造出一个基于数学计算的数字模型。
在这个数学模型中,即使任何随机的网页点击(随机冲浪者或随机游走),当这个点击的次数足够大时,通过状态转移矩阵与初始状态向量不断进行乘法,其最终会收敛到一个特定的值。即其稳态特征向量,而在这个特征向量中,最大的访问概率(即此页面的PageRank值)的页面就是搜索引擎返回排名的第一位。
不过,在实际的网络中,可能会有不少网页形成了孤岛效应,比如文学相关的网页很难跳到化学相面的网页中去,所以又引入了所谓的“阻尼系数”,通常设置为0.85,用来模拟用户随机跳到新页面(不通过链接)的概率。
PageRank算法正是通过分析网页间的超链接关系来评估网页的重要性,从而确定在搜索引擎中的排名。它是由谷歌创始人拉里·佩奇(Larry Page)和谢尔盖·布林(Sergey Brin)提出的分析算法,是早期谷歌搜索引擎的核心排序技术。
三、大模型的应用
在明白了了PageRank算法后,就要看在现在的大模型中是如何应用此算法的。一般来说,常用的方向有以下几个:
- 知识图谱的创建
由大模型处理后的结果,通过PageRank来构建严谨的知识图,评估不同节点间的连接重要性,寻找输出结果的关键路径。让这些结果尽量消除大模型的幻觉 - 长文本的信息过滤
同样利用图创建相关的句子和词语的图结构,利用PageRank算法来过滤掉不重的信息,只关心重点的、核心的内容 - 优化RAG检索
这是在大模型应用中最有优势的地方,通过PageRank对检索的信息进行Rerank,找出互相关联度高、关系最近的相关信息,同时过滤掉噪声等等。让输出结果更准确,这在某些特定领域如医学等,有着非常重要的作用 - 增加模型的健壮性
利用PageRank算法将RAG系统中可能被投喂的无效或恶意信息进行识别判断,从而提升系统的健壮性
四、总结
PageRank本身是用来对搜索引擎进行支持的一个底层技术。它是通过网页链接关系紧密度和相关的随机游走思想来实现网页排名的经典算法。PageRank算法从早期的谷歌搜索引擎发展到如今大模型时斯的基础算法之一,是AI和大模型的系统支撑和信息处理的重要工具。

2万+

被折叠的 条评论
为什么被折叠?



