codecamp

从0开始做垂直O2O个性化推荐-以58到家美甲为例

从0开始做垂直O2O个性化推荐

上次以58转转为例,介绍了如何从0开始如何做互联网推荐产品,58转转的宝贝为闲置物品,品类多种多样,要做统一的宝贝画像比较难,而分类别做宝贝画像成本又非常高,所以更多的是进行用户画像、分类预测推荐、协同过滤推荐等个性化推荐。

有些同学反馈,他们的产品是垂直类的O2O产品,分类单一,可以简单的实现宝贝画像,这类垂直O2O产品怎么从零开始做个性化推荐呢?这是本文要讨论的问题


一、58到家美甲简介

58到家有三大自营业务“家政”“美甲”和“速运” ,美甲能够实现“足不出户,享品质服务,做美丽女人”,目前提供上门美甲、修复与卸甲、美睫、化妆等服务。

http://bj.daojia.com/liren/


二、从0开始设计垂直O2O推荐框架

(1)列表页推荐:用户既然进入到了美甲,成交意愿是非常强烈的,首页的推荐至关重要

(2)宝贝详情页推荐:买了还买,看了还看类的关联宝贝推荐

(3)下单成功页推荐:既然下单了某个甲样,可能会喜欢相近的甲样哟

(4)召回推荐:在用户退出系统后,通过RFM模型做优惠券推送或者消息推送做客户挽留与召回

RFM模型:根据用户最近一次购买时间Recency,最近一段时间的购买频率Frequency,最近一段时间的购买金额Monetary,加权得到的一个代表用户成交意愿的一个分值。


三、甲样列表页推荐详细流程

(1)用户点击进入甲样列表页

(2)画像用户的消费能力

(3)抽取购买、收藏、喜欢、浏览的历史数据

(4)根据历史数据,对所有甲样进行打分,综合一些产品策略,推荐出首屏的4个甲样,例如: 

甲样

(5)如果用户下单,以被下单的相似甲样做推荐

(6)如果用户跳出,可以根据信用评级、消费等级做优惠券召回推荐


四、与业务紧密结合的策略规则

推荐系统并不是一个单纯的算法问题,而是一个与产品、工程架构都相关的综合性问题,不同的业务会有不同的产品策略,这些是在做推荐时需要考虑的,以美甲为例,需要考虑:

(1)排序前2名要推荐最符合用户消费能力的甲样(例如“价格小于150”)

(2)被推荐的4个甲样要覆盖尽可能多的消费区间(例如“两个甲样价格小于150,两个甲样价格大于150”)

(3)被推荐的4个甲样要覆盖最火的产品、旧产品、新产品(例如“1个爆品,2个旧加油,1个新甲样”)

(4)垂直相邻的甲样,颜色不同(为了视觉体验)

(5)水平相邻的甲样,颜色不同(原因同上)

(6)垂直相邻的甲样,款式不同(为了视觉体验,以及产品覆盖度、受众度)

(7)水平相邻的甲样,款式不同(原因同上)

(8)…


五、如何利用甲样画像与用户购买、收藏、喜欢、浏览的历史数据对所有甲样进行打分?

【宝贝画像】

垂直O2O的相对比较容易做宝贝画像,宝贝品类比较单一(甲样),宝贝的品种也比较少(几千几万种甲样),熟悉业务的人可以对宝贝进行画像(不需要复杂的机器学习方法),以甲样为例,可以抽象出:

款式

颜色

风格

场景

图案

其他

等多个核心属性


【核心属性赋值,标签化】

宝贝画像完毕之后,对于每一个核心属性,可以进行赋值,实施标签化

款式:纯色,法式,渐变,彩绘,贴饰

颜色:红色,粉色,蓝色,白色

风格:简约,甜美,复古,可爱

场景:派对,旅行,约会,晚宴,夜店

图案:卡通,小碎花,动物,桃心,五角星


【抽取用户历史行为】

抽取购买、收藏、喜欢、浏览的历史行为数据,得到一些甲样ID集合set<bb-id>


【查询所有历史行为甲样ID的画像属性,对标签进行频率统计】

用户U历史行为某买了甲样1:bb-id1,收藏了甲样2:bb-id2

从库中查询出所有甲样的详细属性

bb-id1:彩绘,红色,可爱,夜店,桃心

bb-id2:彩绘,粉色,可爱,夜店,桃心

对标签进行统计

款式:{彩绘:2}

颜色:{红色:1,粉色:1}

风格:{可爱:2}

场景:{夜店:2}

图案:{桃心:2}


【根据标签统计,量化对标签的喜爱程度】

例如,标签量化打分公式可以为:score=同类标签出现频率

那么,对于“款式”这个属性,依据上述统计,各标签的打分是:

纯色=0分,法式=0分,渐变=0分,彩绘=1分,晕染=0分,贴饰=0分(假设只有5种款式)

同理,对于“颜色”这个属性,依据上述统计,各标签的打分是:

红色=0.5分,粉色=0.5分,蓝色=0分,白色=0分(假设只有4种颜色)

这个打分是一个简单举例,实际上的打分公式会复杂很多(例如购买与收藏贡献的分值不一样)


【根据上述量化标签,量化用户对每个甲样的喜爱程度】

例如,对于一个甲样X{纯色,红色,简约,夜店,卡通},可以计算出用户对它的喜爱分值为

socre-X = 0(纯色) + 0.5(红色) + 0(简约) + 1(夜店) + 0(卡通) = 1.5分

这个打分是一个简单举例,实际上打分公式会复杂很多(例如各个属性的权重是不一样的)


【对所有甲样计算分值,排序】

【从高到底进行甲样推荐】

推荐的过程中注意,4款甲样要符合第四个大步骤中提到的产品策略(要覆盖各个价格范围,相邻颜色与样式不同等)


【个性化推荐完成】

好了,暂时先到这里,上面的思路绝对是能落地的,希望58到家美甲的推荐,对其他刚开始做垂直O2O互联网产品的同学有帮助。

注:本文是58到家推荐负责人@王洪权 做58到家美甲推荐技术交流时,@58沈剑 做的纪要,内容“略”有修改。


从0开始做互联网推荐-以58转转为例
58到家入驻微信钱包的技术优化
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }