从0开始作互联网推荐【产品+算法+实现】算法
1、58转转简介微信
58旗下真实我的闲置物品交易平台架构
2、从0开始设计推荐产品框架框架
(1)首页推荐:提取用户画像,根据线下提取出的用户年龄、性别、品类偏好等在首页综合推荐宝贝ui
(2)宝贝详情页推荐:买了还买,看了还看类的关联宝贝推荐设计
(3)附近推荐:和首页推荐的差别在于,提升了地理位置的权重,地理位置不只要包含当前地理位置,还须要包含常见活跃区域,例如家里、公司等日志
(4)搜索推荐:除了关键词全匹配,要考虑同义词、近义词、易错词、拼音等推荐,产品层面,提示“你是否是想找xxoo宝贝”排序
(5)召回推荐:在用户退出系统后,经过RFM模型作优惠券推送或者消息推送作客户挽留与召回数学
TIPS:什么是RFM模型?产品
RFM模型:根据用户最近一次购买时间Recency,最近一段时间的购买频度Frequency,最近一段时间的购买金额Monetary,加权获得的一个表明用户成交意愿的一个分值。
3、从0开始进行推荐策略实现
【用户画像】
根据用户填写的资料、用户历史行为(购买、收藏、喜欢、分享、评论、浏览等行为)、微信背后的用户画像,获得用户的特性画像:
年龄段 -> 推荐母婴、3C用品?
性别 -> 推荐母婴、美容保健用品?
手机型号 -> 推荐手机
活跃时间 -> 在这个时间段推送消息
品类偏好 -> 相关品类推荐
地域 -> 附近推荐
…
【如何构建画像】
(1)读取用户安装的应用程序列表构建画像
装有滴滴用户端 -> 没有车
装有滴滴司机端 -> 有车
装有CSDN -> 男性
装有美柚、美颜APP -> 女性
…
(2)用户行为日志
启动日志 -> 获取活跃时段
经纬度 -> 获取活跃地域
购买、收藏、喜欢、分享、评论、浏览-> 获取品类偏好
第三方数据 -> 完善用户画像
【宝贝画像】
58转转的宝贝都是非结构化的数据,比较难作统一的宝贝画像,只能细分品类的作宝贝画像,例如手机画像等。
【如何构建宝贝画像】
对于58转转来讲,要作宝贝画像必须细分类别,能够分词词频统计配合人工review的方式画像,以鞋为例,画像可能为
单鞋
纯牛皮
尺码
适合春秋穿
女鞋
价格及变更
包邮
【标签化与个性化推荐】
画像完成以后,如何对用户进行宝贝推荐呢?
(1)给用户和宝贝画像完毕以后,要将每个用户和每个宝贝打上标签TAG
(2)统计用户uid全部购买、收藏、喜欢、分享、评论、浏览的全部宝贝ID集合set<bb-id>
(3)统计这些宝贝ID全部对应的TAG,使用加权打分的方式,能够根据频次统计出对各TAG的喜爱程度
(4)对于全部宝贝,根据uid对各TAG的喜爱程度,使用加权打分的方式,能够统计出对各宝贝的喜爱程度
(5)排除已经购买、收藏、喜欢、分享、评论、浏览过的宝贝,其余宝贝按照打分高低推荐便可
(6)搜索推荐须要加上“搜索条件”,附件推荐须要增强“附近权重”
须要注意的是,个性化推荐的准确性,必定程度上依赖于历史行为数据的收集,对于新用户,在缺少历史行为积累时,能够推荐“热度最高”的宝贝,将来再根据其历史行为,不断加强推荐的准确率。
【分类预测推荐】
一个用户对一个宝贝是否进行购买,能够抽象成一个0和1的分类问题,也能够抽象成一个购买几率的数学问题,能够构造分类模型来计算用户对每一个宝贝的购买几率,将几率最高的做为推荐的宝贝。
为了实现分类预测推荐,须要:
(1)准备训练数据集,包含用户、宝贝、用户是否购买了宝贝等历史数据,须要注意的是,数据集应当覆盖尽量多的用户(要包含全部TAG)和宝贝(要包含全部分类及TAG)
(2)构造训练分类模型
(3)根据模型训练的结果,计算每个用户对每个宝贝某买的几率
(4)按照几率排序,对宝贝进行推荐
【协同过滤推荐】
协同过滤,用过的人都知道,不必定效果最好,但几乎适用于全部的业务场景:当向用户A作协同过滤推荐时,能够先找到和他兴趣类似的用户群体G,而后把G喜欢的、而且A没有点击过的宝贝推荐给A,这就是基于用户的协同过滤。
为了实现系统过滤推荐,须要:
(1)准备训练数据集,根据每一个用户对每一个宝贝的喜爱,构建喜爱矩阵(这是一个很是稀疏的矩阵),根据用户对宝贝购买、收藏、喜欢、分享、评论、浏览的行为量化这个喜爱
(2)构造系统过滤训练模型
(3)针对每个用户,根据模型给出其喜爱宝贝列表
在作协调过滤推荐时须要注意,较新的宝贝,因为大部分人都没有相关喜爱数据,因此使用协同过滤推荐时,新宝贝比较难被推荐上去,这是协同过滤的缺点,须要综合其余推荐策略来解决。
以上内容均来自微信公众号“架构师之路”胡剑老师的文章,欢迎关注。