三种平滑方法

为了理解《LETOR: A benchmark collection for research on learning to rank for information retrieval》中提出的数据特征中的三个:LMIR.ABS、LMIR.DIR、LMIR.JM的计算方法,我查阅了很多资料。前面一篇博客是理解。这一篇也是。这篇博客的内容来自《A Study of Smoothing Methods for Language Models Applied to Ad Hoc Information Retrieval》。一作翟成祥,我曾经学过老师的文本检索课程。这篇文章主要写下自己的感受和学习到的。

1 论文目的

这篇论文的目的是研究平滑方法在信息检索中的作用。信息检索方法很多,这里评估的是使用语言模型建立query和文档相似度计算实现排序的信息检索方法。基于语言模型计算相似度的排序算法对平滑算法有多敏感?平滑算法的参数又该怎么选择?

2 语言建模方法

2.1 基础

我们假设一个query是根据一个语言模型基于document 生成的。
我们的目的是评估estimate p(d∣q)p(d|q)p(dq)的大小。p(d∣q)p(d|q)p(dq)解释为d产生观测q的概率。
根据贝叶斯公式:p(d∣q)∝p(q∣d)p(d)p(d|q)\propto p(q|d)p(d)p(dq)p(qd)p(d)
假设p(d)服从均匀分布,对结果不产生影响,所以p(d∣q)∝p(q∣d)p(d|q)\propto p(q|d)p(dq)p(qd)
当然p(d)也可以用一些非文本特征,例如文档长度、链接数量作为文档特征参与排序。在当前文档中认为是均匀分布。

2.2 可见词与不可见词

进一步p(q∣d)=∏ip(qi∣d)p(q|d) = \prod_ip(q_i|d)p(qd)=ip(qid),在本文档中使用一元语言模型(unigram language model )建模。对于二元、三元语言模型建模方法参考:[10]D. H. Miller, T. Leek, and R. Schwartz (1999). "A hidden Markov model information retrieval system,In Proceedings of the 1999 ACM SIGIR Conference on Research and Development in Information Retrieval^ pp. 214-221. [20]F. Song and B. Croft (1999). “A general language model for information retrieval,” in Proceedings of the 1999 ACM SIGIR Conference on Research and Development in Information Retrieval^ pp. 279-280.

语言模型评估可能性的方式与TD-IDF是不同的,但有趣的是通过平滑方法可以在两者之间建立一种相似性。

一般平滑方法都会分成2个分布:ps(w∣d)p_s(w|d)ps(wd)表示可见词的分布,pu(w∣d)p_u(w|d)pu(wd)表示不可见词的分布。公式改写为如下:

logp(q∣d)=∑ilogp(qi∣d)=∑i;c(qi;d)>0logps(qi∣d)+∑i;c(qi;d)=0logpu(qi∣d)=∑i;c(qi;d)>0logps(qi∣d)pu(qi∣d)+∑ilogpu(qi∣d)logp(q|d)=\sum_ilogp(q_i|d)\\ =\sum_{i;c(q_i;d)>0}logp_s(q_i|d)+\sum_{i;c(q_i;d)=0}logp_u(q_i|d)\\ =\sum_{i;c(q_i;d)>0}log\dfrac{p_s(q_i|d)}{p_u(q_i|d)} +\sum_ilogp_u(q_i|d)logp(qd)=ilogp(qid)=i;c(qi;d)>0logps(qid)+i;c(qi;d)=0logpu(qid)=i;c(qi;d)>0logpu(qid)ps(qid)+ilogpu(qid)

在这里有个注意的点。不可见词指的是在当前文档中不存在的词。例如query=“计算机 散热”,当前文档中没有“散热”这个词,但是整体的语料库中是有"散热"这个词的。这样“散热”就是不可见单词。如果整个训练语料中都没有“散热”这个词,那这个词就不参与计算。

最后两部的等价过程是这样的:倒数第一步:第一部分是所有可见词的可见概率对数加和,第二部分是所有不可见词的不可见概率对数加和。
最后一步的第二部分是:所有词的不可见概率对数和。对加了可见词的不可见概率对数和,需要在第一部分减去,就是∑i;c(qi;d)>0logps(qi∣d)pu(qi∣d)\sum_{i;c(q_i;d)>0}log\dfrac{p_s(q_i|d)}{p_u(q_i|d)}i;c(qi;d)>0logpu(qid)ps(qid)了。

2.3 引入常量

我们再进一步假设pu(qi∣d)=αdp(qi∣C)p_u(q_i|d)=\alpha_dp(q_i|C)pu(qid)=αdp(qiC)αd\alpha_dαd是一个与文档相关的常数。p(qi∣C)p(q_i|C)p(qiC)是一个集合语言模型(collection language model)。这里的C应该是整个训练语料库中的词总数。到此,我们有:
logp(q∣d)=∑i;c(qi;d)>0logps(qi∣d)αdp(qi∣C)+nlogαd+∑ilogp(qi∣C)logp(q|d)=\sum_{i;c(q_i;d)>0}log\dfrac{p_s(q_i|d)}{\alpha_dp(q_i|C)} +nlog\alpha_d+\sum_ilogp(q_i|C)logp(qd)=i;c(qi;d)>0logαdp(qiC)ps(qid)+nlogαd+ilogp(qiC)
n:查询的长度(query中词的个数)

现在这个公式分成两个部分。第一部分是权重,衡量每个词在query-document之间的权重。第二部分是只涉及到当前文档的常数,它与有多少概率分配给不可见词相关。qiq_iqi的参数ps(qi∣d)αdp(qi∣C)\dfrac{p_s(q_i|d)}{\alpha_dp(q_i|C)}αdp(qiC)ps(qid)与词频成正比,与语料库中的词频成反比。p(qi∣C)p(q_i|C)p(qiC)起到了类似于IDF的作用。第二部分我们可以认为它起到了类似于文档长度正则化的作用。

3 平滑方法

pml(w∣d)=c(w;d)∑wc(w;d)p_{ml}(w|d)=\dfrac{c(w;d)}{\sum_wc(w;d)}pml(wd)=wc(w;d)c(w;d)c(w;d)是指w在d中的出现次数

基于复杂度以及有效性,作者选择了三种平滑方法:Jelinek-Merce、Dirichlet、Absolute discount。根据这三种计算得到的语言模型也是我需要的三个特征。

3.1 Jelinek-Merce

ps(w∣d)=(1−λ)pml(w∣d)+λp(w∣C)p_s(w|d)=(1-\lambda)p_{ml}(w|d)+\lambda p(w|C)ps(wd)=(1λ)pml(wd)+λp(wC)
αd=λ\alpha_d=\lambdaαd=λ

3.2 Dirichlet

ps(w∣d)=c(w;d)+μp(w∣C)∑wc(w;d)+μp_s(w|d)=\dfrac{c(w;d)+\mu p(w|C)}{\sum_wc(w;d)+\mu}ps(wd)=wc(w;d)+μc(w;d)+μp(wC)

αd=μ∑wc(w;d)+μ\alpha_d=\dfrac{\mu}{\sum_wc(w;d)+\mu}αd=wc(w;d)+μμ

3.3 Absolute discount

ps(w∣d)=max(c(w;d)−δ,0)∑wc(w;d)+δ∣d∣u∣d∣p(w∣C)p_s(w|d)=\dfrac{max(c(w;d)-\delta,0)}{\sum_wc(w;d)}+\dfrac{\delta|d|_u}{|d|}p(w|C)ps(wd)=wc(w;d)max(c(w;d)δ,0)+dδdup(wC)

αd=δ∣d∣u∣d∣\alpha_d=\dfrac{\delta|d|_u}{|d|}αd=dδdu

∣d∣|d|d表示文档中的词的总量。
∣d∣u|d|_udu表示文档中不同词的个数。

4 试验以及结果

作者测试了不同长度的搜索词,在不同平滑方法上的效果。得到如下结论:
1 搜索效果对平滑敏感
2 Jelinek-Mercer表现相对来说会好一些,但是仅对于长的,详细的查询。对于长query,lambda可以等于0.7;对于短query,lambda等于0.1
3 Dirichlet prior 在短查询上来说表现比较好 μ的值一般在2000。 query越长,μ值越大。
4 Absolute discount在短查询上表现比较好,在长的详细的查询上表现不好。δ\deltaδ的值一般在0.7左右。
5 插值平滑策略效果要比backoff策略好。

平滑方法在语言相似度模型中可能有2个作用。一个是提高模型的准确率;第二个是降低非信息词的重要性。Dirichlet prior 在第一个作用中表现的很好,Jelinek-Mercer在第二个作用中表现很好。

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

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

相关文章

控制台读写

program Project1;{$APPTYPE CONSOLE}varstr: string; beginWriteln(请输入:);Readln(str);Writeln(你输入的是: str);Readln; end.转载于:https://www.cnblogs.com/del/archive/2007/11/21/967013.html

基于Chromium构建Chrome WebBrowser for .net 控件(还有点心得体会)

http://blog.csdn.net/lllllllllluoyi/article/details/8540054 首先向360说句sorry,在2011年360极速浏览器出现的时候我去他们论坛里骂过。为什么要到歉呢,因为2012年我把我们公司使用IE WebBrowser改为Chrome控件了,中间遇到的辛酸使我明白…

我们“老实”么?

我们“老实”么? 不知道现在的人,对老实这个词语是怎样的看法。“聪明”的人应该觉得那是个贬义词吧,因为他们总是在利用那些他们认为的“老实”人,有好事的时候他们想到的是那些他们畏惧或者讨好自己的人,有麻烦的时候…

从决策树到xgboost(一)

文章目录1 决策树1.1决策树定义1.2信息增益1.3 信息增益的算法1.4 信息增益比2 决策树ID32.1 ID3树的构建2.2 决策树的剪枝2.2.1 损失函数定义与计算2.2.2 剪枝过程2.3 CART树2.3.1 CART回归树2.3.2 CART分类树2.3.3 CART树剪枝1 决策树 1.1决策树定义 决策树的基本组成&…

网络媒体的赢利模式

首先我们先确定几个概念,网络媒体本质上是媒体的一种,它具有媒体的一切共性,同时它的经营也具有媒体经营的一切共性,而媒体除网络媒体以外,我们把其余的统称为传统媒体,其中又把电视、电台和报刊称之为传统…

从决策树到xgboost(二)

文章目录3 集成学习4 Adaboost4.1 Adaboost算法4.1.1 初始化训练数据的起始权值分布4.1.2 对m个弱分类器m1,2,3...M4.1.3 构建弱分类器的线性组合4.1.4 得到最终的分类器5 Boosting5.1 加法模型5.2 前向分布算法6 提升决策树BDT6.1 BDT算法6.2 回归问题提升树7 梯度提升决策树G…

[伤了昨天的心 裂成碎片和沙一起飞]五香里脊

今晨3点挂的电话,6点睁开的眼。困到头痛,但还是烧了道肉菜。…**…**…**…**…**…**…**…*分隔 五香里脊*…**…**…**…**…**…**…**…五香里脊 材料:1.里脊肉、油、麻油。2.蒜末、辣椒末、水、生抽、老醋、糖、…

python 字符串format使用

python字符串的格式化输出 格式化字符串是程序设计语言中用于指定输出参数的格式化与相对位置的字符串参数。其中的转换说明用于把随后的对应一个或多个函数参数转换为相应的格式输出:格式化字符串中转换说明以外的其他字符原样输出。 1>>>"I like %s…

MOTOMAN-SV3X运动学建模验证图

以下是正解,逆解 结果 转载于:https://www.cnblogs.com/wqj1212/archive/2008/01/01/1022177.html

极客时间算法练习题总结

文章出处:极客时间《数据结构和算法之美》-作者:王争。该系列文章是本人的学习笔记。 在极客时间《数据结构和算法之美》最后,王争老师加餐了7天训练内容,对每一部分需要掌握的数据结构与算法做了总结。现在我把这些题目放在一起&…

小程序·云开发实战 - 迷你微博

0. 前言 本文将手把手教你如何写出迷你版微博的一行行代码,迷你版微博包含以下功能: Feed 流:关注动态、所有动态发送图文动态搜索用户关注系统点赞动态个人主页使用到的云开发能力: 云数据库云存储云函数云调用没错,几…

看看自己08年的基金是否能赚钱

你的机器人已通过审核, 机器人名称:天才小猪仔-基金定投 机器人帐号:sharetop.cnhotmail.com 机器人地址: http://contest.xiaoi.com/listRobot.do?actionshowDetail&id61 欢迎进入 http://contest.xiaoi.com 为你的机器人…

spring mvc学习(60):ssm项目整合

SSM整合 建立springmvc项目&#xff0c;先跑起来&#xff0c;再整合spring和mybatis 一.SpringMVC建立 1.新建maven工程&#xff0c;安装tomcat 2.导入pom <!-- springmvc --><dependency><groupId>org.springframework</groupId><artifactId>…

回溯算法归纳

回溯算法解题思路回溯的两种思路题目描述按照思路1解决按思路2解决回溯的两种思路 看不同的解题方法&#xff0c;形成不同的思维。 先说结论。回溯解题思路1&#xff1a;是对可选择每个元素&#xff0c;采取不选择、选择两种策略&#xff0c;不断递归下去。最近看花花酱的视频…

Des与3Des加密解密

/// <summary>/// Des和3Des算法/// </summary>public class Des{/// <summary>/// Des加密/// </summary>/// <param name"pToEncrypt">明文</param>/// <param name"sKey">密钥</param>/// <returns…

Javascript中Date对象的使用

JavaScript 没有一个基本的日期数据类型&#xff0c;所以我们只能显式地创建Date对象。我们创建新的Date对象和创建String对象的方式是一样的&#xff0c;使用关键字new和Date构造函数。下面这行创建了一个包含当前日期和实践的Date对象&#xff1a;var todaysDate new Date()…

数据结构与算法总结(完结)

极客时间算法学习之后开始跟着花花酱刷题。大概从4月份开始的。从今天开始&#xff08;2020-8-24&#xff09;开始做总结&#xff0c;复习一下已经刷过的题目。到目前为止leetcode刷题323道。 2020/8/24 完成题目整理&#xff0c;下一步是将每个题目都加上超链接。这个超链接尽…

mybatis学习(1):【持久化框架】Mybatis简介与原理

从这篇博文开始我们学习一下Mybatis&#xff0c;希望大家提出宝贵的建议。 什么是Mybatis MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code&#xff0c;并且改名为MyBatis 。iBATIS一词来源于“internet”和“abati…

UML类图解义

小菜&#xff1a;“对了&#xff0c;我时常在一些技术书中看到这些类图表示&#xff0c;简单的还看得懂&#xff0c;有些标记我很容易混淆。要不你给我讲讲吧。” 大鸟&#xff1a;“这个其实多看多用就熟悉了。我给你举一个例子&#xff0c;来看这样一幅图&#xff0c;其中就包…

mybatis学习(2):基本设置和核心配置

1创建一个简单的java项目 2导入jar包 建立一个lib包 链接&#xff1a;https://pan.baidu.com/s/1eJ7xXF2qvUbgde2T--Sphg 提取码&#xff1a;3bgy 加入junit的包 右键项目---build path---add library 4导入配置文件 log4j.properties ### ### log4j.rootLogger ERROR,s…