推荐系相关概念

文章目录

推荐概念

信息过滤系统
  • 解决 信息过载 用户需求不明确的问题
  • 利用一定的规则将物品排序 展示给需求不明确的用户
推荐 搜索区别
  • 推荐个性化较强,用户被动的接受,希望能够提供持续的服务
  • 搜索个性化弱,用户主动搜索,快速满足用户的需求
推荐和 web项目区别
  • 构建稳定的信息流通通道
  • 推荐 信息过滤系统
  • web 对结果有明确预期
  • 推荐 结果是概率问题

Lambda 架构介绍

离线计算和实时计算共同提供服务的问题
离线计算优缺点
  • 优点 能够处理的数据量可以很大 比如pb级别
  • 缺点 速度比较慢 分钟级别的延迟
实时计算优缺点
  • 优点 响应快 来一条数据处理一条 ms级别响应
  • 缺点 处理的数据量小一些
离线计算的框架
  • hadoop hdfs mapreduce
  • spark core , spark sql
  • hive
实时计算的框架
  • spark streaming
  • storm
  • flink
消息中间件
  • flume 日志采集系统
  • kafka 消息队列
存储相关
  • hbase nosql数据库
  • hive sql操作hdfs数据

推荐算法架构

召回
  • 协同过滤 算相似度 memory base
    基于模型的 model base 矩阵分解

  • 基于内容
    分词
    词权重(提取关键词) tf-idf
    word2Vec 词向量
    物品向量

排序
  • 逻辑回归
策略调整

推荐模型构建流程

数据收集
  • 显性评分
  • 隐性数据
特征工程
  • 协同过滤:用户-物品 评分矩阵
  • 基于内容:分词 tf-idf word2Vec
训练模型
  • 协同过滤
    KNN
    矩阵分解 梯度下降 ALS
评估、模型上线

协同过滤思路介绍

CF 物以类聚人以群分
做协同过滤的话 首先特征工程把 用户-物品的评分矩阵创建出来
基于用户的协同过滤
  • 给用户A 找到最相似的N个用户
  • N个用户消费过哪些物品
  • N个用户消费过的物品中减去A用户消费过的就是推荐结果
基于物品的协同过滤
  • 给物品A 找到最相似的N个物品
  • A用户消费记录 找到这些物品的相似物品
  • 从这些相似物品先去重-A用户消费过的就是推荐结果

相似度计算

余弦相似度、皮尔逊相关系数
  • 向量的夹角余弦值
  • 皮尔逊会对向量的每一个分量做中心化
  • 余弦只考虑方向 不考虑向量长度
  • 如果评分数据是连续的数值比较适合中余弦、皮尔逊计算相似度
杰卡德相似度
  • 交集/并集
  • 计算评分是0 1 布尔值的相似度

使用不同相似度计算方式实现协同过滤

如果 买/没买 点/没点数据 0/1 适合使用杰卡德相似度
  • from sklearn.metrics import jaccard_similarity_score
  • jaccard_similarity_score(df[‘Item A’],df[‘Item B’])
  • from sklearn.metrics.pairwise import pairwise_distances
  • user_similar = 1-pairwise_distances(df,metric=‘jaccard’)
一般用评分去做协同过滤 推荐使用皮尔逊相关系数
  • 评分预测
  • p r e d ( u , i ) = r ^ u i = ∑ v ∈ U s i m ( u , v ) ∗ r v i ∑ v ∈ U ∣ s i m ( u , v ) ∣ pred(u,i)=\hat{r}{ui}=\cfrac{\sum_{v\in U}sim(u,v)*r_{vi}}{\sum_{v\in U}|sim(u,v)|} pred(u,i)=r^ui=vUsim(u,v)vUsim(u,v)rvi
基于用户和基于物品的协同过滤 严格上说,属于两种算法,实践中可以都做出来,对比效果,选择最靠谱的

协同过滤 基于模型的算法

用户-物品矩阵比较稀疏的时候 直接去取物品向量 用户向量计算相似度 不太适合
基于模型的方法可以解决用户-物品矩阵比较稀疏的问题
矩阵分解
  • 把大的矩阵拆成两个小的用户矩阵 物品矩阵 M ∗ N M*N MN 大矩阵 M ∗ K M*K MK K ∗ N K*N KN (其中 K < < M K<<M K<<M k < < N k<<N k<<N
  • 大矩阵 约等于 用户矩阵 乘 物品矩阵
  • 使用ALS 交替最小二乘法来优化损失 spark ML recommandation 包封装了ALS
  • 优化之后的用户矩阵 取出用户向量
  • 优化之后的物品矩阵 取出物品向量
  • 用户向量点乘物品向量 得到最终评分的预测

推荐系统的评价

准确率 覆盖率
  • 准确率
    学术 rmse mas 点击率预估 精准率
    工程 A/B test 对比不同的算法 在线上运行对关键指标的影响
      baseline 基准线 热门排行
      灰度发布
EE
  • Exploitation & Exploration 探索与利用问题
  • Exploitation 利用用户的历史行为 只给他曾经看过的/消费过的相似物品
  • Exploration(探测 搜索) 发现用户的新兴趣
  • EE问题 实际上是矛盾
评估手段
  • 离线评估和在线评估结合, 定期做问卷调查
      在线评估
        灰度发布 & A/B测试

推荐系统的冷启动

用户冷启动
  • 尽可能收集用户信息 构建用户画像(打标签)
  • 根据用户的标签可以做人群聚类 用已有用户的行为做推荐
  • 更多的使用流行度推荐
物品冷启动
  • 物品打标签 构建物品画像
  • 基于内容的推荐
系统冷启动
  • 如果应用缺少用户行为数据->基于内容的推荐
  • 随着用户行为积累的越来越多->协同过滤
  • 基于内容和协同过滤共同工作

基于内容的推荐

给物品打标签
  • 系统自己从业务数据库中提取
  • 用户填写
  • 中文分词 利用算法计算词的权重
  • tf-idf tf term frequency 词频 5/100 *2
    idf 逆文档频率 l g 文 本 库 篇 数 出 现 关 键 词 的 文 章 篇 数 lg {\frac{文本库篇数}{出现关键词的文章篇数}} lg
    1000 10python 1000/10 100 2
    1000/1000 log(1) = 0
    textrank
利用标签的文字 转换成词向量
  • word2Vec 词->向量
  • 用向量来表示语义
  • 如果两个词的词向量相似度比较高 认为这两个词的语义相近
利用词向量 构建物品的向量
  • 一个物品有N个关键词 每一个关键词对应一个词向量
  • ∑ ( 权 重 ∗ 词 向 量 ) N \frac{\sum{(权重*词向量)}}{N} N()
  • 利用N个关键词的词向量获取物品向量
通过物品向量计算相似度
  • 皮尔逊 相关系数 计算物品向量的相似度

基于内容的推荐 基于物品的协同过滤 区别

content_base :词向量->物品向量->计算相似度
item_based cf :user-item matrix->物品向量->相似度
content_base item_based cf 不一样
  • 物品向量构建过程有区别
  • 基于内容的推荐
    物品向量 文本(物品描述信息,系统填标签,用户填标签)
  • 基于物品的协同过滤
    用户对物品的评分矩阵 用户的行为数据中来
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
统的算法和实现、统性能评估等方面的内容。 针对基于Spark的电影推荐统的设计与实现,已经有许多相关的文献综述。在这些文献中,一般包含以下方面的内容: (1)项目研究背景说明:主要介绍电影推荐统的意义和重要性,以及当前电影推荐统的发展现状和存在的问题。 (2)大数据的基本概念及特点:主要介绍大数据的定义、特点、挑战和机遇等方面的内容,为后续的统设计和实现提供基础。 (3)统设计思路:主要介绍基于Spark的电影推荐统的总体设计思路,包括数据的采集、预处理、存储和分析等方面的内容。 (4)统使用的相关技术:主要介绍统使用的相关技术和工具,如Spark、Hadoop、Scala、Python等,以及如何使用这些技术和工具进行统开发和实现。 (5)推荐统的算法和实现:主要介绍基于Spark的电影推荐统所采用的推荐算法和实现方法,如基于协同过滤的推荐算法、基于内容的推荐算法、混合推荐算法等。 (6)统性能评估:主要介绍对基于Spark的电影推荐统的性能进行评估的方法和指标,如准确率、召回率、F1值等。 总之,基于Spark的电影推荐统的设计和实现需要综合运用大数据技术、推荐算法和数据分析方法等多方面的知识和技能,同时也需要考虑统的可扩展性、性能和用户体验等问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值