推荐系统-实战总结

推荐系统实战

这周看了推荐系统实战这本书,其中基本上介绍的比较全面,但是每一部分并没有十分深入,深入的精华全部都在下方的备注当中,备注中有很多的论文,可以进行进一步的学习。

首先回顾一下一些框架信息,在专门思考其中几个重要的部分:

3种联系用户和item的推荐方式:

1 根据用户的历史行为,表达过反馈的item进行item的预测,传统的itemCF

2 根据用户的历史行为,找到相似用户,进行预测, userCF

3 根据用户的喜好和个人信息,提取用户的特征,喜欢的物品的特征,进行预测。基本上就是建立模型的思路

用户自身的特征,1 比如年龄,性别,2 用户历史行为,时间和地理位置同样重要 3根据历史行为找到话题模型,喜欢的物品种类(可能涉及topic model)的部分,同时也需要提取物品的特征,比如物品的种类,属性。。。书中介绍到物品冷启动的时候也需要提取物品的特征,比如关键词向量,d={(e1,w1),(e2,w2)…}表示关键词和权重,权重信息可以利用TF-IDF进行计算。

在提取了特征信息之后如果是要计算两个物品的相似性,那么表达为特征向量,两个特征向量直接相乘,如果是想直接直接得到预估结果,比如直接根据ctr排序等,那么利用机器学习的模型,进行训练。

一般系统的特征是十分多的,最近做的一个实例大概涉及2000万+的特征信息,如果一个系统把所有特征都考虑不现实,通过配置文件进行配置很麻烦,一般是多个推荐引擎一起工作,在按照一定的权重和优先级进行组合。

推荐系统的结构:

A  用户特征

一般分为用户的行为特征,从用户日志中进行行为提取,再进行行为特征转换,而对于属性特征,就可以直接根据信息转化为特征向量

B 生成初始化推荐列表

根据用户的特征,和线下计算完成的 特征-物品 的相关矩阵,进行转化得到相关推荐。 这里一个重点:这里一般会引入一个候选物品集合,也就是需要推荐的物品需要在候选集合当中。

如果用户对物品a产生了行为,候选列表中b希望被推荐,a比较流行,b不流行,那么,b在a中的相关性计算的分肯定不会靠前(一般也会有抑制流行度的方法),那么topN推荐的时候可能不会有b,推荐的都是不在推荐列表中的物品,那么如果在最后进行简单过滤,可能导致推荐商品会很少,所以在这里,就应该适当根据推荐列表,增加列表中物品的权重信息。

C 过滤模块

过滤到不满意的物品,比如,用户操作过的,质量很差的。。。

D 排名模块

1 新颖性  在推荐过程中,对热门的物品进行降权

2 多样性  对展现过的商品权重衰弱,通过根据用户的历史行为多挖掘主题,进行推荐

3  时间多样性  系统实时性   商品根据时间因子衰减

其中几个比较重要的点,先简要记录一下,之后对每一个进行深入的介绍:

1 在CF的推荐过程中,一定要注意抑制物品,用户的活跃性因子。同时在计算相关性的时候,注意进行归一化操作 物品总是属于很多的类别,每个类别内部的物品的相似性也是不同的,所以最好类别进行归一化

2 隐语义模型 根据隐含特征联系用户的兴趣和物品,根据用户行为自动聚类 用户u与第k个隐含类的关系*第k个隐含类和物品i的关系 ,计算量比较大,如果不能先生成候选列表,不适合在实时应用,同时不好对结果进行解释

3 为模型抽样或者生成负样本的时候,尽量保持正负均衡,同时负样本尽量选择热门但是用户没有行为的

4 如何处理实时推荐系统的实时性问题

5 冷启动问题

用户冷启动问题,用户在注册的时候有基本信息,可以根据基本信息对用户分类,同时找到和用户特征f和物品i被具有特征f的用户喜欢的程度进行推荐,也可以在注册的时候先让用户显性地完成一些反馈操作,我记得像微博,lofter等都有这个过程

物品冷启动问题,简单的方法是将物品随机进行展示,那么会收集到一定的信息可以进行处理。最常用的方法是根据物品的内容生成关键词向量,根据关键词向量找到相似的物品,可以类似于CF的方法进行推荐,一般涉及到词语,那么就需要思考到同义词,LDA模型就可能需要

LDA包括3个个元素 文档,话题,词语通过收敛使词语组合为不同的话题,根据物品在话题上的分布,计算物品的相似性。计算分布相似性KL

6 通过给物品打标签,计算物品的标签分布,计算相似性,这里标签类似关键词,在计算权重的时候也可以引入ID-TFD进行优化

7 在做推荐的过程中,注意时间和地理位置的因素,注意一个物体的生命周期,系统的生命周期。在计算系统的时效性的时候,先计算物品的流行度,用物品的平均在线天数进行评估。再计算相邻T天时间,物品的流行度的相似性,获得系统的时效性

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-06 11:53:17

推荐系统-实战总结的相关文章

【推荐系统实战】:C++实现基于用户的协同过滤(UserCollaborativeFilter)

好早的时候就打算写这篇文章,但是还是参加阿里大数据竞赛的第一季三月份的时候实验就完成了,硬生生是拖到了十一假期,自己也是醉了...找工作不是很顺利,希望写点东西回顾一下知识,然后再攒点人品吧,只能如此了. 一.问题背景 二.基于用户的协同过滤算法介绍 三.数据结构和实验过程设计 四.代码 一.问题背景 首先介绍一下问题的背景,现在我有四个月的用户.品牌数据<user,brand>,即用户在这四个月中的某一天购买了某个品牌(当然为了简化算法模型,将购买时间省去,后面再说).即现在有这四个月的数据

电商大数据项目(二)-推荐系统实战之实时分析以及离线分析

电商大数据项目-推荐系统实战(一)环境搭建以及日志,人口,商品分析http://blog.51cto.com/6989066/2325073电商大数据项目-推荐系统实战之推荐算法http://blog.51cto.com/6989066/2326209电商大数据项目-推荐系统实战之实时分析以及离线分析http://blog.51cto.com/6989066/2326214 五.实时分析Top IP(实时分析Top用户)一)模块介绍电商网站运营中,需要分析网站访问排名前N的IP,主要用来审计是否

电商大数据项目-推荐系统实战之推荐算法(三)

电商大数据项目-推荐系统实战(一)环境搭建以及日志,人口,商品分析http://blog.51cto.com/6989066/2325073电商大数据项目-推荐系统实战之推荐算法http://blog.51cto.com/6989066/2326209电商大数据项目-推荐系统实战之实时分析以及离线分析http://blog.51cto.com/6989066/2326214 (七)推荐系统常用算法协同过滤算法协同过滤算法(Collaborative Filtering:CF)是很常用的一种算法,

Spark机器学习实战 (十二) - 推荐系统实战

0 相关源码 将结合前述知识进行综合实战,以达到所学即所用.在推荐系统项目中,讲解了推荐系统基本原理以及实现推荐系统的架构思路,有其他相关研发经验基础的同学可以结合以往的经验,实现自己的推荐系统. 1 推荐系统简介 1.1 什么是推荐系统 1.2 推荐系统的作用 1.2.1 帮助顾客快速定位需求,节省时间 1.2.2 大幅度提高销售量 1.3 推荐系统的技术思想 1.3.1 推荐系统是一种机器学习的工程应用 1.3.2 推荐系统基于知识发现原理 1.4 推荐系统的工业化实现 Apache Spa

下载基于大数据技术推荐系统实战教程(Spark ML Spark Streaming Kafka Hadoop Mahout Flume Sqoop Redis)

地址:http://pan.baidu.com/s/1c2tOtwc  密码:yn2r 82课高清完整版,转一播放码. 互联网行业是大数据应用最前沿的阵地,目前主流的大数据技术,包括 hadoop,spark等,全部来自于一线互联网公司.从应用角度讲,大数据在互联网领域主要有三类应用:搜索引擎(比如百度,谷歌等),广告系统(比如百度凤巢,阿里妈妈等)和推荐系统(比如阿里巴巴天猫推荐,优酷视频推荐等). 本次培训以商业实战项目作为驱动来学习大数据技术在推荐系统项目中的应用.使得学员能够亲身体会大数

电商大数据项目-推荐系统实战

开源项目,请勿用于任何商业用途.源代码地址:https://github.com/asdud/Bigdata_project 本项目是基于Spark MLLib的大数据电商推荐系统项目,使用了scala语言和java语言.基于python语言的推荐系统项目会另外写一篇博客.在阅读本博客以前,需要有以下基础:1.linux的基本命令2.至少有高中及以上的数学基础.3.至少有java se基础,会scala语言和Java EE更佳(Jave EE非必需,但是可以帮助你更快理解项目的架构).4.有gi

大数据,云计算,数据挖掘实战,实时推荐系统实战,电视收视率项目实战,实时流统计项目实战视频教程

经过了近两个月的艰苦工作,这次在阿里天池的比赛终于结束了.第一次正经的去参加数据挖掘的比赛,从第一赛季开始到第二赛季结束,完整地经历了整个流程,每天提出新想法,学习新的方法,然后用编程的方法去实现,看着自己的MAPE一天天的下降,那种感觉也是很棒的.觉得付出了很多,也收获了很多,自己也找到了自己的方向,希望自己在未来可以朝着大数据和人工智能方向继续前行.而且这次比赛之后,自己在剩下三年的大学时光中还会继续参加很多这种比赛的,觉得这种比赛要比基础算法比赛更有趣,漫长的周期也更适合我比较散漫的生活方

大数据-实时推荐系统最主流推荐系统itemCF和userCF视频教程(项目实战)

38套大数据,云计算,架构,数据分析师,Hadoop,Spark,Storm,Kafka,人工智能,机器学习,深度学习,项目实战视频教程 视频课程包含: 38套大数据和人工智能精品高级课包含:大数据,云计算,架构,数据挖掘实战,实时推荐系统实战,电视收视率项目实战,实时流统计项目实战,离线电商分析项目实战,Spark大型项目实战用户分析,智能客户系统项目实战,Linux基础,Hadoop,Spark,Storm,Docker,Mapreduce,Kafka,Flume,OpenStack,Hiv

基于大数据技术推荐系统算法案例实战视频教程(项目实战)

38套大数据,云计算,架构,数据分析师,Hadoop,Spark,Storm,Kafka,人工智能,机器学习,深度学习,项目实战视频教程 视频课程包含: 38套大数据和人工智能精品高级课包含:大数据,云计算,架构,数据挖掘实战,实时推荐系统实战,电视收视率项目实战,实时流统计项目实战,离线电商分析项目实战,Spark大型项目实战用户分析,智能客户系统项目实战,Linux基础,Hadoop,Spark,Storm,Docker,Mapreduce,Kafka,Flume,OpenStack,Hiv