
今天给大家分享京东的一篇CTR预估的论文,用于建模页面上下文(用户感知到的其他展示的item)对于目标item是否点击的影响。但是在精排阶段,往往采用point-wise预估的方式,准确的上下文信息是难以获取的,因此往往需要一个模拟的过程。接下来,我们一起看下本文提出的方法是怎么实现的吧。
在搜索广告场景,所有的候选item往往都与用户的搜索关键词相关,而在用户的决策过程中,对于某个目标的item,用户往往会将其与其他的感知到的item进行比较。如果一个item相较于其他的item有突出的亮点,如更经济实惠,那么往往更能吸引用户的注意力,从而点击率更高。相比之下,如果一个item没有太多特色,往往很难吸引用户的注意力,则不容易被点击。

但是在精排阶段,往往采用point-wise的预估方式,用户感知到的上下文item信息是无法获取到的,需要采取一些方式进行模拟。为了解决这一问题,本文提出了CIM (Candidate Item Modeling)框架,包含Select、CIE和backbone三个模块,一起来看一下CIM框架的具体内容。

可以看到,CIM主要包含三个模块,分别是Select、CIE和backbone。其中,Select模块用于建模所有候选item的曝光概率,CIE模块建模用户感知到的其他候选items与当前目标item的影响,Backbone模块可以引入当前最先进的CTR预估框架,来对点击率做出合理的预估。接下来,对这三个模块进行分别的介绍。
Select模块用于建模粗排阶段保留的所有候选item的曝光概率,可以算作是一种对上下文item信息的模拟。Select可以是一个简单的多层全连接神经网络,得到候选集中每一个候选item的曝光概率。Select模块对于一个请求来说,需要在精排预估前进行提前预估。

为了使得预估更准确,论文也是引入了曝光的辅助损失(曝光label为1,未曝光label为0),会在后续进行介绍。
CIE模块式CIM框架的核心部分,针对每一个候选item,将用户感知的所有item建模为一个上下文向量:

CIE模块采用了Transformer的架构,在输入Encoder前,会将每个候选item的embedding乘上其在select模块得到的曝光概率。而在Decoder阶段,使用target-attention建模用户感知到的其他item对于当前目标item的影响,与目标item相关性更高的item会有更高的权重,并加权得到上下文向量。
backbone是点击率预估模块,可以引入当前最先进的点击率预估框架,其输入包括用户特征,搜索query特征,目标item特征以及CIE模块得到的上下文向量。

论文的损失函数包含两部分,一方面是点击率损失,另一方面是Select模块的曝光概率预估损失:

两部分均采用logloss的形式。
最后来看一下实验部分,论文将CIM应用在了不同的点击率预估模型中,其中下表中CI代表不使用Select模块,SM表示完整的CIM,可以看到,完整的CIM在应用在不同的点击率预估模型上,均取得了相应的效果的提升:

好了,论文就介绍到这里了,论文的出发点还是比较合理的,其做法也具有有一定的借鉴意义。
我使用Nokogiri(Rubygem)css搜索寻找某些在我的html里面。看起来Nokogiri的css搜索不喜欢正则表达式。我想切换到Nokogiri的xpath搜索,因为这似乎支持搜索字符串中的正则表达式。如何在xpath搜索中实现下面提到的(伪)css搜索?require'rubygems'require'nokogiri'value=Nokogiri::HTML.parse(ABBlaCD3"HTML_END#my_blockisgivenmy_bl="1"#my_eqcorrespondstothisregexmy_eq="\/[0-9]+\/"#FIXMEThefoll
我想为我的Rails网络应用程序提供推荐功能。特别是,我想向新注册的用户推荐他可能想要关注的其他用户。Rails中是否有用于此目的的引擎/gem?如果没有,我应该从哪里开始构建它?谢谢。 最佳答案 有Coletivogemhttps://github.com/diogenes/coletivo我试了一下。在MySQL上运行。Neo4jhttp://neo4j.org真的很容易实现一个“跟随谁”。事实上,大多数展示其能力的样本都涉及“跟随谁”。快速提示-只有在JRuby上运行时,Neo4j.rb才会很酷。如果不是-使用Neograph
目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称
最近在学习CAN,记录一下,也供大家参考交流。推荐几个我觉得很好的CAN学习,本文也是在看了他们的好文之后做的笔记首先是瑞萨的CAN入门,真的通透;秀!靠这篇我竟然2天理解了CAN协议!实战STM32F4CAN!原文链接:https://blog.csdn.net/XiaoXiaoPengBo/article/details/116206252CAN详解(小白教程)原文链接:https://blog.csdn.net/xwwwj/article/details/105372234一篇易懂的CAN通讯协议指南1一篇易懂的CAN通讯协议指南1-知乎(zhihu.com)视频推荐CAN总线个人知识总
深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal
您将如何构建一个简单的Sinatra应用程序?我正在制作,我希望该应用具有以下功能:“应用程序”更像是一个包含所有信息的管理仪表板。然后另一个应用程序将通过REST访问信息。我还没有创建仪表板,只是从数据库中获取东西session和身份验证(尚未实现)您可以上传图片,其他应用可以显示这些图片我已经使用RSpec创建了一个测试文件通过Prawn生成报告目前的设置是这样的:app.rbtest_app.rb因为我实际上只有应用程序和测试文件。到目前为止,我已经将Datamapper用于ORM,将SQLite用于数据库。这是我的第一个Ruby/Sinatra项目,所以欢迎任何和所有建议-我应
寻找有用的ruby的好网站是什么? 最佳答案 AgileWebDevelopment列出插件(虽然不是rubygems,我不确定为什么),并允许人们对它们进行评级。RubyToolbox按类别列出gem并比较它们的受欢迎程度。Rubygems有一个搜索框。StackOverflow对最有用的rails插件和rubygems有疑问。 关于ruby-如何搜索有用的ruby,我们在StackOverflow上找到一个类似的问题: https://stacko
我完全不是程序员,正在学习使用Ruby和Rails框架进行编程。我目前正在使用Ruby1.8.7和Rails3.0.3,但我想知道我是否应该升级到Ruby1.9,因为我真的没有任何升级的“遗留”成本。缺点是什么?我是否会遇到与普通gem的兼容性问题,或者甚至其他我不太了解甚至无法预料的问题? 最佳答案 你应该升级。不要坚持从1.8.7开始。如果您发现不支持1.9.2的gem,请避免使用它们(因为它们很可能不被维护)。如果您对gem是否兼容1.9.2有任何疑问,您可以在以下位置查看:http://www.railsplugins.or
我有很多这样的文档:foo_1foo_2foo_3bar_1foo_4...我想通过获取foo_[X]的所有实例并将它们中的每一个替换为foo_[X+1]来转换它们。在这个例子中:foo_2foo_3foo_4bar_1foo_5...我可以用gsub和一个block来做到这一点吗?如果不是,最干净的方法是什么?我真的在寻找一个优雅的解决方案,因为我总是可以暴力破解它,但我觉得有一些正则表达式技巧值得学习。 最佳答案 我(完全)不懂Ruby,但类似这样的东西应该可以工作:"foo_1foo_2".gsub(/(foo_)(\d+)/
我读了"BingSearchAPI-QuickStart"但我不知道如何在Ruby中发出这个http请求(Weary)如何在Ruby中翻译“Stream_context_create()”?这是什么意思?"BingSearchAPI-QuickStart"我想使用RubySDK,但我发现那些已被弃用前(Rbing)https://github.com/mikedemers/rbing您知道Bing搜索API的最新包装器(仅限Web的结果)吗? 最佳答案 好吧,经过一个小时的挫折,我想出了一个办法来做到这一点。这段代码很糟糕,因为它是