知乎和抖音为什么那么让人上瘾?推荐系统工作原理初探

推荐系统简介

推荐系统(Recommender system)是帮助用户**发现内容**,克服信息过载**的重要工具。它通过**分析**用户行为,对用户兴趣**建模,从而**预测**用户的兴趣并给用户做**推荐**。

一位研究互联网对社会和经济影响的美国作家Clay Shirky (克莱·舍基)曾说过一句话:“人类面临的问题并非信息泛滥,而是信息过滤失效”。淘宝、亚马逊、网易云音乐、Instagram和各大视频网站等都利用推荐系统给用户推荐他们可能感兴趣的各种产品——书籍、电影、音乐、电子产品等。于用户而言,推荐系统犹如“智能”过滤器,帮助他们快速找到心仪之物。于企业而言,推荐系统以内容为驱动,为企业创收。

推荐系统分类

根据其是否为不同的用户推荐不同的数据

  1. 基于大众行为(网站管理员自行推荐,或者基于系统所有用户的反馈统计计算出的当下比较流行的物品)
  2. 个性化推荐引擎(帮你找志同道合,趣味相投的朋友,然后在此基础上实行推荐)

根据其数据源

  1. 基于人口统计学的(用户年龄或性别相同判定为相似用户)
  2. 基于内容的(物品具有相同关键词和Tag,没有考虑人为因素)
  3. 基于协同过滤的推荐(发现物品,内容或用户的相关性推荐,分为三个子类,下文阐述)

随着 Web2.0 的发展,Web 站点更加提倡用户参与和用户贡献,因此基于协同过滤的推荐机制因运而生。它的原理很简单,就是根据用户对物品或者信息的偏好,发现物品或者内容本身的相关性,或者是发现用户的相关性,然后再基于这些关联性进行推荐。

根据其建立方式

  1. 基于物品和用户本身的(用户-物品二维矩阵描述用户喜好,聚类算法)
  2. 基于关联规则的(The Apriori algorithm算法是一种最有影响的挖掘布尔关联规则频繁项集的算法)
  3. 基于模型的推荐(机器学习,所谓机器学习,即让计算机像人脑一样持续学习,是人工智能领域内的一个子领域)

按推荐方法分类

  • 基于内容推荐
  • 协同过滤推荐
  • 基于关联规则推荐
  • 基于效用推荐
  • 基于知识推荐
  • 组合推荐

推荐系统工作流程

欢迎交流

我整理了一系列的技术文章和资料,在公众号「程序设计实验室」后台回复 linux、flutter、c#、netcore、android、java、python 等可获取相关技术文章和资料,同时有任何问题都可以在公众号后台留言~