搜索引擎的点击日志提供了很多有价值的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. 令人眼前一亮的下拉式终端 Tilda & Guake

    前言 老夫是 Linux 的老用户. 大一的时候某不方便透露姓名的校内组织给了一个 Fedora 13 的安装光盘,然后老夫学会了重装 Windows. 大二的时候知道了 Ubuntu ,开始在虚拟机 ...

  2. Oracle Developer Data Modeler项目实践 (转)

    http://www.Oracle.com/webfolder/technetwork/tutorials/obe/db/sqldevdm/r30/datamodel2moddm/datamodel2 ...

  3. MySQL中的完整性约束条件(主键、外键、唯一、非空)

    数据库的完整性约束用来防止对数据的意外破坏,来保证数据的安全性和一致性. 主键 1.创建表时候指定主键 创建表user(id, username, age),并且id字段非空自增. CREATE TA ...

  4. ThreadLocal笔记

    1.ThreadLocal的作用是什么?        ThreadLocal是一个泛型类,将保存在其中的值与当前的线程关联起来,这样每个线程看到的值对于其他线程来说都是不可见的,这个技术被称为线程封 ...

  5. html 框架 2017-03-11

    1. 框架frameset   (不在body中编写) Eg: 显示如下框架 第一步: <frameset rows="100,100,*" frmameborder=&qu ...

  6. mybatis基础,mybatis核心配置文件properties元素

    peroperties元素 可外部配置且可动态替换的,既可以在典型的 Java 属性文件中配置,亦可通过 properties 元素的子元素来传递 为dataSource元素配置 <proper ...

  7. java-信息安全(二)-对称加密算法DES,3DES,AES,Blowfish,RC2,RC4

    概述 信息安全基本概念: DES(Data Encryption Standard,数据加密标准) 3DES(Triple DES,三重数据加密算法(TDEA,Triple Data Encrypti ...

  8. 1711: [Usaco2007 Open]Dingin吃饭

    1711: [Usaco2007 Open]Dingin吃饭 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 560  Solved: 290[Submit ...

  9. 百度地图API-覆盖物

    这两天一直在研究百度地图开放平台的各种好玩的东西,闲暇之余自己动手体验了一番,果然是妙趣横生,而且还可以自定义理想中的地图,不得不说,百度地图的开放平台为我们的应用提供了很多的便利,之前我们已经学习了 ...

  10. 关于VS2013的编码的UI测试。

    1.  打开VS2013,选择文件→新建→项目 2.  弹出的选项左侧选择visual C#中的测试,中间选择框选择编码的UI测试项目,确定后就产生的测试项目. 3.  弹出框选择默认的录制操作巴拉巴 ...