zoukankan      html  css  js  c++  java
  • 从0开始做互联网推荐-以58转转为例

    从0开始做互联网推荐【产品+算法+实现】

    一、58转转简介

    58旗下真实个人闲置物品交易平台

    二、从0开始设计推荐产品框架

    (1)首页推荐:提取用户画像,根据线下提取出的用户年龄、性别、品类偏好等在首页综合推荐宝贝

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

    (3)附近推荐:和首页推荐的差异在于,提高了地理位置的权重,地理位置不仅要包含当前地理位置,还需要包含常见活跃区域,例如家里、公司等

    (4)搜索推荐:除了关键词全匹配,要考虑同义词、近义词、易错词、拼音等推荐,产品层面,提示“你是不是想找xxoo宝贝”

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

    TIPS:什么是RFM模型?

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

    三、从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)针对每一个用户,根据模型给出其喜好宝贝列表

    在做协调过滤推荐时需要注意,较新的宝贝,由于大部分人都没有相关喜好数据,所以使用协同过滤推荐时,新宝贝比较难被推荐上去,这是协同过滤的缺点,需要综合其他推荐策略来解决。

     以上内容均来自微信公众号“架构师之路”胡剑老师的文章,欢迎关注。

    非常感谢您的耐心观看,您的关注是我最大的动力! 不积跬步无以至千里,不积小流无以成江海!
  • 相关阅读:
    zlib 用了很多次,这次记下来
    boost 1.53 比1.52 ASIO bug 修正
    64位汇编
    js C++
    这个split 不错 我喜欢的
    布6月26日至28日将在旧金山召开2013年Build大会
    asio同步模式和异步模式
    vc6 编译boost
    windows 编译mongodb 2.4
    ajaxToolKit中 的折叠面板用法Accordion
  • 原文地址:https://www.cnblogs.com/sheldon-blog/p/8109879.html
Copyright © 2011-2022 走看看