You are on page 1of 60

教学内容

• 第一单元: 多媒体技术概述
• 第二单元:多媒体数据存储技术
• 第三单元:多媒体通信与网络
• 第四单元:多媒体数据管理
• 第五单元:多媒体新技术展望
多媒体技术简介
什么是多媒体技术?
多媒体技术主要研究多媒体内容的采集、存储、压缩、传
输、管理,是当今信息技术领域发展最快、最活跃的技术。

检索

采集 存储/压缩 传输 管理

分析
5.1 简介 百度
5.1 简介 信息检索
• 信息检索是从大规模非结构化数据的集合中
找出满足用户信息需求的资料(通常是文档)
的过程。
• Document –文档
• Unstructured – 非结构化
• Information need –信息需求
• Collection—文档集、语料库
5.1 简介 结构化 vs 非结构化数据
• 结构化数据即指“表”中的数据,用数据
库二维逻辑表来表现的数据即称为结构化
数据

Employee Manager Salary

Smith Jones 50000

Chang Smith 60000

Ivy Smith 50000

数据库常常支持范围或者精确匹配查询 。e.g.,
(Salary < 60000 AND Manager )= Smith.
5.1 简介 非结构化数据
• 不方便用数据库二维逻辑表来表现的数据即称
为非结构化数据
• 现实世界中存在着大量的非结构化信息,除文
本外,还有图像、图形、语音、视频等多媒体
信息。

• 经典的检索模型一般都针对自由文本进行处理
5.1 简介 信息检索的基本流程
首先,离线处理
• 检索系统的真实做法是先进行信息采集,把信息
源的信息拷贝到本地,构成待检索的信息集合。
• 对网上信息要进行必要的编码方式的转换或文档
格式的转换等。
• 信息加工最主要的任务就是对采集到本地的信息
编排索引,以便做好被查询的准备
Documents Information
Index Similarity Query need

Result USER
5.1 简介 信息检索的基本流程
接着,在线查询
• 用户输入查询式,可能是几个关键词的逻辑组合,
可能是自然语言的问句
• 信息检索系统接收该查询,转换为查询的机内表
示形式,然后在索引表中快速搜索,找到与用户
的需求最匹配的若干文档。

Documents Information
Index Similarity Query need

Result USER
5.2 信息检索模型
字符串搜索 从字符串序列{K1, K2, … KN}中查找X

1. 顺序查找法: N/2比较
K1, K2, … KN 对多个关键字
的查询无能为
2. 二分查找法: lg(N)次比较 力!!

K1, K2, … KN
3. 哈希算法:O(1)次比较
K1, K2, … KN
5.2 信息检索模型
1. 精确查找
• 布尔模型
• 倒排索引
2. 结果排序
• PageRank 基于链接的排序
5.2.1 布尔模型
• 基于特征项的严格匹配模型。
• 首先建立一个二值变量的关联矩阵,如果文本中出
现了对应的特征项,则变量取“1”, 否则取“0”。
• 查询由特征项和逻辑运算符(“AND”、“OR”、
“NOT”)组成。
• 文本查询的匹配规则遵循布尔运算的法则。
5.2.1 布尔模型
• 文档表示: 关联矩阵
ü 一个文档被表示为关键词的集合。
ü 给定一个文档集合D,包含n篇文档,分别用
d1,d2,…,dn表示。
ü 再给定一个关键词集合,包含m个关键词t1,t2,…,tm。
ü 假定对文档D的描述完全是基于该关键词的集合的,
则文档D中任意一篇文档di就可以表示成
(d1i,d2i,…dni),其中dki的值
1 如果文档包含t !
d!" =#
0 其他
5.2.1 布尔模型
• 查询式表示
查询式被表示为关键词的布尔组合,用“与或非”
连接起来,并用括弧指示优先次序。
q=(t1∩t2)∪(t3∩t4)
• 匹配
关联矩阵中关键词对应的行向量,根据查询进行布尔
运算,结果中0和1分别表示对应文档(不满足/满足)查
询。
一个文档当且仅当它能够满足布尔查询式时,才将其
检索出来
5.2.1 布尔检索
针对布尔查询的检索,布尔查询是指利用 AND,
OR 或者 NOT操作符将词项 连接起来的查询
• 信息 AND 检索
• 信息 OR 检索
• 信息 AND 检索 AND NOT 教材

• 搜索引擎的高级搜索?
5.2.1 布尔检索

布尔检索举例

• 莎士比亚的哪部剧本包含布鲁特斯及凯撒
但是不包含凯尔弗妮娅?
• 相应的布尔表达式为布鲁特斯 and 凯撒
and (not 凯尔弗妮娅)
5.2.1 布尔检索
• 原始方法: 从头到尾扫描所有剧本,对每部剧本
判断它是否包含布鲁特斯和凯撒,同时又不包含
凯尔弗妮娅
• 原始方法缺点?
速度慢 (特别是大型文档集)
处理NOT凯尔弗妮娅并不容易(为什么?)
5.2.1 布尔检索
词项-文档(term-doc)的关联矩阵
《安东尼和克莱奥帕特拉》 《凯撒大帝》 《雷雨》 《哈姆雷特》 《奥赛罗》《麦克白》
Antony and Cleopatra Julius Caesar The Tempest Hamlet Othello Macbeth

Antony 1 1 0 0 0 1

Brutus 1 1 0 1 0 0
Caesar 1 1 0 1 1 1
Calpurnia 0 1 0 0 0 0
Cleopatra 1 0 0 0 0 0
mercy 1 0 1 1 1 1
worser 1 0 1 1 1 0

若某剧本包含某单词,则
该位置上为1,否则为0
Brutus AND Caesar BUT NOT
Calpurnia
5.2.1 布尔检索
• 关联矩阵的每一列都是 0/1向量,每个0/1都对应一个词

• 给定查询Brutus AND Caesar AND NOT Calpurnia
• 取出三个向量 ,并对Calpurnia 的向量求补,最后按位
进行与操作
• 110100 AND 110111 AND 101111 = 100100.
5.2.1 布尔检索

《安东尼和克莱奥帕特拉》
《凯撒大帝》 《雷雨》 《哈姆雷特》 《奥赛罗》 《麦克白》

Anthony and Julius The Hamlet Othello Macbeth . .


Cleopatra Caesar Tempest

ANTHONY 1 1 0 0 0 1
BRUTUS 1 1 0 1 0 0
CAESAR 1 1 0 1 1 1
CALPURNIA 0 1 0 0 0 0
CLEOPATRA 1 0 0 0 0 0
MERCY 1 0 1 1 1 1
WORSER 1 0 1 1 1 0
结果: 1 0 0 1 0 0

19
Sec. 1.1

5.2.1 布尔检索

上述查询的结果文档

• Antony and Cleopatra,


• Agrippa [Aside to DOMITIUS ENOBARBUS]: Why, Enobarbus, When Antony
found Julius Caesar dead,
He cried almost to roaring; and he wept
When at Philippi he found Brutus slain.

• Hamlet
• Lord Polonius: I did enact Julius Caesar I was killed i' the Capitol; Brutus killed
me.
5.2.1 布尔检索
大文档集上的问题:内存开销巨大
• 假定N = 1 百万篇文档, 每篇有1000个词。
• 假定每个词平均用6个字节来表示
那么所有文档将约占6GB 空间.
• 假定 词汇表的大小(即词项个数) = 500K
5.2.1 布尔检索

词项-文档矩阵将非常大
• 矩阵大小为 500K x 1M=500G
• 但是该矩阵中最多有10亿(1G)个1
词项-文档矩阵高度稀疏
• 如何更好地表示
比如,仅仅记录所有1的位置
5.2.1 布尔检索

布尔检索的优点
• 构建简单,是IR系统最简单地构建方式
在30多年中是最主要的检索工具
当前许多搜索系统仍然使用布尔检索模型:
• 电子邮件、文献编目等
5.2.1 布尔检索
布尔检索的缺点
• 布尔查询构建复杂,不适合普通用户。构
建不当,检索结果过多或者过少
• 没有充分利用词项的频率信息
1 vs. 0 次出现
2 vs. 1次出现
3 vs. 2次出现, …
通常出现的越多越好,需要利用词项在文档中的
词项频率信息
5.2.2 倒排索引(Inverted index)
• 对每个词项t, 记录所有包含t的文档列表.
每篇文档用一个唯一的 docID来表示,通常是正
整数,如1,2,3…
• 采用变长数组的方式来存储docID列表

Brutus 1 2 4 11 31 45 173

Caesar 1 2 4 5 6 16 57

Calpurnia 2 31 54 101

文档14中加入单词Caesar时该如何处理?
5.2.2 倒排索引
• 通常采用变长链表方式
内存中,采用链表或者可变长数组方式
倒排记录
• 存储空间/易插入之间需要平衡
Posting

Brutus 1 2 4 11 31 45 173

Caesar 1 2 4 5 6 16 57

Calpurnia 2 31 54 101

Dictionary 词典 Postings 倒排(记录)表


按docID排序 (原因后面再讲)
5.2.2 倒排索引 构建过程
待索引文档 Friends, Romans, countrymen.

Tokenizer 词条化工具

词条流 Friends Romans Countrymen

自然语言处理 Linguistic modules 语言分析工具

修改后的词条 friend roman countryman

Indexer friend 2 4

倒排索引 roman 1 2

countryman 13 16
5.2.2 倒排索引 查询的处理
• 考虑如下查询:
Brutus AND Caesar
在词典中定位 Brutus
• 返回对应倒排记录表(对应的docID)
在词典中定位Caesar
• 再返回对应倒排记录表
合并(Merge)两个倒排记录表,即求交集

2 4 8 16 32 64 128 Brutus

1 2 3 5 8 13 21 34 Caesar
5.2.2 倒排索引 查询的处理
• 每个倒排记录表都有一个定位指针,两个
指针同时从前往后扫描, 每次比较当前指针
对应倒排记录,然后移动某个或两个指针。
合并时间为两个表长之和的线性时间
2 4 8 16 32 64 128 Brutus
2 8
1 2 3 5 8 13 21 34 Caesar

假定表长分别为x 和y, 那么上述合并算法的复杂度为 O(x+y)

关键原因: 倒排记录表按照docID排序
5.2.2 倒排索引 查询的处理
5.2.2 倒排索引 查询的处理
其它布尔查询的处理
• OR表达式:Brutus OR Caesar
两个倒排记录表的并集
• NOT表达式: Brutus AND NOT Caesar
两个倒排记录表的减
• 一般的布尔表达式
(Brutus OR Caesar) AND NOT (Antony OR
Cleopatra)
• 查询处理的效率问题!
5.2.2 倒排索引 查询的处理
查询优化
• 查询处理中是否存在处理的顺序问题?
• 考虑n个词项的 AND
• 对每个词项,取出其倒排记录表,然后两
两合并
Brutus 2 4 8 16 32 64 128

Caesar 1 2 3 5 8 16 21 34

Calpurnia 13 16

查询: Brutus AND Calpurnia AND Caesar 32


5.2.2 倒排索引
查询优化 这是为什么保存
df(Document
Frequency)的
原因
• 按照表从小到大(即df从小到大)的顺序进行
处理:
每次从最小的开始合并
Brutus 2 4 8 16 32 64 128

Caesar 1 2 3 5 8 16 21

Calpurnia 13 16

相当于处理查询 (Calpurnia AND Brutus) AND Caesar.

Hint:倒排索引增加了文档频率(Document Frequency,DF)概念
5.2.2 倒排索引
更通用的优化策略
• e.g., (madding OR crowd) AND (ignoble OR strife)
AND (killed OR slain)
每个布尔表达式都能转换成上述形式(合取范式)
• 获得每个词项的df
• 通过将词项的df相加,估计每个OR表达式对应的倒
排记录表的大小
• 按照上述估计从小到大依次处理每个OR表达式.
5.2.2 倒排索引 – 切分
在真实场景中,倒排索引非常大,单台机器无法在内存中装
下,需要进行切分。

文档
词项

基于词项的
切分

基于文档的切分
5.2.2 倒排索引 – 更新
互联网信息变换很快,倒排索引也需要实时更新

1. 建立索引备份
2. 查询采用索引1
3. 更新索引2
4. 查询切换到索引2
5. 从索引2同步索引1
5.2.2 基于搜索树的词典索引
o 方法:采用搜索树作为词典的索引,一般采用平衡二叉树
o 优点:可以支持前缀查找
o 缺点:
n 搜索速度略低于哈希方法:O(logM), 其中M是词汇数
n 使二叉树重新保持平衡开销很大
o 改进:采用 B树减轻上述问题
o B树定义:每个内部节点的子节点数目在 [a, b]之间,
其中 a, b 为合适的正整数, e.g., [2, 4].

37
5.2.2 基于搜索树的词典索引
它是一棵空树或它的左右两
平衡二叉树示例 个子树的高度差的绝对值不
超过1,并且左右两个子树
都是一棵平衡二叉树。

平衡性,字符集有预定的排序方式

38
5.2.2 基于搜索树的词典索引
B树示例

子节点数目在[2,4]区间

39
5.2 信息检索模型
1. 精确查找
• 布尔模型
• 倒排索引
2. 结果排序
• PageRank 基于链接的排序
5.2.5 PageRank算法

• PageRank,网页排名,是一种根据网页之
间相互的超链接计算的技术,而作为网页
排名的要素之一,它用来体现网页的相关
性和重要性,在搜索引擎优化操作中是经
常被用来评估网页优化的成效因素之一。
5.2.5 PageRank算法

创始人:拉里佩奇(Larry Page )
—Google创始人之一
应用: 是Google用来衡量
一个网站的好坏的唯
一标准。
5.2.5 PageRank算法
5.2.5 PageRank算法
• PageRank算法:
将网页或者文档视作一个点,网页之间的超链
接视作有向边,则会构成一个巨大的有向图。

点之间的有向连接反映了网页之间互相引用,参
考和推荐的关系。
5.2.5 PageRank算法
• PageRank算法:
一个页面的重要性由所有链向它的页面的重
要性来决定,到一个页面的超链接相当于
对该页投一票。
一个页面的PageRank是由所有链向它的页面
的重要性经过递归算法得到的。
一个有较多链入的页面会有较高的等级,相
反如果一个页面没有任何链入页面,那么
它没有等级。
5.2.5 PageRank算法
5.2.5 PageRank算法
5.2.5 PageRank算法
5.2.5 PageRank算法
5.2.5 PageRank算法

网络的拓扑的复杂性
5.2.5 PageRank算法
计算过程:
(1)为每个网站设置一个初始的PageRank值。
(2)第一次迭代:每个网站得到一个新的
PageRank。
(3)第二次迭代:用这组新的PageRank再按上述
公式形成另一组新的PageRank。
(4)重复进行,直到满足终止条件。
5.2.5 PageRank算法
5.2.5 PageRank的计算
• 网页链接关系建模--矩阵
网页i链接到网页j,则Aij = 1,否则Aij = 0;
若网页个数为N,则此矩阵为N阶矩阵
• PageRank的矩阵是将此N阶矩阵A进行倒
置,并把各个列矢量除以各自的链接数。
转换后的矩阵被称为[推移概率行列]。肯定有一特征值:1
• PageRank 的计算,就是求属于这个推移概
率行列最大特性值的特征矢量。
x=Ax
5.2.5 PageRank的计算
如何理解上述算法,下面仅从形式上近似说明
5.2.5 PageRank的计算
5.2.5 PageRank的计算
• PageRank查询网址:
http://pr.chinaz.com/
5.2.5 信息检索系统

爬虫 查询

索引
5.2.5 开源软件 Lucene
• Apache Lucene
Lucene是apache软件基金会一个子项目,是一
个开放源代码的全文检索引擎工具包,即它不是
一个完整的全文检索引擎,而是一个全文检索引
擎的架构,提供了完整的查询引擎和索引引擎,
部分文本分析引擎(英文与德文两种西方语言)。
Lucene的目的是为软件开发人员提供一个简单易
用的工具包,以方便的在目标系统中实现全文检
索的功能,或者是以此为基础建立起完整的全文
检索引擎。
5.2.5 开源软件Lemur
• Lemur是信息检索和语言建模的工具。 以
BSD证书发布。项目组织的很好。
• Lemur提供了六种常用的检索模型。
• Lemur的可选的分类工具中提供了霍夫曼统
计语义分析或者至少其中的最大似然估计
学习部分。
狐猴
5.2 检索模型小结
• 布尔模型效率非常高,但只能处理小型数据库;
• 倒排索引能够处理较大数据;
• PageRank是一种根据网站链接关系对结果进行
排序的算法。

You might also like