文档排序模型--查询似然Query Likelihood

 在概率模型中,我们定义排序函数是基于文档与查询之间的相关度、可能性来做的。f(d,q) = p(R=1|d,q), R {0,1}。概率模型有几个小分类:
  经典概率模型——>BM25
  语言模型Language Model —–>Query Likelihood
  Divergence from randomness—–>PL2
  

1 查询似然算法

 语言模型的假设是:p(R=1|q,d)p(q|d,R=1),文档与查询相关的概率约等于 在文档相关的前提下,用户输入q的概率。

1.1 概率模型的基本概念

 给定下面这个表格,收集了不同用户基于不同query,认为文档是否相似。
 f(q,d)=p(R=1|q,d)=count(q,d,R=1)count(q,d)
 例如p(R=1|q1,d1) = 1/2;p(R=1|q1,d2)=2/2….

 这里写图片描述
 这里的问题是对于不在表格中的查询,不在表格中的文档怎么处理?

1.2 查询似然算法

 解决上述问题,我们换个角度计算一下上面那个表格中,在文档d1相关的前提下,用户输入q1的概率是多少。如果概率越高则q1与d1的相关度就越高。
 需要提出一个假设:用户输入的查询词是基于想象的相关文档。

2 统计语言模型LM

2.1 LM的概念

 语言模型LM是一个基于单词序列的概率分布。
  p(“Today is Wednesday”) 0.001
  p(“Today Wednesday is”) 0.0000000000001
 同样的3个词,概率相差很大。这说明语言模型是基于上下文的。这个模型也可以理解为生成一个文本的概率。所以又被称为生成模型generating model。这是一种可以生成单词的随机系统。

2.2 LM为什么有效

 1 LM量化了自然语言的不确定性。
 2 能够解决以下问题
  speech recognition:已经看到单词“John” , “feels”,那继续看到的单词更可能是“happy”而不是”habit”。
  text categorization, information retrieval:一篇新闻文章中提到三次”baseball”,一次”game”,这篇文章是新闻的概率。
  information retrieval:已知一个用户喜欢体育,那他输入”baseball”的概率是多大。

2.3 最简单的语言模型:一元模型

 一元模型在生成文本的时候词与词之间是独立的:p(w1,w2...,wn)=p(w1)p(w2)...p(wn)。这里有n个参数p(w1)p(w2)…。生成的文本就是简单的从词的概率分布中抽取词汇。例如p("TodayisWend")=p("Today")p("is")p("Wend")
 
 这里写图片描述

 我们可以使用Topic1的词分布产生一篇 关于Text mining的文章。我们可以使用Topic2的词分布产生一篇关于 Food nurtrition的文章。当然我们也可以用Topic1的词分布产生一篇关于 Food nurtrition的文章,但这样的事情概率很低。这是依据词分布生成文章。
 接着我们换个角度。如果现在有一篇文档(已知文章的词的总量,每个词的词频),现在推测哪种词模型可能产生这样一篇文档,假设文章是由分布中的词汇组装而成的。
 p(text)=? p(mining)=?…..
 一种很直接的想法是用词频/词的总数:p(text)=10100p(mining)=5100…..
 这种方法被称为极大似然估计(Maximum Likelyhood Estimator ):p(w|θ)=p(w|d)=c(w,d)|d|
 对于没有出现在文档中的词,p(w|d)=0。 
 
 这里写图片描述

一元模型的用途。
用途1:表示不同的主题。这里涉及到通用模型,集合模型,文档模型。

用途2:做词的关联分析。从语义上来讲,哪些词和”computer”最接近?第一步,我们从包含”computer”的文档中得到每次的极大似然估计概率,将概率从大到小排序;第二步,我们找到这些词中有很多是通用词库的词,与”computer”无关,我们可以使用通用词库,得到通用词库每个词的极大似然估计概率。第三步,使用者两个模型,得到的词就是与”computer”相关的词。例如我们可以使用通用模型词的概率将第一步得到的概率normalize(规则化):p(w|"computer")p(w|B)

 

3 极大似然函数与一元模型

3.1 基本模型

 在统计语言模型中,我们提出:如果用户想要查找的是文档d,那用户有多大可能性提出这个特殊的查询
 例如文档d=”… news of presidential campaign … presidential candidate …”
 p(q=presidentialcampaign|d)=?
 
 现在,我们假设用户以此文档为基准,来提出一个查询,并且查询该文档。使用一元模型的极大似然思想:p(q=presidentialcampaign|d)=p("presidential"|d)p("campaign"|d)=c("presidential",d)|d|c("campaign",d)|d| (一元模型,就假设了查询中每个单词的产生是相互独立的)

3.2 升级版模型

 如果q = “presidential campaign update”,每个文档中都没有”update”这个词,概率p=0,这个时候就出现问题了。
 

 问题出在,如果假设用户查询的词都出在某一个文档(a document),但实际上用户是看过很多文档,他查询的词更可能出在于一个文档模型(a document model)。
 
 这里写图片描述

 从图中可以看出从文档模型产生文档,从文档模型产生查询。
 这样的模型该怎么计算呢?分两个步骤:1、计算文档模型(Document Language Model);2、计算每个词在文档模型中概率的乘积。
 q=w1w2...wn
 p(q|d)=p(w1|d)p(w2|d)....p(wn|d)
 f(q,d)=logp(q|d)=ni=1logp(wi|d)=WVlogp(w|d)
 我的问题:增强版与简单版本的思想从字面上的区别看从“文档” 变成了“文档语言模型”。我最开始的想法是“文档语言模型”是由很多文档组成的一个文档集,但是看老师的ppt又认为不是这么回事。我需要再找资料查明什么是文档语言模型。

3.3 p(w|d)=?

 对于p(w|d)不同的估计方法会形成不同的不同的排序函数。
 第一种估计方法是极大似然估计。pML(w|d)=c(w,d)|d|
 对于没有出现在文旦中的词,我们需要平滑技术,为那些没有出现在文档中的词给一个概率。
 一种解决方法是从一个引用语言模型查询出一个概率。这个引用语言模型可以是Collection Language Model.
 这里写图片描述

最后得到的排序函数是:
f(q,d)=log(p|d)=wiq,wid[c(wi,q)logpseen(wi|d)αdp(wi,C)]+nlogαd+ni=1logp(wi|C)
这是公式是经过变形的,为了方便计算得到的。同时,这个公式也更像TF-IDF得到的计算公式。
这里写图片描述

 pseen(wi|d)扮演了类似TF的角色。
 p(wi,C),在分母上,更像是IDF。
 αd类似于文档长度因子。它表示究竟想给未见过的单词多大的概率。如果文档本身很长,可能给的概率就会小一些;如果文档本身很短,给的概率就会大一些。
 

3.4 平滑方法

 pseen(wi|d)=?
 αd=?
 上面的公式留下了两个问题。

3.4.1 线性插入法

 Linear Interpolation (Jelinek-Mercer) Smoothing:固定系数
 结合极大似然算法:
 p(w|d)=(1λ)c(w,d)|d|+\lambdap(w|C)λ[0,1]
 αd=λ
 fJM(q,d)=Wq,Wdc(w,q)log[1+1λλc(w,d)|d|p(w|C)]

3.4.2 狄利克雷

 Dirichlet Prior (Bayesian) Smoothing 动态系数修改,添加伪计数
 这里写图片描述
 αd=μ|d|+μ
 fDIR(q,d)=[Wq,Wdc(w,q)log[1+c(w,d)μp(w|C)]]+nlogμμ+|d|

 按照查询似然的方式得到了和VSM类似的结果。不同的解决思路,过程中需要增加填补的方式也不同。
 查询似然->一元语言模型->文档语言模型->平滑
 位向量->词频->TF-IDF->TF变形->惩罚长文档

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/424885.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第五十二期:甲骨文遭遇“中年危机”:继阿里后,再被亚马逊永久抛弃

42岁的甲骨文迎来“中年危机”。10月15日,亚马逊AWS技术布道者Jeff Barr在AWS官网宣布亚马逊消费者业务永久弃用甲骨文(Oracle)数据库。 作者:温暖来源:镁客网 42岁的甲骨文迎来“中年危机”。 10月15日,亚马逊AWS技术布道者Jef…

[Leetcode][第461题][JAVA][汉明距离][位运算][Brian Kernighan]

【问题描述】[简单] 【解答思路】 1. 内置位计数功能 时间复杂度:O(1) 空间复杂度:O(1) class Solution {public int hammingDistance(int x, int y) {return Integer.bitCount(x ^ y); } }2. 移位 时间复杂度:O(1) 空间复杂度&#xff1…

第二十八期:Notepad++ 新 Logo 出炉,官网全新改版采用自适应设计

Notepad 的推特帐号发布了关于 notepad 的消息。与旧版 Logo 相比,新 Logo 整体的变化不大,不过官方则表示新版 Logo 比旧版的更吸引人,也更加简洁且更具意义。 新旧 Logo 对比如下(左边为旧版 Logo): 除了…

React Navigation 导航栏样式调整+底部角标消息提示

五一佳节匆匆而过,有人选择在外面看人山人海,有人选择宅在家中度过五一,也有人依然坚守在第一线,致敬! 这是坚持学习react-native的第二篇文章,可能会迟到,但是绝不会缺席,这篇要涉及…

反馈(Feedback)

说明:文章内容来源于课程视频和课程ppt。我只学习了课程没有做习题。文章不是翻译,是我对课程的理解。  终于到了第四部分了。之前提到过的,一个文本检索系统分词索引打分反馈。前面三部分都已经在前面的文档中介绍了。现在看反馈。反馈是根…

【数据结构与算法】堆

一:如何理解“堆” 1,堆是一个完全二叉树; 完全二叉树要求除了最后一层,其他层的节点都是满的,最后一层的节点都靠左排列。 2,堆中每个节点都必须大于等于(或小于等于)其子树中每个…

第五十三期:资深技术Leader肺腑忠告:如何成为技术大牛?

这篇文章,对于每一个想成为技术大牛的人来说都值得仔细阅读好几遍。 作者:曹乐来源:再成长一次 图片来自 Pexels 双生说:曹乐是典型学霸,清华本硕,多年互联网大厂研发经验,所以“资深”。我刚…

互联网搜索引擎

说明:文章内容来源于课程视频和课程ppt。我只学习了课程没有做习题。文章不是翻译,是我对课程的理解。 1 挑战 互联网搜索引擎与一般搜索引擎的区别主要在以下问题。  第一是数据量(scalability)。互联网搜索需要处理的数据量大,如何保证能…

第五十四期:Libra盟友纷纷“跳船”,联盟链还有戏吗?

曾经被诺贝尔奖得主斯蒂格利茨评价为“傻子才信”的Facebook数字加密货币项目Libra,自从出世开始就负面不断。最近在其首届理事会议前夕,PayPal、Visa、万事达、Stripe和eBay等全球型金融巨头“盟友”的相继退出,更使其遭遇了不少“看空”。 …

python time模块

时间戳、结构化时间、字符串时间 import time#时间戳 ,大多时候用于计算 #从1970年0点0分0秒开始计算的秒数 print(time.time())#结构化时间------当地时间(东8区) #返回一个时间对象 print(time.localtime())#time.localtime()中默认参数为…

第五十五期:区块链将在2020年实现的重大改变

科技界的每家公司都已经拥有区块链战略。如果他们现在没有,他们就有可能错过了这个时代的一个机会。在过去几年中,许多企业已经对整体采用区块链技术的好处和相关风险进行了估算,分析和讨论。 科技界的每家公司都已经拥有区块链战略。如果他们…

为什么机器学习算法要与人类水平比较

原因 1 近年来机器学习的效果越来越好,能够和人类的相应能力做比较。 2 设计和构建机器学习系统,这个工作流程很高效。 因为种种原因,ML或者人都不可能超过Bayes Optimal Error 贝叶斯最优误差,ML随着时间推移会越来越接近贝…

第二十九期:运维之三大监控对比

Zabbix核心组件主要是Agent和Server,其中Agent主要负责采集数据并通过主动或者被动的方式采集数据发送到Server/Proxy,除此之外,为了扩展监控项,Agent还支持执行自定义脚本。 作者:艺术生的运维路来源:今日…

[Leetcode][第459题][JAVA][重复的字符串][子串][匹配]

【问题描述】[中等] 【解答思路】 1. 枚举 找出能整除的子串长度,再用substring遍历匹配即可 时间复杂度:O(N^2) 空间复杂度:O(1) class Solution {public boolean repeatedSubstringPattern(String s) {int len s.length();for(int i 1…

第五十六期:百度CTO王海峰CNCC2019演讲:深度学习平台支撑产业智能化

百度CTO王海峰在会上发表题为《深度学习平台支撑产业智能化》的演讲,分享了百度关于深度学习技术推动人工智能发展及产业化应用的思考,并深度解读百度飞桨深度学习平台的优势,以及与百度智能云结合助力产业智能化的成果。 作者:佚…

【STM32】IIC的基本原理(实例:普通IO口模拟IIC时序读取24C02)(转载)

版权声明:本文为博主原创文章,允许转载,但希望标注转载来源。 https://blog.csdn.net/qq_38410730/article/details/80312357IIC的基本介绍 IIC的简介 IIC(Inter-Integrated Circuit)总线是一种由PHILIPS公…

【数据结构与算法】广度优先遍历(BFS) 深度优先遍历(DFS)

一、 搜索算法 深度优先搜索和广度优先搜索是最暴力的图的搜索算法。算法的目标是,给定一张图,一对初始和终止节点,找到两节点之间的节点路径。(代码均是找到两个节点之间的路径) 广度优先搜索是一层一层搜索&#xf…

stack专题

20 Valid Parentheses 问题:没有意识到字符串中只包含字符:’(‘, ‘)’, ‘{‘, ‘}’, ‘[’ and ‘]’ 代码:git代码 682 Baseball Game 问题:错误在操作:top1 先弹出,top2 再弹出,还原到…

第三十期:简单好用的9个电脑必备工具!让你轻松10倍

下面 9 款工具都是精心挑选的电脑必备神器,涵盖你需要的各个方面,无论是安全防护、文件查找、解压加密还是娱乐都在其中;最最最重要的是,它们不但各个功能强大,而且非常轻便,没有弹窗广告、没有捆绑安装、也…

【数据结构与算法】字符串匹配 BF算法 RK算法

单模式串匹配 BF 算法和 RK 算法 BM 算法和 KMP 算法多模式串匹配算法 Trie 树和 AC 自动机 一、BF 算法 1,BF算法是Brute Force的缩写,中文译作暴力匹配算法,也叫朴素匹配算法。 2,两个概念:主串和模式串 如在字符串…