信息检索(IR)—信息检索模型(一)
1. 信息检索模型的概念和分类
1.1 信息检索模型的概念
信息检索模型是一个四元组 [ D , Q , F , R ( q i , d j ) ] [D,Q,F,R(q_i,d_j)] [D,Q,F,R(qi,dj)]所组成,其中D:表示文档集,Q表示用户的查询集合,F为文档表示,查询表示和它们之间关系的模型框架。 R ( q i , d j ) R(q_i,d_j) R(qi,dj)表示排序函数,给定query q i q_i qi和document d j d_j dj的评分。
1.2 信息检索模型的基本分类
2 布尔模型
2.1 基本描述
在布尔模型中,对于信息检索模型的基本框架给出了如下的描述:
- 文档D表示:一个文档被表示为关键词的集合。
- 查询Q表示:查询Q被表示为关键词的布尔组合,用“与”、“或”、“非”连接起来。并用括号指示优先级。
- 匹配F:一个文档当且仅当它能够满足布尔查询时,才能将其检索出来,检索策略基于二值进行判断。
- 算法R:根据匹配框架F判定相关。
下面我们举一个例子来说明一下:
Q=病毒 And (计算机 Or 电脑) And Not 医
D={D1:“根据报道计算机病毒最近很猖獗”,D2:“小王是学医的,但是对于研究电脑病毒也很感兴趣”,D3:“计算机程序发现了艾滋病病毒的传播途径”}
对于上面的文档 D 1 , D 2 , D 3 D_1,D_2,D_3 D1,D2,D3,根据Q的布尔形式,我们可以发现对于文档1,其关键词的布尔形式为“病毒 And 计算机 And Not 医”,文档2的关键词的布尔形式为“病毒 And 电脑 And 医”。文档3的关键词的布尔形式为“病毒 And 计算机 And Not 医”。所以,综上所述,文档1和文档3会被检索出来。
2.2 查询表示
在布尔模型中,查询q被表示成一个常规的布尔表达式,为了方便计算q和文档d的相关度,一把将查询q的布尔表达式转换成析取范式 q D N F q_{DNF} qDNF。并且在查询结果中,所有的查询q和文档d的相关度都是二值的,也就是要么相关要么不相关。
下面举一个例子说明一下:假设文档集中包含两个文档。
文
档
1
:
a
b
c
f
g
h
文档1:abcfgh
文档1:abcfgh
文
档
2
:
a
f
b
x
y
z
文档2:afbxyz
文档2:afbxyz
查
询
q
:
文
档
中
出
现
a
或
者
b
,
但
是
一
定
要
出
现
z
。
查询q:文档中出现a或者b,但是一定要出现z。
查询q:文档中出现a或者b,但是一定要出现z。
将查询表示为布尔表达式 q = ( ( a ∨ b ) ∧ z ) q=((a∨b)∧z) q=((a∨b)∧z),将其转换成析取范式为 q D N F = ( a ∧ c ) ∨ ( b ∧ c ) ∨ ( a ∧ b ∧ c ) q_{DNF}=(a∧c)∨(b∧c)∨(a∧b∧c) qDNF=(a∧c)∨(b∧c)∨(a∧b∧c),将其转换成数字表示则有: q D N F = ( 1 , 0 , 1 ) ∨ ( 0 , 1 , 1 ) ∨ ( 1 , 1 , 1 ) q_{DNF}=(1,0,1)∨(0,1,1)∨(1,1,1) qDNF=(1,0,1)∨(0,1,1)∨(1,1,1),而文档1和文档2对应query产生的关键词的结果为(1,1,0)和(1,1,1),则返回检索结果2。
2.3 布尔模型实例
2.4 优劣性分析
优点:
到目前为止,由于查询简单,便于理解。并且通过使用复杂的布尔表达式,可以很方便的控制查询结果。因此布尔模型是最为常用的检索模型。并且通过某种训练,用户可以很容易的写出布尔查询q。
局限性:
布尔模型被认为是功能最弱的方式,其主要问题在于其不支持部分匹配,而完全匹配会导致太多或者太少的结果文档被返回。其次,原则上布尔模型会返回所有匹配的文档。也就是说我们很难控制检索的文档的数量。然后,对于返回的结果,其本身是无序的,在不考虑query中的词的权重,我们很难对输出进行排序。最后,当用户认为检索结果是相关或者不相关的时候,很难对于布尔式进行修改,也就是说很难进行自动的反馈。
3 向量空间模型
3.1 模型思想和描述
思想:
事物可以用一些共同的原子性的基本单元进行表示,如果将每一个原子单元视为基向量来构建一个n维度的空间,则事物就对了n维空间的一个向量。并且,向量之间的差别可以用来衡量事物之间相似度。
框架描述:
- 文档D:泛指文档或者文档中的一个片段(如文档中的标题,摘要,正文等等)
- 词项t:是指出现在文档中了能够代表文档性质的基本语言单位,也就是通常所指的检索词,这样一个文档D就可以表示为 D ( t 1 , t 2 , . . . , t n ) D(t_1,t_2,...,t_n) D(t1,t2,...,tn),其中n表示检索词的数量。
- 特性项权重 w k w_k wk:是指特征项 t n t_n tn能够代表文档D能力的大小。体现了特征项在文档中的重要程度。
- 相似度S:指两个文档内容的相关程度的大小。
3.2 模型构建
3.2.1 基本表示
首先,将文档和查询表示为词权重的向量,对于文档集合构建词权重的矩阵。如下图所示:
3.2.2 词权重计算
对于词权重的计算方式有很多种,这里我们讲述最简单的一种TF-IDF计算方法。其中:
t
f
i
j
=
词
项
j
在
文
档
i
中
的
频
率
tf_{ij}=词项j在文档i中的频率
tfij=词项j在文档i中的频率
d
f
j
=
词
项
j
的
文
档
频
率
=
包
含
此
项
j
的
文
档
数
量
df_j=词项j的文档频率=包含此项j的文档数量
dfj=词项j的文档频率=包含此项j的文档数量
i
d
f
j
=
词
项
j
的
逆
文
档
率
=
l
o
g
2
(
N
d
f
j
)
idf_j=词项j的逆文档率=log_2(\frac{N}{df_j})
idfj=词项j的逆文档率=log2(dfjN)
N表示文档集中的文档总数,逆文档频率用词项区别文档。
TF-IDF计算实例:
3.2.3 相似度衡量—内积
文档D和查询Q可以通过内积进行计算:
s
i
m
(
D
,
Q
)
=
∑
k
=
1
t
(
d
i
k
∗
q
k
)
sim(D,Q)=∑_{k=1}^t(d_{ik}*q_k)
sim(D,Q)=k=1∑t(dik∗qk)
其中
d
i
k
d_{ik}
dik是文档
d
i
d_i
di中词项k的权重,
q
k
q_k
qk是查询Q中词项k的权重。
对于二值向量(01向量),内积是查询式中词项和文档中词项相互匹配的数量。对于加权向量,内积是查询和文档中相互匹配的词项的权重乘积之和。
我们下面举一个内积计算的实例:
3.2.4 相似度计算——余弦相似度
余弦相似度是用于计算两个向量之间夹角,其计算公式是利用向量长度对内积进行归一化的结果。
C
o
s
S
i
m
(
D
i
,
Q
)
=
∑
k
=
1
t
(
d
i
k
∗
q
k
)
∑
k
=
1
t
d
i
k
2
∗
∑
k
=
1
t
q
k
2
CosSim(D_i,Q)=\frac{∑_{k=1}^t(d_{ik}*q_k)}{\sqrt{∑_{k=1}^td_{ik}^2*∑_{k=1}^tq_k^2}}
CosSim(Di,Q)=∑k=1tdik2∗∑k=1tqk2∑k=1t(dik∗qk)
相似的,我们可以利用上面的例子来计算余弦相似度:
3.2.5 相似度计算——其他相似度计算方式
JC系数:
3.2.5 二值向量的计算特点
3.2.6 相似度计算实例
3.2.7 向量空间模型的优劣性分析
优势:
词权重的计算方式提高了检索的性能,部分匹配的策略使得检索结果文档集更接近用户的检索需求。在计算文检索结果之后,可以对于结果集合中的相似度值进行排序。
局限性:
各个词之间被认为是相互独立的,随着Web中的信息量的增加,会产生很多噪声信息,影响计算结果。
4 参考
- 哈工大—信息检索