简述PageRank

本文探讨了早期搜索引擎面临的词项作弊问题及谷歌采用的PageRank技术。PageRank通过模拟网络用户的浏览行为评估网页的重要性,有效提高了搜索结果的质量。此外,还讨论了如何克服复杂Web结构对PageRank的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文主要内容有词项作弊、PageRank原理以及如何解决复杂Web结构带来的问题。

词项作弊

这里要说一点历史,早期的搜索引擎(谷歌出现之前)大部分都是利用网络爬虫(第一次知道爬虫有这么久的历史)从Web上抓取数据,然后通过倒排索引的方式列出每个页面所包含的词项。倒排索引是一种很容易从给定词项找到它所在的所有网页的数据结构,简单理解就是我们一般都是从key出发去查找Value,这里在添加了一些附加信息之后可以让我们从value来查找Key。

一般词项会出现在网页头部,这会增加网页的相关性,同时,词项的出现次数越多,网页的相关性也会增加。下面引出词项作弊:
先给出定义:欺骗搜素引擎让它们相信一个本来不相关的页面相关的技术。
具体是怎么做的呢?前边提到,页面的相关性是和网页头部的词项及其出现的次数紧密相关的,那么,我们就可以在我们的网页中添加一个搜索率很高的词项,并且重复很多次,更有甚者,直接将某个关键词搜索结果的第一个网页直接复制过来,然后将颜色设置为背景色便可做到伪装。
为了对抗词项作弊,谷歌提出了两项创新:

  • 使用了PageRank技术来模拟Web冲浪者的行为,这些冲浪者从随机页面出发,每次从当前页面随机选择出链前行,该过程可以迭代多次。最终,这些冲浪者会在页面上汇合。较多冲浪者访问的网页的重要性被认为高于那些较少冲浪者访问的网页。谷歌在决定查询应答顺序时,会将重要的网页排在不重要的网页前面。
  • 在判断网页内容时,不仅只考虑网页上出现的词项,还考虑指向该网页的链接中或周围所使用的词项。值得注意的是,虽然作弊者很容易在它们控制的网页中增加虚假词项,但是在指向当前网页的网页上添加虚假词项却并不那么容易,除非他们控制了这些网页。

PageRank原理

  • 定义:PageRank是一个函数, 它对Web中的每个网页赋予一个实数值。它的意图在于,网页的PageRank越高,那么它就越“重要”。
    假设我们有4个网页,组成了如下的有向图:
    这里写图片描述
    我们定义web转移矩阵来描述随机冲浪者的下一步访问行为。如果网页数目为n,则该矩阵M是一个n行n列的方阵。如果网页j有k条出链,那么对每一个出边链向的网页i,矩阵第i行第j列的矩阵元素mij值为1/k。而其他网页i的mij=0。
    针对上图,我们可以得到如下转移矩阵:
    这里写图片描述
    可以看出,M是一个马尔科夫矩阵,下面对马尔科夫矩阵做简要说明:
    一个矩阵是马尔科夫矩阵,那么它满足以下两条性质:

  • 每个元素大于等于0

  • 每一列和为1
    而且,马尔科夫矩阵的其中一个最大的特征值是1,其他特征值的绝对值小于1。
    这里写图片描述
    我们继续,随机冲浪者位置的概率分布可以通过一个n维向量v来描述,其中向量中的第j个分量代表冲浪者处于网页j的概率,该概率就是理想化的PageRank函数值。
    当前概率分布为v时下一步的概率分布为x=Mv。
    推导:
    这里写图片描述
    (哎呀,字真的难看)
    那么我们假设随机冲浪者处于n个网页的初始概率相等,即为n分之一,则有
    这里写图片描述
    可见,在马尔科夫矩阵的作用下,概率分布向量逐渐趋于稳态。

解决复杂Web结构带来的问题

但是,当前web结构不是都像上例那么简单,而是呈蝴蝶结型结构。
这里写图片描述
其中,scc为强连通子图
IN子图:可到SCC但无法从SCC到达
OUT子图,和IN子图相反
卷须子图,只能由IN子图或OUT子图到达
管道:有IN子图可达,不经过SCC直接到OUT子图。
因为上述结构中有一些违背了马尔科夫迭代过程收敛到极限值所必须的假设条件。

  • 图是强连通图
  • 图不存在终止点
    为了解决上述问题,我们对PageRank进行修改,要避免如下两个问题:
  • 没有任何出链的终止点问题。到达该网页的冲浪者会消失,这会造成所有能到达终止点的网页最终没有任何概率。
    解决方案:将终止点及其入链删除,递归进行,直到图中没有终止点。
    这里写图片描述
  • 采集器陷阱,即存在这样的一组网页,虽然他们都有出链但从不链向这组网页之外的其他网页,可以理解为局部闭环。
    解决方案:抽税法
    允许每个随机冲浪者能够以一个较小的概率随机跳转到一个随机网页,修改后新的迭代公式为: V1=βMv+(1-β)e/n
    其中:
    β是一个选定的常数,通常在0.8到0.9之间,
    e是一个所有分量都为1维数为n的向量,
    βMv表示随机冲浪者以概率β从当前网页选择一个出链前进。

参考书籍:《Mining of Massive DataSets》

<think>嗯,用户现在问的是Hadoop的应用场景。之前他们问过HDFS生态系统,现在可能想了解Hadoop具体能用在哪些地方。我需要先回忆一下Hadoop的核心组件,比如HDFS、MapReduce、YARN这些,然后结合这些技术的特点来找对应的应用场景。 Hadoop适合处理大规模数据,特别是离线批处理,比如日志分析。很多公司用Hadoop来分析用户行为,生成报告。比如电商网站分析用户点击流,优化推荐系统。另外,搜索引擎如Google可能用Hadoop来处理网页索引,虽然他们可能有自己的系统,但Hadoop的开源特性让很多公司采用。 还有数据仓库,Hive和HBase这些工具支持结构化数据的存储和查询,替代传统数据仓库。金融机构可能用Hadoop来做风险建模,处理大量交易数据。Hadoop的分布式存储和计算能力适合这种需要处理TB/PB级数据的场景。 机器学习方面,Mahout和Spark MLlib可以跑在Hadoop上,用于聚类、分类等任务。比如社交网络分析用户分组,或者推荐系统。不过实时性要求高的可能需要其他框架,但Hadoop适合离线训练模型。 还有数据挖掘,比如文本分析、情感分析,Hadoop处理非结构化数据。新闻机构分析社交媒体数据,了解公众情绪。另外,基因测序需要处理大量数据,Hadoop的并行处理能力能加速分析过程。 备份和归档也是Hadoop的一个应用,因为HDFS可靠且扩展性强,企业可以用它来存储海量冷数据,比传统存储更经济。比如医疗影像的长期存储。 不过需要注意Hadoop不适合实时处理,像在线交易系统需要低延迟的话可能用其他技术。但用户可能想知道Hadoop的优势场景,所以应该强调离线、批处理、大规模数据的情况。总结的时候要分点,结构清晰,结合之前提到的HDFS生态系统的组件,说明各个场景如何利用这些工具。可能还要举一些实际例子,帮助用户理解。</think>Hadoop作为开源分布式计算框架,其核心设计目标是**高扩展性**、**容错性**和**低成本存储与处理海量数据**。以下是其主要应用场景及典型案例: --- ### 1. **大规模离线批处理** - **场景特点**:数据量大(TB/PB级)、计算复杂、对实时性要求低。 - **典型应用**: - **日志分析**:分析服务器日志、用户行为数据(如电商点击流、APP使用统计)。 - **ETL(数据清洗转换)**:将异构数据(如数据库、日志文件)转换为统一格式存储至数据仓库。 - **搜索引擎索引构建**:批量处理网页抓数据,生成倒排索引(如早期Google的MapReduce应用)。 --- ### 2. **数据仓库与商业智能(BI)** - **场景特点**:存储结构化/半结构化数据,支持复杂查询和报表生成。 - **典型工具**:Apache Hive(类SQL查询)、Apache HBase(随机读写)。 - **案例**: - 电商平台:整合订单、用户、商品数据,生成销售趋势报表。 - 金融机构:基于历史交易数据构建风险预测模型。 --- ### 3. **机器学习与数据挖掘** - **场景特点**:需分布式计算支持的特征工程、模型训练。 - **典型工具**:Apache Mahout(传统算法库)、Spark MLlib(基于内存的高性能计算)。 - **案例**: - **推荐系统**:分析用户历史行为,训练协同过滤模型(如电影推荐)。 - **聚类分析**:用户分群(如社交网络中的兴趣群体识别)。 - **自然语言处理**:文本分类、情感分析(如社交媒体舆情监控)。 --- ### 4. **科学计算与基因研究** - **场景特点**:处理高维度、非结构化数据(如基因序列、气象数据)。 - **案例**: - **生物信息学**:比对基因序列,加速疾病关联性研究。 - **气候模拟**:分析历史气象数据,预测极端天气事件。 --- ### 5. **数据备份与归档** - **场景特点**:低成本长期存储冷数据(访问频率低但需保留)。 - **优势**:HDFS多副本机制保障数据可靠性,扩展性强。 - **案例**: - 企业历史数据归档(如银行交易记录、医疗影像)。 - 视频平台原始素材存储(如未剪辑的影视资料)。 --- ### 6. **图计算与复杂网络分析** - **场景特点**:处理社交网络、知识图谱等图结构数据。 - **典型工具**:Apache Giraph、Spark GraphX。 - **案例**: - 社交网络好友推荐:通过PageRank算法识别关键节点。 - 金融反欺诈:分析转账关系网络,识别异常交易环。 --- ### 7. **多源异构数据整合** - **场景特点**:集成数据库、日志、传感器等不同来源数据。 - **典型工具**:Sqoop(数据库导入导出)、Flume/Kafka(流数据采集)。 - **案例**: - 物联网(IoT):整合传感器数据与业务系统日志,分析设备运行状态。 - 智慧城市:融合交通摄像头、GPS定位、气象数据,优化交通调度。 --- ### **Hadoop不擅长的场景** - **实时处理**:需毫秒级响应的场景(如在线交易)应选择Flink、Storm等流处理框架。 - **小文件存储**:HDFS对海量小文件(如百万级图片)的元数据管理效率较低。 - **事务性操作**:频繁更新的OLTP场景更适合传统关系型数据库(如MySQL)。 --- ### **总结** Hadoop的核心价值在于**以低成本解决海量数据存储与计算问题**,尤其适合: 1. **数据密集型离线任务**(日志分析、ETL) 2. **复杂模型训练**(机器学习、数据挖掘) 3. **多源数据整合**(数据湖构建) 4. **高可靠性存储**(备份与归档) 其开源生态(如HDFS、YARN、Hive、Spark)提供了灵活的工具组合,支撑从数据存储到高级分析的完整链路。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值