实战分享电影推荐系统项目实战应用

Posted 七月在线实验室

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实战分享电影推荐系统项目实战应用相关的知识,希望对你有一定的参考价值。

从2017年接触机器学习,到2018年5月开始学习机器学习,再到11月份开始学习七月在线的课程,算下来学习ML已经很久了。

不过在来到七月在线的平台学习之前,一直都是断断续续的学习,对于很多知识渠道觉得都很碎片化,在七月在线课程学习结束之际,平台组织了推荐系统项目比赛,同几位志同道合的小伙伴一起完成了这个比赛,并有幸得到大家的肯定,拿了第一名,在这个过程中,增长了很多经验,对于机器学习方法应用于工业生产的理解更是深刻了一些。

推荐算法在互联网行业的应用非常广泛,今日头条、美团点评等都有个性化推荐,推荐算法抽象来讲,是一种对于内容满意度的拟合函数,涉及到用户特征和内容特征,作为模型训练所需维度的两大来源,而点击率,页面停留时间,评论或下单等都可以作为一个量化的 Y 值,这样就可以进行特征工程,构建出一个数据集,然后选择一个合适的监督学习算法进行训练,得到模型后,为客户推荐偏好的内容,如头条的话,就是咨询和文章,美团的就是生活服务内容。

可选择的模型很多,如协同过滤,逻辑斯蒂回归,基于DNN的模型,FM等。我们使用的方式是,基于内容相似度计算进行召回,之后通过FM模型和逻辑斯蒂回归模型进行精排推荐,下面就分别说一下,我们做这个电影推荐系统过程中,从数据准备,特征工程,到模型训练和应用的整个过程。

我们爬取的电影数据(除电影详情和图片信息外)是如下这样的形式:

【实战分享】电影推荐系统项目实战应用

这里的数据是有冗余的,又通过如下的代码,对数据进行按维度合并,去除冗余数据条目:

【实战分享】电影推荐系统项目实战应用

之后开始准备用户数据,我们从用户打分的数据中,统计出每一个用户的打分的最大值,最小值,中位数值和平均值等,从而作为用户的一个附加属性,存储于userproex表中:

【实战分享】电影推荐系统项目实战应用

以上两个SQL是最终插入表的时候用到的,代表准备用户数据的最终步骤,其余细节可以参考文末的github仓库,不在此赘述,数据处理还用到了一些SQL,以及其他处理细节。

系统上线运行时,第一次是全量的数据处理,之后会是增量处理过程,这个后面还会提到。

我们目前把用户数据和电影的数据的原始数据算是准备好了,下一步开始特征工程。做特征工程的思路是,对type, actors, director, trait四个类型数据分别构建一个频度统计字典,用于之后的one-hot编码,代码如下:

【实战分享】电影推荐系统项目实战应用

涉及到的冗余数据也要删除

【实战分享】电影推荐系统项目实战应用

将电影数据转换为字典列表,由于演员和导演均过万维,实际计算时过于稀疏,当演员或导演只出现一次时,标记为冷门演员或导演

【实战分享】电影推荐系统项目实战应用

使用DictVectorizer进行向量化,做One-hot编码

【实战分享】电影推荐系统项目实战应用

这样的数据,下面做余弦相似度已经可以了,这是特征工程的基本的一个处理,模型所使用的数据,需要将电影,评分,用户做一个数据拼接,构建训练样本,并保存CSV,注意这个CSV不用每次全量构建,而是除第一次外都是增量构建,通过mqlog中类型为'c'的消息,增量构建以comment(评分)为主的训练样本,拼接之后的形式如下:

【实战分享】电影推荐系统项目实战应用

这个数据的actors等字段和上面的处理是一样的,为了之后libfm的使用,在这里需要转换为libsvm的数据格式

【实战分享】电影推荐系统项目实战应用

有很多细节不在这里描述,这样大概的特征工程工作就做好了,之后使用相似度计算,FM,LR进行推荐模型的训练。 具体训练的过程不在这里进行阐述了,可以参考代码索引页 https://github.com/GavinHacker/technologyx

模型使用上遵循先召回,后精排的策略,先通过余弦相似度计算一个相似度矩阵,然后根据这个矩阵,为用户推荐相似的M个电影,在通过训练好的FM,LR模型,对这个M个电影做偏好预估,FM会预估一个用户打分,LR会预估一个点击概率,综合结果推送给用户作为推荐电影。

做了这个电影推荐系统后,感觉算是对自己这么长时间学习机器学习知识做一个综合的实践,有不少的感悟,现在有很多学习机器学习的同学,建议在大家刷论文的同时,也注重在项目中实践,计算机科学,虽然叫做科学,实际却是一门实践性学科,一些AI顶级大牛,他们并不是数学家,也不是理论家,大多是从理论和实践结合这条路成就的,和金庸小说中的武林绝技是一个道理。

七月在线的AI课程是国内做AI知识传播比较好的一个平台,在这里能够接触到很多小伙伴,大家一起分享,一起成长。

以上就是分享的关于电影推荐系统项目,如想了解此项目更多相关知识,扫描下方二维码,即可查看~


长按识别下方二维码

查看项目详情

【实战分享】电影推荐系统项目实战应用


【实战分享】电影推荐系统项目实战应用

【实战分享】电影推荐系统项目实战应用

今日学习推荐


助力“金三银四”

分享一套全体系人工智能学习资料

600G资料 限时限额0元领

小伙伴们可以屯起来,慢慢学习喔~


扫描下方海报二维码

 立即领取

往期推荐







点击“阅读原文”,查看项目相关详情

给我【好看

你也越好看!

以上是关于实战分享电影推荐系统项目实战应用的主要内容,如果未能解决你的问题,请参考以下文章

03spark大数据互联网项目实战推荐系统(全套)

基于知识图谱的电影推荐问答系统实战

基于SparkSQL的电影分析项目实战

Keras深度学习实战(31)——构建电影推荐系统

Python爬虫项目实战-爬取猫眼电影

推荐系统入门到项目实战:基于相似度推荐(含代码)