BLOG

个人博客,记录学习与生活

推荐系统概念

Published Oct. 20, 2020, 10 p.m. by kkk

概念

什么是推荐系统?

  1. (对于用户)是一种帮助用户快速发现有用信息(商品、资讯等)的工具
  2. (对于公司)是一种增加公司产品和用户接触程度、能提高购买率的工具

是一种工具。作用于公司、产品与用户之间

产品类型

业务

  1. 内容分发:像头条、抖音、腾讯新闻
  2. 猜你喜欢:如电商平台的首页内容
  3. 电商推荐:淘宝、京东、苏宁等各大电商平台

形态

  1. Feeds流推荐
  2. 社交推荐

从业者发展路线

  1. 构建推荐模型
  2. 利用策略反哺
  3. 模型提高上限
  4. 深耕业务
  5. 推荐领域专家

工作内容

优化指标

宏观

  • DAU:每日活跃用户数量
  • 用户留存:用户在某时间段开始使用产品,经过一段时间后继续使用产品

具体

  1. 评分预测:对用户历史物品评分记录进行建模,得到用户兴趣模型,通过该模型预测用户未接触过的商品。量化指标有均方根误差(RMSE,预测和实际结果的平均二次方根误差)和平均绝对误差(MAE,预测和实际结果的平均绝对值误差)。
  2. TopN推荐:简而言之就是给用户推荐一个具有$N$(预定义的某个固定值)个商品的列表(非集合,是具有排序顺序的)。量化指标通常为精确率(Precision,推荐商品列表中是用户真正所感兴趣的商品所占的比例)和召回率(Recall,推荐商品列表中用户真正感兴趣的商品所占用户所有感兴趣商品的比例)。
  3. 覆盖率:描述对物品中长尾效应部分的发掘能力。可以研究物品在物品推荐列表中出现的次数分布来描述。如果这个分布平缓说明推荐系统覆盖率比较高,如果比较陡说明覆盖率比较·比较低。可以分别用信息熵($H=-\sum_{i=1}^np(i)logp(i)$)和基尼系数($G=\frac{1}{n-1}\sum^n_{j=1}(2j-n-1)p(i_j)$)来量化。
  4. 多样化:人的兴趣爱好通常是比较广泛的,所以一个好的推荐系统得到的推荐列表中应该尽可能多的包含用户的兴趣。通过不同的相似性函数可以衡量列表中商品的相似性。如果函数$s(i,j)$是物品$i,j$间的相似性,$R(u)$为推荐商品列表,那么对单个推荐列表的多样性可以定义为:$Diversity(R(u))=1-\frac{\sum_{i,j\in R(u)}s(i,j)}{\frac{1}{2}\vert R(u)\vert(vert R(u)\vert -1)}$。系统整体的多样性可定义为所有推荐列表多样性的期望值:$Diversity=\frac{1}{U}\sum_{u\in U}Diversity(R(u))$。
  5. AUC曲线。

召回

召回层是推荐系统中一部分,推荐系统的核心算法层是召回层排序层。召回层负责从数据库海量候选集中选出一定数量的数据(这个行为叫做召回)。找回层通常会采用多路召回策略,多路召回指的是采用不同的策略、特征或模型,才生多组召回的候选集(通常代表着不同方面、考虑的推荐),最终得到的候选集按某种规则进行权重排序、去重等等。召回过程分为离线和实时召回两种,通常Embedding召回是常用的一大召回方式,综合性强且计算速度满足需求。

离线召回

  • 协同
  • FM
  • DSSM

实时召回

  • 实时画像
  • 实时收益计算
  • 后验排序调整

Embedding召回

通过把实体表示转化为在某一个低维(相较于实体规模)空间的向量表示,然后通过计算两向量间的相似性得到两实体的相似性。

分类:

  • Text Embedding。使用最为广泛,应用于文本特征,常用技术为了静态向量和动态向量,静态向量技术有word2vec, fasttext, glove;动态向量技术有ELMO, GPT, BERT。
  • Image Embedding。针对有图片或视频的特征,大多是通过卷积模块和各种连接技巧搭建的深度学习模型,可以利用预训练模型提取图形或视频特征,来用召回。
  • Graph Embedding。基于用户、商品间存在的复杂图(或网络)结构关系,有诸如Deep Walk, Node2vec, LINE, EGES等方法。

项目部署

待补充

数据存储

  • 关系型数据库:MySQL、Oracle
  • 非关系型数据库:MongoDB、Redis、Memcached、Hbase
  • 数据仓库:Hive、Hbase、HDFS

Share this post
< Pre: 读论文9月第四周 Pos: 协同过滤(Collaborative Filtering) >
No comments
Similar posts
Add a new comment