从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互联网产品的同学有帮助。
以上内容均来自微信公众号“架构师之路”胡剑老师的文章,欢迎关注。
从0开始做垂直O2O个性化推荐-以58到家美甲为例的更多相关文章
- 为什么要用深度学习来做个性化推荐 CTR 预估
欢迎大家前往腾讯云技术社区,获取更多腾讯海量技术实践干货哦~ 作者:苏博览 深度学习应该这一两年计算机圈子里最热的一个词了.基于深度学习,工程师们在图像,语音,NLP等领域都取得了令人振奋的进展.而深 ...
- CSDDN特约专稿:个性化推荐技术漫谈
本文引自http://i.cnblogs.com/EditPosts.aspx?opt=1 如果说过去的十年是搜索技术大行其道的十年,那么个性化推荐技术将成为未来十年中最重要的革新之一.目前几乎所有大 ...
- Python个人项目--豆瓣图书个性化推荐
项目名称: 豆瓣图书个性化推荐 需求简述:从给定的豆瓣用户名中,获取该用户所有豆瓣好友列表,从豆瓣好友中找出他们读过的且评分5星的图书,如果同一本书被不同的好友评5星,评分人数越多推荐度越高. 输入: ...
- TensorFlow实战——个性化推荐
原创文章,转载请注明出处: http://blog.csdn.net/chengcheng1394/article/details/78820529 请安装TensorFlow1.0,Python3. ...
- 搜索实时个性化模型——基于FTRL和个性化推荐的搜索排序优化
本文来自网易云社区 作者:穆学锋 简介:传统的搜索个性化做法是定义个性化的标签,将用户和商品通过个性化标签关联起来,在搜索时进行匹配.传统做法的用户特征基本是离线计算获得,不够实时:个性化标签虽然具有 ...
- 个性化推荐调优:重写spark推荐api
最近用spark的mlib模块中的协同过滤库做个性化推荐.spark里面用的是als算法,本质上是矩阵分解svd降维,把一个M*N的用户商品评分矩阵分解为M*K的userFeature(用户特征矩阵) ...
- python 对图片做垂直投影
Python 对图片做垂直投影 本文利用opencv对图片进行垂直投影,做出垂直投影图,大体思路:打开图片,灰度化,二值化,按列进行统计,新建一个大小和原图一样的图片,按列进行填充: cv2.cv.G ...
- 使用Python3.7配合协同过滤算法(base on user,基于人)构建一套简单的精准推荐系统(个性化推荐)
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_136 时至2020年,个性化推荐可谓风生水起,Youtube,Netflix,甚至于Pornhub,这些在互联网上叱咤风云的流媒体 ...
- 欲哭无泪的p-value = 0.051 | 做几次重复能得到较低的p-value
欲哭无泪的p-value = 0.051 | 做几次重复能得到较低的p-value 已有 1469 次阅读 2017-12-15 14:12 |个人分类:RNA-seq|系统分类:科普集锦|关键词:R ...
随机推荐
- 一起写框架-Ioc内核容器的实现-基础功能-ComponentScan支持组件注解限制(七)
实现功能 以上的代码我们发现.我们都是将@ComponentScan扫描的路径下的所有类都加载到容器中的. 而实际需求,我们并不希望所有的类都创建对象,而是加了组件注解@Controller,@Ser ...
- Nginx-动态路由升级版
前几篇文章我们介绍了Nginx的配置.OpenResty安装配置.基于Redis的动态路由以及Nginx的监控. Nginx-OpenResty安装配置 Nginx配置详解 Nginx技术研究系列1- ...
- seajs笔记
Amd和Cmd的区别有哪些? 1. 对于依赖的模块,AMD 是提前执行,CMD 是延迟执行.不过 RequireJS 从 2.0 开始,也改成可以延迟执行(根据写法不同,处理方式不同).CMD 推崇 ...
- 分享:苹果APP更新上架被拒的另一种理由(Safety - Objectionable Content)
这两个星期,本来想和大伙分享:写IT连创业系列运营篇. 但时间飞过,仍只是写了开头,一直很忙,没能完往下写. 今天就动手写点其它内容,哈哈,免的和小伙伴太陌生〜〜〜 前几天更新了:IT恋和IT连的版本 ...
- 设计模式的征途—11.外观(Facade)模式
在软件开发中,有时候为了完成一项较为复杂的功能,一个类需要和多个其他业务类交互,而这些需要交互的业务类经常会作为一个完整的整体出现,由于涉及的类比较多,导致使用时代码较为复杂,此时,特别需要一个类似服 ...
- 查看oracle数据库里哪些语句耗时最长或者效率最低
CPU: select * from (select v.sql_id, v.child_number, v.sql_text, v.elapsed_time, v.cpu_time, v.disk_ ...
- Natural Merge Sort(自然归并排序)
This is a Natural Merge Sort program from my textbook. It works, but I don't think it's good. // Nat ...
- 如何在 Centos7 中安装 nginx
1. 添加 nginx 的 yum 源(官网安装说明) vi /etc/yum.repos.d/nginx.repo 在该文件中添加如下内容: [nginx]name=nginx repobaseur ...
- AutoMapper在asp.netcore中的使用
# AutoMapper在asp.netcore中的使用 automapper 是.net 项目中针对模型之间转换映射的一个很好用的工具,不仅提高了开发的效率还使代码更加简洁,当然也是开源的,htt ...
- js实现关键词高亮显示 正则匹配
html 和ajax 部分就不写了,只需将需要匹配的文字传进去就可以了 比如匹配后台传回的字符串data.content中的关键词:直接调用: data.content = highLightKeyw ...