垂直个性化排序之Solr如何支持

标签: 未分类 | 发表时间:2012-10-15 08:43 | 作者:yingyuan
出处:http://rdc.taobao.com/team/jm


需求:


个性化得分排序:类似 Score=
defaultTextScore*facetA + offlineValue*(1-factorA)


方案:


目前直接支持的排序、全部候选方案。推荐1
和2.
参见样例!

1: sort by
(score,
offlinevalue*fa)   

这里offlinevalue*fa

中fa可要可不要

2: sort by
(score*fa +offlinevalue*fb)
这里score *fa

其中fa有很多理解,可要是document boost或者field boost 
或者payload,offline可以是域值

3: sort by
(score*offlinevalue*fa)   

这个场景本质上回到了 score*fa了,又回到了payload
或者document或者field boost了。

4: sort
by( score * payload |doc_boost | field_boost| term_boost|
queryboost)

需求背景:文本相关第一位的,在文本相关区分度不大的时候,需要将好的商品、或者服务信息优先排(这里仍然受限第一排序文本相关分限制,如果放弃第一维度,只有第二维度的离线分值,那么文本相关性可能非常糟糕,反应到用户就是关键词
不显眼,好的离线值一直占住排头,出现饥饿现象)

进一步扩展,例如topN 先不排序,然后按某种方式排序、实现去重的维度的结果。


分析

1
 最直接,也是推荐的方式。

3-4一回事,只是实现方式上不同:

2

看起来就显得稍微复杂了,其中fa的理解也有多重,


一种fa不是boost(documents\field\payload
),而是外部直接传入的。从数学公式角度看一码事。

Eg
tf*itf*payload = score  score*fa
=tf*itf*payload*fa,
合并fa8payload

就是一项信息了,


同理,offline*fb
 离线计算好就是offline’了,还是offline
了。这样2

简化为 score+offline了


从上分析来看,只有2种,要么1
,要么2,


对应2本质是
score+offlinevalue, 所谓的因子只是“逻辑理解”,对应实现来说“完全隐去了”


样例Score+offline

query.set(“defType”,“lucene”);

query.setQuery(“description:店铺
AND _val_:reord_gpa^0.7″);

query.setQuery(“description:店铺
AND
_val_:sum\\(reord_gpa,1\\)”);

query.setQuery(“(description:店铺)^0.3 AND
_val_:sum\\(reord_gpa,1\\)”);


至于: score

中的因子,如果固定0.8,然后所有文档都* 0.8,实际上就等于没起作用。这个0.8
可以payload或者doc或者field boost引入。


至于:
gpa中的因子,如果固定0.2,那么就直接在离线计算时算好


另外

在3.*
版本中

query.setQuery(“title:Aokang”);

      
query.add(“sort”,”sum(weight1,query({! dismax qf=title
v=’杭州‘}))
desc“);

      
query.addField(“title,score,weight1,weight2,query({! dismax
qf=title v=’杭州‘}))”);


这种新式,是针对局部query得分处理的


木有排序计算,直接返回topN,性能考虑

query.set(“sort”,”_docid_ asc”);


注解:BoostQParse,将boost值乘上默认得分上,而一般_val_是将得分add
到默认文本分上。
目前基于3.*
序列,尚不能直接对默认文本分进行引入到function中,在4.*可以引用默认得分的中间参数到function中。
目前3.* 可以将function值加上或者乘上默认文本分(dismax的pb),或者局部query得分作为function的参数

最基础的 payload、documentboost、 fieldboost 、tf、itf 仍然是最本质的因子。
其他的扩展仍然是围绕他们展开的。本质没有脱离向量模型。

相关 [垂直 个性 排序] 推荐:

垂直个性化排序之Solr如何支持

- - 淘宝网综合业务平台团队博客
个性化得分排序:类似 Score=. 目前直接支持的排序、全部候选方案. 这里offlinevalue*fa. 这里score *fa. 其中fa有很多理解,可要是document boost或者field boost . 或者payload,offline可以是域值. 这个场景本质上回到了 score*fa了,又回到了payload.

标签个性化数据在推荐排序中的应用

- -
个性化是这个时代最耀眼的特征,谁能更好更快的抓住用户的个性化需求,谁就将赢得商业的未来”——《个性化,商业的未来》. 本文share的这个项目,是我们在个性化推荐上的一个小小的尝试. 通过捕捉用户实时的标签快速捕捉用户兴趣变化,用机器学习算法挖掘用户兴趣与实际消费行为的联系,及时调整推荐排序,提高推荐效果.

垂直网站二次崛起

- redhobor - 《商业价值》杂志
得益于社交网络、电子商务和移动互联浪潮对互联网基础架构进行的升级,垂直网站从当初的细分领域信息提供者,变成线上与线下商务对接的最佳通道. 历史已经迎来了垂直网站再次崛起的时代. 当地时间7月23日,Facebook投资人、投资公司Elevation Partners合伙人罗杰·迈克奈米(Roger McNamee)在接受媒体采访时语出惊人:社交网络的机会已经“完结”.

垂直互联网的思考

- coofucoo - 月光博客
  电商平台型企业征战十年,争的是广度、用户、价格. 而征战的结果是大鱼挤兑小鱼,小鱼连挤兑虾米的资格都没有,因为互联网太透明,用户的变数性太大,平台与平台之间的同质化严重,差异化小,所以,笔者认为平台之争的结果实际上就是价格战之争,拼谁更有拿钱和烧钱的本事.   而对于垂直细分类品牌,笔者认为他是未来电子商务发展的热点、重点、盈利点.

再谈垂直和水平切分

- - 人月神话的BLOG
本篇为在应用集中化背景下,数据库集群本身的垂直和水平切分方法的点滴思考. 首先我们看应用的垂直切分,应用本身包括了两大类型的应用,一种是以核心数据为中心的应用,一种是以纯粹的流程工单为核心的应用. 前者如资产管理,主数据管理等相关应用;后者如运维工单管理,OA办公管理等应用. 对于工单型应用各种工单流程之间相互耦合性非常底,共享的基础数据也相当少,因此这类应用相当容易进行垂直切分,而且切分的也相当干净;而对于资产管理这类应用,.

堆排序

- kongshanzhanglao - 博客园-首页原创精华区
       堆排序是利用堆的性质进行的一种选择排序.   堆实际上是一棵完全二叉树,其任何一非叶节点满足性质:.   Key[i]<=key[2i+1]&&Key[i]<=key[2i+2]或者Key[i]>=Key[2i+1]&&key>=key[2i+2].   即任何一非叶节点的关键字不大于或者不小于其左右孩子节点的关键字.

排序算法

- - 互联网 - ITeye博客
排序算法有很多,所以在特定情景中使用哪一种算法很重要. 为了选择合适的算法,可以按照建议的顺序考虑以下标准: .     对于数据量较小的情形,(1)(2)差别不大,主要考虑(3);而对于数据量大的,(1)为首要.  一、冒泡(Bubble)排序——相邻交换 .  二、选择排序——每次最小/大排在相应的位置 .

lucene排序

- - 开源软件 - ITeye博客
排序是对于全文检索来言是一个必不可少的功能,在实际运用中,排序功能能在某些时候给我们带来很大的方便,比如在淘宝,京东等一些电商网站我们可能通过排序来快速找到价格最便宜的商品,或者通过排序来找到评论数最高或卖的最好的商品,再比如在Iteye里的博客栏里,每天都会以降序的方式,来显示出最新发出的几篇博客,有了排序,我们就能在某些时候很方便快速的得到某些有效信息,所以说排序功能,无处不在 ^_^.

【原】MapReduce的排序和二次排序

- - ITeye博客
自己学习排序和二次排序的知识整理如下. 1.Hadoop的序列化格式介绍:Writable. 2.Hadoop的key排序逻辑. 4.如何自定义自己的Writable类型. 1.Hadoop的序列化格式介绍:Writable. 要了解和编写MR实现排序必须要知道的第一个知识点就是Writable相关的接口和类,这些是HADOOP自己的序列化格式.