搜索引擎的点击日志提供了很多有价值的query-doc相关性信息,但是这些信息是有偏的,因为对于用户没有点击过的doc,我们无法确定其是否真实地被用户浏览过。即日志中记录的展现信息与实际的展现信息之间是存在一定的差距的,日志中记录的展现doc在实际上用户并不一定真的看到,排序的位置对用户是否看到 & 点击也存在一定的影响。User Browsing Model(UBM) 即是在消除这些因素对CTR的影响,使得根据历史信息得到的CTR能更好的拟合doc原始的CTR。

User Browsing Model(UBM) 通过对用户在搜索结果页上的浏览行为和点击行为作出一定的假设,来预估每个doc被用户浏览过的概率。具体的方法是,构建出(query-doc的展现CTR:Display CTR)与(query-doc的展现概率:Examination和 query-doc的真实CTR:Attractiveness)这二者之间的关系,即Display CTR = Examination * Attractiveness。

在实际的使用中,User Browsing Model得到的模型的参数,可以有两种使用方向:

1)doc的展现概率:Examination,可以用于修正相应的doc的展现次数,进一步可以修正统计CTR,以及修正CTR预估模型的目标。

2)doc的真实CTR:Attractiveness,可以用于修正相应的doc的CTR数值,可以作为统计CTR来看待,也可以作为CTR预估模型的目标。

考虑这样的场景:当一个用户输入一个query后,搜索引擎返回给他一个搜索结果列表,用户从第一个结果开始按照排序结果的顺序进行浏览,对于每一个位置的结果,用户需要决定是否浏览这个结果,如果进行浏览行为了之后,再根据这个结果是否相关(或者说对于用户有吸引力)来决定是否进行点击。所以,如果最后用户对某个结果进行点击了,说明:

1)用户对该doc进行了“浏览”(Examination=1)

2)该doc与query“相关”(Attractiveness=1)

User Browsing Model中假设:

1)是否相关的概率则是由query(q)与doc(u)决定。

2)用户是否浏览某个doc的概率与该doc的的位置r,以及距离上一次点击的距离d有关(如果之前没有过点击行为,则认为是上一次点击的位置为0)。之所以考虑距离上一次点击的距离,是基于这样的假设:当用户看到一大段不相关的结果列表时,更倾向于放弃这次搜索行为。

因此,Attractiveness和Examination可以定义如下:

那么,一次点击行为序列则可以使用联合概率P(c,a,e|u,q,d,r)来表示:

为了计算一个观测组(c,u,q,d,r),则需要分别考虑点击与否的情况。

1)当c=1时,即当前发生一次点击,我们可以以此推断用户对该doc进行了“浏览”(Examination=1),同时该doc与query“相关”(Attractiveness=1)。与此相反,若当前没有发生点击,则说明用户对该doc没有进行“浏览”(Examination=0),或者该doc与query“不相关”(Attractiveness=0),综合来看,可以表述为:

为了求得参数α和γ的值,可以使用最大似然估计的方法,将观测结果分为两个集合,分别为点击集合和未点击集合 ,可以得到如下的似然函数:

其中,q代表query,u代表一个宝贝id,r代表宝贝排序的位置, 代表未点击样本的集合,d代表宝贝排序与上一次点击的距离,γ代表在位置r,距离d时被用户看到的概率,α表示宝贝被点击的实际概率。

由于得到的似然函数是凸函数,因此可以使用梯度下降的方式来进行求解,分别对两个参数计算梯度,使得似然函数取得极大值即可。

User Browsing Model简介的更多相关文章

  1. (3)Gojs model简介

    (3)Gojs model简介 在GoJS中,model用来存储表的基本数据,包括node.link等具体对象和属性,与其在视觉上的展示效果不相关.model中往往只保存相对简单的数据,最方便且持久化 ...

  2. Sentry 监控 - Snuba 数据中台架构(Data Model 简介)

    系列 1 分钟快速使用 Docker 上手最新版 Sentry-CLI - 创建版本 快速使用 Docker 上手 Sentry-CLI - 30 秒上手 Source Maps Sentry For ...

  3. Office Add-in Model 简介

    原文地址:http://simpeng.net/office-add-in/office-add-in-model-%e7%ae%80%e4%bb%8b/ , 为了本博客内容的完整性,转载至此. Of ...

  4. POM (Project Object Model)简介

    1  概念介绍 一个项目所有的配置都放置在 POM 文件中:定义项目的类型.名字,管理依赖关系,定制插件的行为等等.比如说,你可以配置 compiler 插件让它使用 java1.5 来编译. < ...

  5. 在c++中使用Outlook Object Model发送邮件

    一.Outlook Object Model简介 Outlook Object Model(OOM)是outlook为开发者提供的一个COM组件,我们可以在程序中使用它来发送邮件.管理邮箱等.相关介绍 ...

  6. ASP.NET MVC 3 Model【通过一简单实例一步一步的介绍】

    今天主要讲Model的两个方面: 1. ASP.Net MVC 3 Model 简介 通过一简单的事例一步一步的介绍 2. ASP.Net MVC 3 Model 的一些验证 MVC 中 Model ...

  7. Attention Model(注意力模型)思想初探

    1. Attention model简介 0x1:AM是什么 深度学习里的Attention model其实模拟的是人脑的注意力模型,举个例子来说,当我们观赏一幅画时,虽然我们可以看到整幅画的全貌,但 ...

  8. asp.mvc展示model

    1. ASP.Net MVC 3 Model 简介 通过一简单的事例一步一步的介绍2. ASP.Net MVC 3 Model 的一些验证 MVC 中 Model 主要负责维持数据状态,将数据从数据存 ...

  9. Django Model模型

    Model简介 模型准确且唯一的描述了数据.它包含您储存的数据的重要字段和行为.一般来说,每一个模型都映射一张数据库表. 每个模型都是一个 Python 的类,这些类继承 django.db.mode ...

随机推荐

  1. div 宽高相等2种实现方式

    div.wh{ background:#ff0;width:50%;position:relative;display:inline-block; } div.wh:before{ content: ...

  2. 1789: [Ahoi2008]Necklace Y型项链

    1789: [Ahoi2008]Necklace Y型项链 Time Limit: 1 Sec  Memory Limit: 64 MBSubmit: 421  Solved: 258[Submit] ...

  3. git merge 冲突

    当前分支为 master 然后操作时: git merge dev 发现有文件冲突. 当我们倾向于使用dev 分支的代码时,可以使用以下命令: git checkout --theirs src/ma ...

  4. ORM映射设计思想

    using System; using System.Collections.Generic; using System.Data.SqlClient; using System.Linq; usin ...

  5. iOS网络编程笔记——GCDAsyncSocket使用

    CocoaAsyncSocket为Mac和iOS提供了易于使用且强大的异步通信库. 简单的Socket通信包括了建连.断开连接.发送socket业务请求.重连这四个基本功能. 1.建立连接:GCDAs ...

  6. Docker(开课吧笔记)

    1.Docker基本概念 Docker运行在Linux,需要git技能 docker官网解析   来源于容器又不仅仅是容器,第一个版本基于LXC,远远超过容器概念   交付时拿到的是镜像,直接run运 ...

  7. c#实现list,dataset,DataTable转换成josn等各种转换方法总和

    using System;using System.Collections.Generic;using System.Text;using System.Data;using System.Refle ...

  8. Dive in python Chapter3 实例

    def buildConnectionString(params): """Build a connection string from a dictionary Ret ...

  9. CSS常见兼容性问题总结

    原文链接:渔人码头 http://www.cnblogs.com/imwtr/p/4340010.html?utm_source=tuicool&utm_medium=referral 浏览器 ...

  10. java之泛型解说

    1.集合中只能装入引用数据类型,不能装入基本数据类型.如,装入int类型的数值123会自动装箱. 2.开发人员装入集合的数据类型不确定,所以它被设计成可以装入所有的Object. 3.新的问题产生,装 ...