搜索引擎的点击日志提供了很多有价值的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. Spring框架(6)---AspectJ实现AOP

    AspectJ实现AOP 上一篇文章Spring框架(4)---AOP讲解铺垫,讲了一些基础AOP理解性的东西,那么这篇文章真正开始讲解AOP 通过AspectJ实现AOP要比普通的实现Aop要方便的 ...

  2. 从零开始学习Vue(三)

    我们从一个例子来学习组件,vuejs2.0实战:仿豆瓣app项目,创建自定义组件tabbar 这个例子用到其他组件,对于初学者来说,一下子要了解那么多组件的使用,会变得一头雾水.所以我把这个例子改写了 ...

  3. 1688: [Usaco2005 Open]Disease Manangement 疾病管理

    1688: [Usaco2005 Open]Disease Manangement 疾病管理 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 413  So ...

  4. 3299: [USACO2011 Open]Corn Maze玉米迷宫

    3299: [USACO2011 Open]Corn Maze玉米迷宫 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 137  Solved: 59[ ...

  5. SQL基本编程,分支语句,循环语句,存储过程,触发器

    基本编程: 定义变量 declare @变量名 数据类型 赋值 set @变量名 = 值 select @变量名 = 值 取值打印 select @变量名 print @变量名 映射到结果集 打印到消 ...

  6. 解决 Linux error while loading shared libraries: cannot open shared object file: No such file or directory

    安装最新版本Emqtt,参照官方文档安装后,执行报错: Linux error while loading shared libraries libsctp.so.1: cannot open sha ...

  7. warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]

    struct test{int a=1111111; }test; vincentdeMacBook-Air:datasturte vincent$ g++ struct.cpp -o structp ...

  8. 使用Java语言开发微信公众平台(四)——图文消息的发送与响应

    在上一篇文章中,我们实现了被关注回复与关键词回复功能.在用户关注的时候自动推送功能菜单,并根据用户输入的关键词,回复特定信息.但是,我们只能回复文本消息给用户,如何才回复一条图文消息呢?本周,我们一起 ...

  9. php从气象局获取天气预报并保存到服务器

    思路:1.打开网页时读取中国气象网的接口得到每个城市的该日json:2.解析并保存到mysql:3.客户端访问mysql得到数据集. 所包含的技巧: 进度条.flush()问题.mysql.xml.p ...

  10. cuda编程学习2——add

    cudaMalloc()分配的指针有使用限制,设备指针的使用限制总结如下: 1.可以将其传递给在设备上执行的函数 2.可以在设备代码中使用其进行内存的读写操作 3.可以将其传递给在主机上执行的函数 4 ...