1、文档评分与向量空间模型主讲人:陈文亮李正华稍微删减苏州大学计算机学院1。提纲1.排序式检索2.词项频率词项频率3.tf-idf权重计算4.向量空间模型2。提纲1.排序式检索2.词项频率3.tf-idf权重计算4.向量空间模型3。为什么要排序4。5排序式检索(Ranked retrieval)迄今为止,我们主要关注的是布尔查询文档要么匹配要么不匹配对自身需求和文档集性质非常了解的专家而言,布尔查询是不错的选择对应用开发来说也非常简单,很容易就可以返回1000多条结果然而对大多数用户来说不方便大部分用户不能撰写布尔查询或者他们认为需要大量训练才能撰写合适的布尔查询大部分用户不愿意逐条浏览1000多
2、条结果,特别是对Web搜索更是如此对于刚才的例子,40M的文档,相信大家都不会想去看。5。6布尔搜索的不足:结果过少或者过多布尔查询常常会倒是过少(=0)或者过多(1000)的结果查询 1(布尔或操作):standard user dlink 650 200,000 个结果 太多查询2(布尔与操作):standard user dlink 650 no card found 0 个结果 太少在布尔检索中,需要大量技巧来生成一个可以获得合适规模结果的查询6。7排序式检索排序式检索可以避免产生过多或者过少的结果大规模的返回结果可以通过排序技术来避免只需要显示前10条结果不会让用户感觉到信息太多前提
3、:排序算法真的有效,即相关度大的文档结果会排在相关度小的文档结果之前7。8排序式检索中的评分技术我们希望,在同一查询下,文档集中相关度高的文档排名高于相关度低的文档如何实现?通常做法是对每个查询-文档对赋一个0,1之间的分值该分值度量了文档和查询的匹配程度怎么做?8。9查询-文档匹配评分计算如何计算查询-文档的匹配得分?原则先从单词项查询开始若该词项不出现在文档当中,该文档得分应该为0该词项在文档中出现越多,则得分越高9。提纲1.排序式检索2.词项频率3.tf-idf权重计算4.向量空间模型10。11二值关联矩阵每篇文档可以看成是一个二值的向量 0,1|V|Anthony and Cleopa
4、traJulius Caesar The TempestHamlet Othello Macbeth.ANTHONYBRUTUS CAESARCALPURNIACLEOPATRAMERCYWORSER.11101111111000000001101100110010011101001011。12非二值关联矩阵(词频)每篇文档可以表示成一个词频向量 N|V|Anthony and CleopatraJulius Caesar The TempestHamlet Othello Macbeth.ANTHONYBRUTUS CAESARCALPURNIACLEOPATRAMERCYWORSER.15
5、74232057227315722710000000003102200810010051100008512。13词袋(Bag of words)模型不考虑词在文档中出现的顺序John is quicker than Mary 及 Mary is quicker than John are 的表示结果一样这称为一个词袋模型(bag of words model)在某种意思上说,这种表示方法是一种“倒退”,因为位置索引中能够区分上述两篇文档13。14词项频率 tf词项t的词项频率 tft,d 是指t 在d中出现的次数下面将介绍利用tf来计算文档评分的方法第一种方法是采用原始的tf值(raw tf)
6、但是原始tf不太合适:某个词项在A文档中出现十次,即tf=10,在B文档中 tf=1,那么A比B更相关但是相关度不会相差10倍相关度不会正比于词项频率tf14。15一种替代原始tf的方法:对数词频t 在 d 中的对数词频权重定义如下:tft,d wt,d:0 0,1 1,2 1.3,10 2,1000 4,等等文档-词项的匹配得分是所有同时出现在q和文档d中的词项的对数词频之和(1+log tft,d)如果两者没有公共词项,则得分为015。提纲1.排序式检索2.词项频率3.tf-idf权重计算4.向量空间模型16。17文档中的词频 vs.文档集中的词频哪种词重要?的 了 水果 火龙果 刘翔 体
7、育 苏州大学 计算机学院除词项频率tf之外,我们还想利用词项在整个文档集中的频率进行权重和评分计算17。18罕见词项所期望的权重罕见词项比常见词所蕴含的信息更多考虑查询中某个词项,它在整个文档集中非常罕见(例如 赫尔辛根默斯).某篇包含该词项的文档很可能相关于是,我们希望像“赫尔辛根默斯”一样的罕见词项将有较高权重阿尔代夫海滩马路18。19常见词项所期望的权重常见词项的信息量不如罕见词考虑一个查询词项,它频繁出现在文档集中(如 GOOD,INCREASE,LINE等等)一篇包含该词项的文档当然比不包含该词项的文档的相关度要高但是,这些词对于相关度而言并不是非常强的指示词于是,对于诸如GOOD、
8、INCREASE和LINE的频繁词,会给一个正的权重,但是这个权重小于罕见词权重19。20文档频率(Document frequency,df)对于罕见词项我们希望赋予高权重对于常见词我们希望赋予正的低权重接下来我们使用文档频率df这个因子来计算查询-文档的匹配得分文档频率指但是出现词项的文档数目20。21idf 权重dft 是出现词项t的文档数目dft 是和词项t的信息量成反比的一个值于是可以定义词项t的idf权重:(其中N 是文档集中文档的数目)idft 是反映词项t的信息量的一个指标值得注意的是,对于tf 和idf我们都采用了对数计算方式21。22idf的计算样例(inverted do
9、cument freq)利用右式计算idft:词项dftidftcalpurniaanimalsundayflyunderthe1100100010,000100,0001,000,00064321022。23idf对排序的影响idf 会影响至少包含2个词项的查询的文档排序结果例如,在查询“马尔代夫 海滩”中,idf权重计算方法会增加 马尔代夫 的相对权重,同时降低 海滩 的相对权重对于单词项查询,idf对文档排序基本没有任何影响23。24文档集频率 vs.文档频率词项t的文档集频率(Collection frequency):文档集中出现的t词条的个数词项t的文档频率:包含t的文档篇数为什么
10、会出现上述表格的情况?即文档集频率相差不大,但是文档频率相差很大哪个词是更好的搜索词项?即应该赋予更高的权重上例表明 df(和idf)比cf(和“icf”)更适合权重计算单词文档集频率文档频率INSURANCETRY10440104223997876024。25tf-idf权重计算词项的tf-idf权重是tf权重和idf权重的乘积信息检索中最出名的权重计算方法注意:上面的“-”是连接符,不是减号其他叫法:tf.idf、tf x idf25。26tf-idf小结词项t在文档d中的权重可以采用下次计算tf-idf权重随着词项频率的增大而增大随着词项罕见度的增加而增大26。提纲1.排序式检索2.词项
11、频率3.tf-idf权重计算4.向量空间模型27。28二值关联矩阵每篇文档表示成一个二值向量 0,1|V|Anthony and CleopatraJulius Caesar The TempestHamlet Othello Macbeth.ANTHONYBRUTUS CAESARCALPURNIACLEOPATRAMERCYWORSER.11101111111000000001101100110010011101001028。29词频矩阵 每篇文档表示成一个词频向量 N|V|Anthony and CleopatraJulius Caesar The TempestHamlet Othel
12、lo Macbeth.ANTHONYBRUTUS CAESARCALPURNIACLEOPATRAMERCYWORSER.1574232057227315722710000000003102200810010051100008529。30二值 词频 权重矩阵每篇文档表示成一个基于tfidf权重的实值向量 R|V|Anthony and CleopatraJulius Caesar The TempestHamlet Othello Macbeth.ANTHONYBRUTUS CAESARCALPURNIACLEOPATRAMERCYWORSER.5.251.218.590.02.851.511
13、.373.186.102.541.540.00.00.00.00.00.00.00.01.900.110.01.01.510.00.00.124.150.00.00.250.00.05.250.250.350.00.00.00.00.881.9530。31二值 词频 权重矩阵每篇文档表示成一个基于tfidf权重的实值向量 R|V|下一步:需要按列进行归一化(保证每一个列向量的平方和为1)思考一下如何做?原因后面讲。Anthony and CleopatraJulius Caesar The TempestHamlet Othello Macbeth.ANTHONYBRUTUS CAESARCA
14、LPURNIACLEOPATRAMERCYWORSER.5.251.218.590.02.851.511.373.186.102.541.540.00.00.00.00.00.00.00.01.900.110.01.01.510.00.00.124.150.00.00.250.00.05.250.250.350.00.00.00.00.881.9531。32文档表示成向量每篇文档表示成一个基于tfidf权重的实值向量 R|V|.于是,我们有一个|V|维实值空间空间的每一维都对应词项文档都是该空间下的一个点或者向量极高维向量:对于Web搜索引擎,空间会上千万维对每个向量来说又非常稀疏,大部分都是
15、032。33查询看成向量每一个查询也可以表示为一个高维稀疏向量。注意,为了简化问题,只考虑tf值,而不考虑idf如:good-1 movie-2查询对应的向量不需要归一化(为什么自己思考)33。34向量空间下相似度的形式化定义先考虑一下两个点之间的距离倒数一种方法是采用欧氏距离但是,欧氏距离不是一种好的选择,这是因为欧氏距离对向量长度很敏感34。35欧氏距离不好的例子尽管查询q和文档d2的词项分布非常相似,但是采用欧氏距离计算它们对应向量之间的距离非常大。.Questions about basic vector space setup?35。36采用夹角而不是距离来计算将文档按照其向量和查询
16、向量的夹角大小来排序假想实验:将文档 d 复制一份加在自身末尾得到文档d.d 是d的两倍很显然,从语义上看,d 和 d 具有相同的内容两者之间的夹角为0,代表它们之间具有最大的相似度但是,它们的欧氏距离可能会很大36。37从夹角到余弦下面两个说法是等价的:按照夹角从小到大排列文档按照余弦从大到小排列文档这是因为在区间0,180上,余弦函数cosine是一个单调递减函数37。38Cosine函数38。39文档长度归一化如何计算余弦相似度?一个向量可以通过除以它的长度进行归一化处理,以下使用L2(2范数):这相当于将向量映射到单位球面上这是因为归一化之后:因此,长文档和短文档的向量中的权重都处于同
17、一数量级前面提到的文档 d 和 d(两个d 的叠加)经过上述归一化之后的向量相同39。40查询和文档之间的余弦相似度计算qi 是第i 个词项在查询q中的tf-idf权重di是第i 个词项在文档d中的tf-idf权重|和|分别是 和 的长度上述公式就是 和 的余弦相似度,或者说向量 和 的夹角的余弦 40。41归一化向量的余弦相似度归一化向量的余弦相似度等价于它们的点积(或内积)如果 和 都是长度归一化后的向量41。42余弦相似度的图示42。下面的内容不讲,有兴趣的同学可以了解43。44第一种方法:Jaccard系数计算两个集合重合度的常用方法令 A 和 B 为两个集合Jaccard系数的计算方
18、法:JACCARD(A,A)=1JACCARD(A,B)=0 如果 A B=0A 和 B 不一定要同样大小Jaccard 系数会给出一个0到1之间的值44。45Jaccard系数的计算样例查询“ides of March”文档“Caesar died in March”JACCARD(q,d)=1/645。46Jaccard系数的不足不考虑词项频率,即词项在文档中的出现次数罕见词比高频词的信息量更大,Jaccard系数没有考虑这个信息没有仔细考虑文档的长度因素46。47课堂练习:词项、文档集及文档频率df和cf有什么关系?tf和cf有什么关系?tf和df有什么关系?统计量符号定义词项频率 文档
19、频率文档集频率tft,ddftcft t在文档d中出现的次数出现 t的文档数目t在文档集中出现的总次数47。48余弦相似度的计算样例 词项频率tf3本小说之间的相似度(1)SaS(理智与情感):Sense andSensibility(2)PaP(傲慢与偏见):Pride andPrejudice(3)WH(呼啸山庄):WutheringHeights词项SaSPaPWHAFFECTIONJEALOUSGOSSIPWUTHERING115102058700201163848。49余弦相似度计算 词项频率 tf 对数词频(1+log10tf)词项SaSPaPWHAFFECTIONJEALOUSG
20、OSSIPWUTHERING3.062.01.3002.761.85002.302.041.782.58词项SaS PaPWHAFFECTIONJEALOUSGOSSIPWUTHERING1151020587002011638为了简化计算,上述计算过程中没有引入idf49。50余弦相似度计算 对数词频(1+log10tf)数词频的余弦归一化结果 词项SaSPaPWHAFFECTIONJEALOUSGOSSIPWUTHERING3.062.01.3002.761.85002.302.041.782.58词项SaSPaPWHAFFECTIONJEALOUSGOSSIPWUTHERING0.7890
21、.5150.3350.00.8320.5550.00.00.5240.4650.4050.588cos(SaS,PaP)0.789 0.832+0.515 0.555+0.335 0.0+0.0 0.0 0.94.cos(SaS,WH)0.79cos(PaP,WH)0.69cos(SaS,PaP)cos(SAS,WH)cos(PaP,WH)50。51tf-idf 计算样例:Inc.Itn查询:“best car insurance”.文档:“car insurance auto insurance”.1/1.92 0.521.3/1.92 0.68 最终结果 wqi wdi=0+0+1.04+2.04=3.0851。