推荐系统
-
系统职能:头条/抖音/快手,都是以推荐系统作为流量的分发的主要手段;
-
职业发展:大数据处理/流式计算/数据挖掘/机器学习/高并发服务等领域。
-
更具用户的离十信息和行为,向用户推荐他感兴趣的内容
-
基于行为的协同过滤
-
基于内容相似推荐
-
推荐系统 - 包括那些环节
挑战:怎么从海量的内容中,挑选出用户感兴趣的条目,并且满足系统的50ms~300ms的低延迟要求
图片环节1
找回路径
推荐系统中常见的名词:i2i/u2i/u2i2i/u2u2i/u2tag2i,这些叫做推荐的召回路径。
U2I:来源于用户的直接行为,比如播放/点击/购买等
I2I:内容相似,协同过滤关联规则挖掘等
U2I2I:基于item的协同过滤货先到先用户的行为列表,然后查找I2I做扩展
U2U2I:基于用户的协同过滤,用户画像相似然后推荐,用户聚类推荐
U2Tag2I:先算出用户的tag偏好,然后匹配item列表
Netflix 经典的推荐系统架构
图:推荐架构1
挑战:架构既能处理海量数据,又能及时响应用户交互
在线层:
特点:快速响应,使用最新的数据输入,比如200ms
缺点:不能使用复杂的算法,只能读取少量数据
离线层:
特点:大部分数据包括模型训练都在这一层
优点:可以采用复杂的算法,扫描海量的数据
缺点:不能对最新的情景和新数据做响应,比如天粒度
近线层:
特点:离线和在线的折中,一般将结果存入高速缓存
优点:能使用几乎最新的数据计算,延迟10秒~1分钟级别;允许更复杂的算法处理,加载查询耕更多数据
组合使用的例子:
1,天粒度:离线层做矩阵分解,得到用户向量和物品向量做数据存储到Mysql
2,10秒钟:近线层根据用户行为,查询TopN相似的物品列表,存入Cassandra
3,200毫秒:在线层查询的第儿步骤的结果,更新推荐列表
推荐架构2
如何实现一个基于内容的推荐系统(Content-Based Recommendations)
推荐架构3
地位:最早被使用的推荐算法,年代久远,单当今仍然被广泛使用,效果良好
定义:给用户X推荐之前喜欢的物品相似的物品。即,U2I2I/U2Tag2I
优缺点:
优点:不需要其他用户数据
能给具备独特口味的用户推荐
推荐最新的/冷门的物品
容易做推荐结果的解释
缺点:
很难找到能表达物品的标签,有时候需要人工打标签
过于局限于自己的世界,无法挖掘出用户的潜在兴趣
新用户如果没有行为,没法做推荐
协同过滤的推荐系统
使用行为数据,利用集体智慧推荐
推荐系统如何实现多路找回融合排序
如何实现AB测试
如何实现内容的相似推荐
https://ai.tencent.com/ailab/nlp/zh/index.html
https://ai.tencent.com/ailab/nlp/en/embedding.html
矩阵分解的协同过滤
Python 使用Faiss实现向量的近邻搜索