音乐智能推荐 ALS算法

音乐推荐分析

特征的产生:

​ 能让用户产生兴趣的行为,可能包括有:试听音乐、收藏音乐、收藏专辑|歌单、搜索、关注歌手|用户、下载歌曲、分享(比较少)

权重产生:

  • 按照用户操作成本

    下载+播放 > 喜欢+播放 > 搜索+播放 > 播放 > 下载 > 喜欢

  • 权重分析之播放次数加权

    因为音乐播放时一个偏好动作,你可能对喜欢的音乐进行重复播放,一次播放和两次三次或者说十次播放,能反应出你对该歌曲的偏好程度不同,假设一次播放我们给与的权重为a,那么重复n次播放,我们赋予权重为a+0.01*n (0.01可相对调整)(如何确定有效播放次数?暂未考虑)

推荐内容:

  • 歌曲推荐:推荐的结果应该为uid:array((mid,score))

  • 歌单推荐:推荐的结果应该为uid:array((mid,score))

推荐之冷启动:

冷启动

  • 由于新用户没有历史记录,没有数据就不能很好的推荐给用户相关的音乐
  • 由于新发布发音乐没有人听过,所有用户对于该音乐的分数相当于0,无法推送

解决方案

  • 最简单的方法就是推荐热度音乐(排行榜)
  • 根据用来入口来源,比如说微博,qq,爬取用户动态信息,对用户进行分类,(该方法在后期,根据用户心情推荐有奇效,比如,用户在微博或者qq发表一条动态 ,或者今天发表的动态,对内容进行情感分析,推荐相关音乐或者相反类型音乐)
  • 根据手机号码读取手机联系人,匹配相关好友,推荐年龄相符活跃度高的好友歌单或者歌曲
  • 4.26更新 经过思考,冷启动 在某种程度上可以用相似度来推荐,比如该用户是首次访问,更具他填写的一些基本信息,更具用户相似度矩阵,计算与该用户的相似度领域,然后意见相关音乐,音乐也是如此,可否实现?(暂为实现)

Spark 2.2.0ml包和mllib包

​ 既然说到2.2.0 不得不说 org.apache.spark.ml org.apache.spark.mllib 这两个包的区别

  1. 官网里面说 在spark3.x 以后可能会废除mllib
  2. 在spark2.x以后,mllib不更新 只负责修复bug
  3. 在ml中 机器学习的对象为dataframe 而ml中为rdd对象

基于Spark2.2.0解决冷启动方案

​ 除上述方案在业务逻辑上可以解决冷启动,在代码层面上 saprk2.2.0 对算法进行了优化

​ 在模型对象model 中有一个方法 setColdStartStrategy() 查找源码可以发现 此方法有两个值 有个为nan 另一个为drop,可以看到nan为默认值,
在这里插入图片描述在这里插入图片描述
​ nan参数 是指在模型处理参数是 如果遇到未知的参数 即未出现的userid moiveid (即冷启动)时 ,他推荐的结果为nan,个人觉得这种方式可以用在实时推荐中

​ drop参数 是指在交叉验证中 处理不了nan值 会删除nan值和任意的行 然后在对剩下的数据进行推荐(离线推荐的时候更管用?看需求,是否需要甄别新用户)

Spark 智能推荐之显隐性特征处理

​ 一般对数据分析过程中,或多或少都具有隐性特征,而我们一般是对数据的显性特征进行转化为分数,隐性特质某些程度上是没有考虑到,
在这里插入图片描述在这里插入图片描述
​ 在spark2.2.0中 new ALS对象是 参数setImplicitPrefs(true) 该方法默认为false fasle 为创建显性模型,不考虑隐性因素,但是此方法还可以传入true,传入true为考 虑隐性因素的模型,在隐性因素就多或者占比重较大时,可以创建隐性模型,如果集群性能比较好,建议创建隐性模型,在创建隐性模型后,参数对比显性模型应该相对调整,要不然均方根误差比显性模型的大,以至于没有显性模型准确

Spark 智能推荐之误差分析(暂时写不了)

​ 在Spark 机器学习中 常见的四种误差分析方式:均方根误差(RMSE),均方误差(MSE),拟合优度检验(R2),平均绝对误差(MAE)

RMSE:均方根误差,数学表达式为,n组数据a1…an,取预测值为b1…bn 计算对应的预测值与真实值之间的差值取其平方,累加求和,取平均值 对结果进行开方

意义 :rmse 主要代表 一组数据 预测值和真实值的差异 代表预测数据偏离真实数据的程度
r m s e = (

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值