如意淘商品推荐技术介绍之一:基础推荐

2013-07-31 阿里技术嘉年华

       

 作者:亦飞   (一淘及搜索事业部-搜索技术-算法技术-文本搜索技术)


 如意淘商品推荐技术是由一淘搜索北京算法团队支持,去年8月份上线之初,PV点击率即高于数据平台部门(原技术支持方)的30%,经过半年左右的优化,PV点击率实现翻倍。


       在项目的实施过程中,我们有以下两点体会:

1. 明确问题,即对问题建立合适的模型,特殊问题特殊解决,生搬硬套一些经典算法未必能获得最优效果

2. 数据比算法重要,大数据时代,把数据分析好、处理好,获得的收益很可能高于算法调优的收益,与其调整数据去适应那些经典算法,不如针对特定的数据设计特定的算法


       对如意淘商品推荐技术的介绍,将分为2个部分:

1. 如意淘商品的基础推荐技术:对问题的建模与算法设计

2. 如意淘商品的高级推荐技术:Re-ranking、商品聚类与点击反馈

       本文将介绍第1部分的工作,即如意淘商品的基础推荐技术。


一、问题描述

如意淘商品推荐的应用场景是:用户进入到淘宝商品详情页之后,如意淘插件会在页面左下方展现6个推荐商品,产品希望获得更多的用户主动点击。根据该应用场景,可以将问题描述为:

设用户正在浏览的商品为ItemA,需要找到ItemB,使得条件点击概率P(ItemB|ItemA)最大化


二、问题建模

       根据条件概率的计算,可以得到:

P(ItemB|ItemA) = P(ItemA, ItemB)/P(ItemA)

分子与分母的含义如下:

分子:P(ItemA,ItemB)是点击了ItemA后又点击ItemB的概率

分母:P(ItemA)点击ItemA的概率


       根据用户的搜索点击日志,分子和分母的概率值都可以估计出来,这里我们选择UV来进行估计(使用UV进行估计,可以比PV更有效地回避用户作弊问题),那么分子与分母的计算方式如下:

计算分子:P(ItemA,ItemB) = UV(ItemA,ItemB)/UV(All),其中UV(All)表示所有浏览商品详情页的用户数,UV(ItemA,ItemB)表示访问了ItemA后又访问ItemB的UV数,根据淘宝的搜索点击日志数据,可分为以下2种情况进行统计:

       Case1:用户在ItemA的页面点击了ItemB,即店铺内的商品点击

       Case2:用户搜索了一个query,在搜索结果页点击了ItemA后又点击了ItemB

计算分母:P(ItemA) = UV(ItemA)/UV(All),很直观,不需解释


       通过上面的分析,可以得到下面的计算模型:

P(ItemB|ItemA) = UV(Case1 or Case2)/UV(ItemA),UV(All)无需计算


       使用这个计算模型,我们就从淘宝的搜索点击日志中找出需要的ItemB,但该方法并不能覆盖所有的商品,即存在一些UV很低的商品,无法找到6个关联的商品。针对这种情况,我们采用搜索的方式进行推荐,即P(ItemB|ItemA) = P(ItemB|Term1,Term2,…,TermN),可分解为2个问题:

1. 将ItemA转化为一组查询词Term1, Term2, …, TermN,即对ItemA的标题进行分词,根据分词属性进行关键词提取

2. 以查询词为Query访问淘宝主搜索引擎,将返回结果作为推荐商品


有了这个方法,可基本覆盖所有的商品。


三、算法设计与实现

计算UV(Case1 or Case2)/UV(ItemA)

使用45天用户搜索点击日志,在Hadoop上进行计算,每天线下生成一份Key/Value字典,可覆盖每天PV的60+%,不再赘述。


计算P(ItemB|Term1,Term2,…,TermN)


关键词提取算法:

       考虑AliWS的分词属性:产品词与品牌词

       考虑Term的长度特征与doc数特征

       考虑商品的性别特征:即女性商品不出男性商品

搜索请求串的设计:

       查询词:使用关键词

       类目限制:使用ItemA的商品类目


       本文介绍的商品推荐技术,就是在如意淘商品推荐刚上线时采用的,2个人1周时间完成开发,PV点击率在上线当天即高于数据平台部门的30%,实现简单、有效、快速的解决问题。


微信名称:阿里技术嘉年华

微信号:alibabatech

简介:面向互联网行业全体工程师的技术交流盛会,分享实战技术,拜各路大神,听业界干货,享年度码农聚会!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值