推荐系统主要依赖于算法,是将大数据进行分析后得到一个想要结果,进行评分推荐,其实和搜索系统有异曲同工之妙。

offline

线下推荐子系统又主要分为线下挖掘模块、数据管理工具两大部分。

挖掘模块

线下挖掘模块,是各类线下挖掘算法实施的核心,它读取各种数据源,运用各种算法实施线下数据挖掘,产出初步的挖掘结果,并将挖掘结果以一定格式保存下来。典型的,实施这些挖掘策略的是一些跑在hadoop平台上的job,并行实施策略,并将挖掘结果保存到hadoop上。

数据管理

数据管理工具,即DataMgrTools,它是一个工具(或者服务),它能够接受一些管理命令,读取某些特定格式的线下数据,将这些数据实时或者周期性的打到线上的redis或者内存中,供线上服务读取。

定义好线下数据格式,线上数据格式,通过上下游API做数据的迁移和转换。

数据管理工具是一个与业务无关的通用工具,它需要支持多种特定格式数据的上传,因为线下挖掘模块产出的数据可能存储在文件里,HDFS上,数据库里,甚至是特定二进制数据。

online

线上推荐子系统主要分为展示服务、分流服务、推荐内核、策略module服务等几个部分。

  • 展示服务,或者说是接入服务,它是整个推荐系统线上部分的入口,即整个推荐系统的接入层,它向上游提供接口,供上游业务方调用。
  • 分流服务,它是推荐系统中一个非常有特色也非常重要的一个服务,它的作用是将上游过来的请求,按照不同的策略,以不同的比例,分流到不同的推荐算法实验平台(也就是下游的推荐内核)中去。
  • 推荐内核,是各类线上推荐算法实施的核心,它其实只是一个通用的实验平台容器,每个推荐服务内部可能跑的是不同类型的推荐算法。

    虽然推荐服务中跑着不同的推荐算法,但每个算法的实施步骤都是相同的,都需要经过:
    
    (1)预处理;
    (2)预分析;
    (3)去重过滤;
    (4)排序;
    (5)推荐解释;
    
    等五个步骤,每个步骤都可能存在多种不同的算法,不同的模型,各个步骤中的一种算法组合起来,完成一个完整的流程,构成一个“推荐算法实验平台”。
    
  • 策略服务,又叫策略module服务,它实现了一个个推荐内核下游的推荐module。在推荐内核执行各个推荐步骤时,每个步骤中都可能存在不同的算法/策略,这些算法/和策略可能需要调用一些和策略绑定比较紧密的module服务,它们并不是通用服务,而是相对专有的服务。

总结

其实就是收集数据,数据处理,过滤,打分,推荐。

推荐系统

  • 首页推荐:提取用户画像,根据线下提取出的用户年龄、性别、品类偏好等在首页综合推荐宝贝
  • 宝贝详情页推荐:买了还买,看了还看类的关联宝贝推荐
  • 附近推荐:和首页推荐的差异在于,提高了地理位置的权重,地理位置不仅要包含当前地理位置,还需要包含常见活跃区域,例如家里、公司等
  • 搜索推荐:除了关键词全匹配,要考虑同义词、近义词、易错词、拼音等推荐,产品层面,提示“你是不是想找xxoo宝贝”
  • 召回推荐:在用户退出系统后,通过RFM模型做优惠券推送或者消息推送做客户挽留与召回
  • 列表页推荐:用户既然进入到了美甲,成交意愿是非常强烈的,首页的推荐至关重要
  • 宝贝详情页推荐:买了还买,看了还看类的关联宝贝推荐
  • 下单成功页推荐:既然下单了某个甲样,可能会喜欢相近的甲样哟