信息检索复习

导论

结构化数据与非结构化数据

信息检索是从大规模非结构化数据(通常是文本)的集合(通常保存在计算机上)中找出满足用户信息需求的资料
非结构化数据是指那些没有清晰或明显的语义结构的数据,而计算机不易处理这类数据。

数据挖掘流程

在这里插入图片描述

为什么需要搜索技术:

信息过载———数据爆炸性的增长,而人的处理能力有限

信息检索的基本知识

布尔检索

词项文档矩阵

关联向量

A and B and C

不成功的原因

(1)占空间,存储大
(2)查找速度慢
(3)多是稀疏矩阵

倒排索引

存储

(1)variable-size postings lists
(2)磁盘上,最好是连续空间
(3)内存上,链表或者是可变长的数组

结构

倒排索引结构

文本处理的几个步骤

分词
归一化:将看起来不完全一致 的多个词条归为一个词条等价类,以便他们之间进行匹配的过程。最常规的做法就是建立隐式的等价类。
去除字符等,anti-discriminatory 和antidiscriminatory
另一种方法是维持多个归一化词条之间的关联关系。 automible-car
词干还原和词形合并:
词干还原:粗略的去除单词两端词缀的启发式过程,派生词缀。词元
词性合并,saw-see或saw 同一词元的不同形式进行合并。
去除停用词

使用倒排索引的查询过程

AND
在这里插入图片描述

查询处理优化

(1)按照词列表长度从低到高的顺序处理

结构

哈希或者是树结构、
hashtables
每个词汇表项散列为一个整数
•优点:
–查找比查找树快:O(1)
•缺点:
–找不到小的变体:judgment/judgement

–无前缀搜索

–如果词汇量持续增长,需要偶尔进行重新洗刷一切
tree:
最简单的:二叉树
•更常见的:B树
•树需要标准的字符和字符串顺序…但我们通常有一个吗
•优点:
–解决前缀问题(以hyp开头的术语)
•缺点:
–较慢:O(logm)[这需要平衡树]
–重新平衡二叉树代价高昂
•但B树缓解了再平衡问题

短语查询和位置索引

双字索引: 用两个单词作为一个索引
双字索引问题
•假阳性,如前所述
•由于字典更大,索引膨胀
–不可能超过两个字,即使对他们来说也很大

双字索引不是标准解决方案(适用于所有双字)
可能是复合策略的一部分

位置索引:
term——>(docID,pisiton)
在文档级别递归得使用合并算法
位置索引可以表示临近查询,但是双字索引不行
位置索引的空间是不加位置索引的2-4倍
跳表
合并的时候直接看下一个的位置,如果下一个跳到的位置比应该的位置还小,直接跳过。
放调表指针的位置需要权衡:
更多的指针——> 更小的跨度——> 可能跳跃更多
更少的指针——>更少的比较——> 可能不能顺利跳过去
根号下的位置放置:如果是静态的会比较方便,但是如果L 一直变化会比较麻烦。

通配符查询

轮排索引

支持通配符查询的 K-gram 索引

拼写更正

Two principal uses

  • Correcting document(s) being indexed
  • Correcting user queries to retrieve “right” answers

Two main flavors:

  • Isolated word 基于单个单词的
  • Check each word on its own for misspelling
    Will not catch typos resulting in correctly spelled words 基于上下文的
编辑距离

e.g., from  form

  • Context-sensitive
    Look at surrounding words,
    e.g., I flew form Heathrow to Narita.

文件更正

索引构建

硬件基础

硬件基础

▪ 访问内存中的数据比访问磁盘上的数据快得多。

▪ 磁盘寻道:当磁盘磁头正在运行时,没有数据从磁盘传输定位。

▪ 因此:将一大块数据从磁盘传输到内存是非常困难的

比传送许多小块的东西要快。

▪ 磁盘I/O是基于块的:读取和写入整个块(如

而不是更小的块)。
IR系统中使用的服务器现在通常有几GB的主服务器

内存,有时几十GB。

▪ 可用磁盘空间比

主存储器。

▪ 容错性非常昂贵:使用许多常规的

机器而不是一台容错机器

BSBI

不能使用在内存中用的方法在磁盘上排序:原因磁盘太慢了
1、将文档中的词进行id的映射,这里可以用hash的方法去构造

2、将文档分割成大小相等的部分。

3、将每部分按照词ID对上文档ID的方式进行排序

4、将每部分排序好后的结果进行合并,最后写出到磁盘中。

5、然后递归的执行,直到文档内容全部完成这一系列操作。
在这里插入图片描述

SPIMI

不需要对文档进行排序。
1、对每个块构造一个独立的倒排索引。

2、最后将所有独立的倒排索引进行合并就OK了。

外部排序算法

分布式索引

向量空间模型

binary——>term——>tfidf

使用余弦计算距离

文档评分

检索评价

f1-score——recall——precision

binary relevance (只有相关和不相关)

precision@K(p@K)
MAP

在这里插入图片描述

MRR

multiple levels of revlance(对重要性程度进行评级)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

检索模型

几种基于概率的模型

基于logistic 回归的检索模型

经典的二值独立概率检索模型

公式+例题

经典的BM25模型

在这里插入图片描述

简单的自然语言处理模型

语言模型

SLM(统计语言模型)

在这里插入图片描述

查询似然模型:

把相关度看成是每篇文档对应的语言下生成该查询的可能性

翻译模型

假设查询经过某个噪声信道变形成某篇文章,则由文档还原成该查询的概率(翻译模型)可以视为相关度

KL 距离模型

查询对应某种语言,每篇文档对应某种语言,查询语言与文档语言的KL 距离作为相关度量

信息检索/知识发现/机器学习/数据挖掘中的经典算法

分类

聚类

基于分层的聚类:
基于划分的聚类:Kmeans
基于密度的聚类:DBSCAN
基于网格的聚类:
基于模型的聚类:

kmeans

算法过程: 迭代轮数k,每次计算的点的个数n,O(kn)
算法复杂度:
算法优缺点:
优点
简单、快速、经典
处理大数据集时,保持可伸缩性和高效率
当簇近似高斯分布时,它的效果较好
缺点
簇的平均值可被定义才能使用,不适合某些应用
必须事先定K值,对初值敏感
只能发现球状cluster,不适合非凸形状的簇,或者大小差别很大的簇
对噪声和孤立点数据敏感,导致均值偏离严重(K-mediods改善这个问题,修改均值为中位数)
kemans++: 离当前选取的聚类中心更大的点更有概率被选择当下一个聚类中心
min-batch kmeans:

DBSCAN

簇是高密度区域,噪声点在低密度区域

算法步骤;
(1) 随机选择一个点A,设置ε \varepsilonε区域为半径区域,对象个数m为4,A点的区域有4个,所以A作为核心对象创建新簇,其他点标记为边缘点。
(2) 在边缘点上选取一个重复上面的步骤,寻找并合并核心对象直接密度可达的对象。反复上面过程,直到没有新的点可以更新簇,算法结束。形成以A为初始的一个簇,包括红点和黄点。
(3) 如果发现还有一些数据点未处理,再次产生一个类别来重启这个算法,遍历所有数据,若此点不是边缘点也不是中心点,标记为噪音。
简而言之:画圈聚类
优点
无需确定聚类个数
可以发现任何形状的聚类
对噪声有鲁棒性,可有效处理噪声
只需要两个参数,对数据输入顺序不敏感
加快区查询
参数可由领域专家设置
缺点
边界点不完全确定性
维度灾难导致Euclidean距离度量失效
不能处理密度差异过大(密度不均匀)的聚类
参数选择在数据与规模不能很好理解的情况下,很难选择,选取不当容易导致聚类质量下降

层次聚类

总体:类似于霍夫曼,最近的俩先连,最后生成层次
在这里插入图片描述
single-linkage

为了合并两组,只需要一对接近的点,而不考虑所有其他点。

因此,集群可能过于分散,而且不够紧凑
complete linkage
完整的链接避免了链接,但会受到拥挤的影响。
因为它的分数是基于对之间最坏情况的不相似性,所以一个点可以更接近另一个点其他群集,而不是指向其自身群集中的点。集群很紧凑,但距离apar还不够远
average linkage
它使用平均成对不相似性,所以集群趋向于相对紧凑和相对远离

Lance-Williams 算法
kmeans 和 hierarchical clustering

kmeans

O内存使用率低

O(n)计算时间

O结果对随机初始化非常敏感

O集群数量是预定义的

层次聚类:

确定性算法

O树状图显示了K的各种选择的聚类

一个矩阵与另一个矩阵之间的距离有多大

我们可以使用相异性度量来优雅地处理分类变量、缺失值等

O内存大,比K-means计算密集

2000后对信息检索的研究

基于网页的链接分析技术

网页的排序技术

网页的分析技术

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值