写在最前面:本篇文章基于内容安全中的网络信息内容获取技术,这里不会介绍很多理论框架性的内容,而是选取一些重点、考点进行介绍。
本章分值:20分,一道或者两道大题,涉及到信息检索与信息推荐。

搜索引擎技术

本章考点:网上采集算法概述、排级算法Pagerank、HITS算法)原理与参数含义等。

网上采集算法概述

考法:了解一下爬虫的基本原理和流程即可


所谓网上采集算法就是指网络爬虫、网络蜘蛛,是一个自动下载网页的计算机程序或自动化脚本。

爬虫的基本原理

  1. 抓取网页
    爬虫会首先访问指定的网站,并下载该网站上的网页内容。通常,爬虫会从网站的首页开始,并按照一定的规则沿着链接往下抓取,直到抓取到所有需要的信息。
  2. 解析网页
    爬虫在下载网页后,需要对网页进行解析,以提取出有用的信息。通常,爬虫会使用解析库(如BeautifulSoup)来处理HTML或XML等标记语言,并提取出所需的数据。解析过程中,还需要过滤掉一些无用的信息(如广告、页面导航等)。
  3. 存储数据
    最后,爬虫会将抓取到的数据存储到本地的数据库或文件中,以便后续的处理和分析。

具体的爬虫流程可以概括为以下几个步骤

  1. 确定目标
    首先需要确定需要抓取的目标网站,以及需要抓取的具体信息(如文章标题、作者、发布时间等)。同时,还需要考虑如何处理网站上的反爬虫机制。

  2. 编写爬虫程序
    根据目标网站的结构和反爬虫机制,编写爬虫程序。爬虫程序需要包括抓取解析两个部分,通常使用Python或其他脚本语言实现。

  3. 调试和优化
    在编写爬虫程序后,需要进行调试优化。需要检查爬虫程序是否能够正常运行,并且能否抓取到所需的信息。如果存在问题,需要进行调试和优化,例如修改解析规则、增加请求头信息等。

  4. 存储数据
    最后,将抓取到的数据存储到本地数据库或文件中,以便后续的处理和分析。在存储数据时,需要考虑如何去重、如何更新等问题。同时,还需要注意保护用户隐私和网站版权等问题。

排级算法

PageRank算法

考点:不会考具体的计算,而是考算法原理、基本概念等。


PageRank算法是一种被Google广泛使用的搜索排名算法,其基本思想是通过分析网页之间的链接关系来计算每个网页的权重

PageRank算法的原理和流程如下:

  • 建立图模型:将网页看做一个节点,网页之间的链接看做是节点之间的有向边,构成一个有向图模型。
  • 初始化PageRank值:对于图中的每个节点,初始化其PageRank值为1/n,其中n是图中节点的总数。
  • 迭代计算:迭代计算每个节点的PageRank值,具体过程如下:
    对于图中的每个节点i,计算其PageRank值`PR(i) = (1-d) + d * (PR(j1) / L(j1) + PR(j2) / L(j2) + ... + PR(jk) / L(jk))`,其中**d是一个介于0和1之间的阻尼系数**,一般设置为0.85;j1,j2,...,jk表示**所有指向节点i的节点**;L(j1),L(j2),...,L(jk)分别表示**j1,j2,...,jk节点的出度**。
    
  • 将图中所有节点的PageRank值归一化,使其和为1。
  • 循环迭代:重复步骤3,直到达到收敛条件为止。(所谓的收敛就是指变化前后的数据的差值低于某个阈值)
  • 根据PageRank值排序:根据节点的PageRank值大小对节点进行排序,从而得到网页的排名结果。

几个关键的概念

  • 出度(Out-Degree)指的是一个网页指向其他网页的链接数。如果一个网页有很多指向其他网页的链接,那么它的出度就很高。在Pagerank算法中,出度越高的网页通常被认为更重要。
  • 入度(In-Degree)指的是指向一个网页的链接数。如果一个网页有很多其他网页指向它,那么它的入度就很高。在Pagerank算法中,入度越高的网页也会被认为更重要。
  • 影响因子d:也叫阻尼系数,这是一个经验常数,表示用户在浏览网页时产生跳转的概率
  • 初始向量S:也就是每个节点的初始PageRank值,一般为均分。
  • 转移矩阵M:一个记录各个节点出度的矩阵。通过M·S来更新S

为什么要引入d?

可以解决一些特殊情况下的问题,比如某节点只进不出,就相当于一直在吸收别的节点的影响力而不输出,所以在迭代后就会导致该节点pagerank值为1而其他节点的值为0。

pagerank算法的应用场景

Pagerank算法是一种经典的链接分析算法,主要用于对互联网页面之间链接关系的分析和排序。其应用场景主要包括:

  • 搜索引擎:Pagerank算法是Google搜索引擎的核心算法之一,用于确定网页的重要性和排名,为搜索结果排序提供了基础。
  • 推荐系统:Pagerank算法可以根据页面之间的链接关系,确定哪些网页和主题更受欢迎和重要,从而为用户提供更好的推荐和个性化服务
  • 社交网络分析:Pagerank算法可以用于分析社交网络中用户之间的链接关系,确定哪些用户更具有影响力和重要性
  • 网络安全:Pagerank算法可以用于检测和排除网页链接中的恶意链接,识别和阻止网络钓鱼、欺诈和其他安全威胁。
  • 自然语言处理:Pagerank算法可以通过对链接关系的分析,提取文本之间的主题关系,对文本进行分类、聚类和摘要等处理。
  • 学术论文影响力分析:通过该论文的引用数和被引用数来分析其影响力。

HITS算法

考法:算法的基本原理和流程,以及二者的比较。


算法简介

HITS全称为Hyperlink-Induced Topic Search

在HITS算法中,每个页面被赋予两个属性:Hub属性Authority属性。具有上述两种属性的网页分为两种:Hub页面Authority页面

  • Hub(枢纽)页面:类似于一个分类器,其为包含了很多指向高质量Authority页面链接的网页。例如,hao123首页汇集了全网优质网址,故可以认为其是一个典型的高质量Hub网页;
  • Authority(权威)页面:类似于一个聚类器,其为与某个领域或者某个话题相关的高质量网页。例如,京东首页、淘宝首页等,都是与网络购物领域相关的高质量网页。

HITS算法的目的即是通过一定的技术手段,在海量网页中找到与用户查询主题相关的高质量Authority页面和Hub页面,尤其是Authority页面,因为这些页面代表了能够满足用户查询的高质量内容,搜索引擎以此作为搜索结果返回给用户。

算法思想

HITS算法基于两个重要的假设

(1)一个高质量的Authority页面会被很多高质量的Hub页面所指向;

(2)一个高质量的Hub页面会指向很多高质量的Authority页面。

其中,页面的质量由自身的Hub值或Authority值决定,如下图,即:

(1)页面Hub值等于所有它指向的页面的Authority值之和:H(1)=A(5)+A(6)+A(7)

(2)页面Authority值等于所有指向它的页面的Hub值之和:A(1)=H(2)+H(3)+H(4)

由此可见,Hub页面和Authority页面相互迭代增强,每轮迭代计算更新每个页面的两个权值,直到权值稳定不再发生明显的变化为止。

其中权威值和枢纽值的计算公式如下:

算法流程与步骤(课本为主)

第一步:根集合与基本集合

具体的算法如下,不需要看懂这个代码,只需要知道这一步会形成一个集合用于后续的迭代排序

第二步:迭代收敛

该步的算法伪代码如下,这里需要看懂代码:即先进行权值的初始化,而后进行迭代更新,先计算权威值也就是x,再计算枢纽值也就是y。每一个迭代后都要进行归一化。


两个排级算法的比较(待更新)

HITS算法和PageRank算法可以说是搜索引擎链接分析的两个最基础且最重要的算法。从以上对两个算法的介绍可以看出,两者无论是在基本概念模型还是计算思路以及技术实现细节都有很大的不同,下面对两者之间的差异进行逐一说明。

1.HITS算法是与用户输入的查询请求密切相关的,而PageRank与查询请求无关。

2.HITS算法因为与用户查询密切相关,所以必须在接收到用户查询后实时进行计算,计算效率较低;而PageRank则可以在爬虫抓取完成后离线计算,在线直接使用计算结果,计算效率较高

3.HITS算法的计算对象数量较少,只需计算扩展集合内网页之间的链接关系;而PageRank是全局性算法,对所有互联网页面节点进行处理;

4.从两者的计算效率和处理对象集合大小来比较,PageRank更适合部署在服务器端,而HITS算法更适合部署在客户端

5.HITS算法存在主题泛化问题,所以更适合处理具体化的用户查询;而PageRank在处理宽泛的用户查询时更有优势;

6.HITS算法在计算时,对于每个页面需要计算两个分值,而PageRank只需计算一个分值即可;在搜索引擎领域,更重视HITS算法计算出的Authority权值,但是在很多应用HITS算法的其它领域,Hub分值也有很重要的作用;

7.从链接反作弊的角度来说,PageRank从机制上优于HITS算法,而HITS算法更易遭受链接作弊的影响。

8.HITS算法结构不稳定,当对“扩充网页集合”内链接关系作出很小改变,则对最终排名有很大影响;而PageRank相对HITS而言表现稳定,其根本原因在于PageRank计算时的“远程跳转”。

数据挖掘技术(不考)

信息推荐技术(考点)

考法:从概念上理解并记忆下述内容,无算法公式。(用自己的话阐述思想即可)


信息推荐与信息检索的区别(了解)

信息推荐与信息检索最大的区别在于:

  • 信息检索注重结果之间的关系和排序,信息推荐还研究用户模型和用户的喜好,基于社会网络进行个性化的计算。
  • 信息检索由用户主导,包括输人查询词和选择结果,结果不好用户会修改查询再次检索。信息推荐是由系统主导用户的浏览顺序,引导用户发现需要的结果。高质量的信息推荐系统会使用户对该系统产生依赖。

信息推荐的概念(了解)

信息推荐的三要素:候选对象、用户、推荐算法。

信息推荐的分类(掌握)

基于内容推荐

根据用户选择的对象,推荐其他类似属性的对象。

也就是说这种推荐算法以对象为核心,不需要用户对对象的评价意见。

协同过滤推荐

从用户的角度出发进行推荐,基于其他用户对某一个内容的评价向目标用户进行推荐,是最为成功的推荐算法之一。有以下两种子类:

启发式算法(两个分支)

人以群分:基于用户的协同过滤

X喜欢一个物品A,S也喜欢A,同时S还喜欢B,所以X也可能喜欢B。(由X\S都喜欢A推得二者相似,所以向X推荐S喜欢的物品,这就叫人以群分

物以类聚:基于物品的协调过滤

X喜欢A,而喜欢A的很多人也喜欢B,所以A也可能喜欢B(因为物品A和物品B被很多人同时喜欢,所以被认为相似,因此向喜欢A的人推荐B,此为物以类聚

基于模型的方法

把一个用户归类到一种模型下或者一个类型下。常常与机器学习算法相结合,用于预测某物品该用户算法喜欢。

组合推荐

采取多种推荐方法融合的方式进行推荐。包括后融合推荐(先分开推荐在合并选择)、中融合推荐(以一种为框架)、前融合推荐(直接融合各种推荐算法)