首发于 萝卜大杂烩
基于矩阵分解算法的推荐系统实战

基于矩阵分解算法的推荐系统实战

基于矩阵分解算法的推荐系统实战


推荐系统


推荐系统,可以根据用户的喜好来推荐给用户不同的事物。


推荐系统类型:

  1. 纯手工设置推荐内容
  2. 根据物品的销量,曝光率等来排序物品,并推荐给用户
  3. 根据不同的算法,整合不同维度的数据,来智能的推荐物品

简单的推荐系统模型


设:
U 为所有用户集合
P 为所有物品集合
R 为用户对物品的喜好程度
模型 Model(R) = U * P


算法核心:


通过用户对不同物品的打分,来预测用户对其他物品的喜好程度。此处并没有考虑用户和物品的属性,如:用户年龄,性别,学历,工作等,物品价格,品类,外观等。
通过用户对物品的打分,可以建立一个推荐值矩阵,之后就可以通过运算该矩阵来预测用户喜好,即为矩阵分解算法!


矩阵分解:


将推荐值矩阵 R 分解为矩阵 U 和 矩阵 P,使得 U 和 P 的乘积得到的新矩阵 R* 中的元素与 R 中的已知元素的值非常接近,那么 R* 中对应于 R 中的未知元素的值就是预测值。
推荐值矩阵:

推荐值矩阵关键性问题:

  1. 初始值获取,数据的收集
  2. 从推荐值矩阵中已知数据预测未知数据
  3. 建立评价系统,用于检验推荐系统的效果

收集数据


一般可以采取网络爬虫的方式,比如对于数据的评分,可以爬取豆瓣读书上的数据,也可以在自己可以控制的网站上做埋点等来收集用户信息。


预测未知数据


关键挑战:

矩阵分解实例:

即:


对比最左侧的元素矩阵和最右侧的预测矩阵,预测矩阵中位于原始矩阵缺失数值位置的元素值,即为预测值。
同时也可以得到


即:对于在 ij 位置上的物品的喜好数据,可以通过第 i 个用户的画像向量和第 j 个物品的画像向量代表。
使用图形表示如下:


其中 k 在数学上的意义为矩阵分解的秩,在业务上的意义为 影响用户给物品评分的 k 个影响因子,当前我们无法直接知道 k 的值,在模型训练时,一般采取交叉验证的方式来寻找最优的 k 值。
我们可以使用“和方差”来作为损失函数


这里通过已知的{(ij)},计算“和方差”,使之达到最小,即预测值越接近真实值。以此得出的 U 和 P 的值就是我们需要的值。

损失函数的梯度


单独取出误差


对误差 L 分别在 U 和 P 上求导可得



现在我们已经知道了损失函数的梯度(导数),下面就可以使用梯度下降法来求解 U 和 P 的值。


梯度下降法


随机选取一个起始点,然后在负梯度的方向上持续训练,直到损失函数的梯度越来越接近零,此时即可取得最优解。


引入正则化


为了防止过拟合的发生,对损失函数加入正则化参数


λ>0
这样,当 U 和 P 都保证比较小的情况下,U 或者 P 的数值剧烈变化时,U 和 P 的点积也不会有太大的变化。

最终的损失函数为:


最终损失函数的梯度为:



运用梯度下降法求最优解
设定梯度下降的速率 γ(学习速率)和 k 值,并随机初始化 U 和 P,重复训练,直到误差满意为止。



评估推荐系统

n:测试集中推荐值的总数量

r(up):真实的用户 u 对物品 p 的推荐值

r*(up):预测的用户 u 对物品 p 的推荐值

项目实战


数据集格式如下:

第一列为用户 ID,第二列为物品 ID,第三列为对应的打分(1-10)


总体代码基于 surprise 库,可以先安装


下面导入相关库和数据集




根据公式,定义算法函数



最后再训练、预测,评估

可以调整学习速率,迭代次数,隐藏因子个数和正则化参数等来训练不同的模型,并评估结果,获取满意的模型。

PHP网站源码保定网站设计推荐木棉湾网络营销咸阳网站搜索优化推荐益阳百度网站优化霍邱建网站价格吉林百度竞价价格汕头网站优化按天扣费怀化百度竞价包年推广价格广州网站优化按天收费推荐桂林网站制作哪家好乌海百搜标王张家口品牌网站设计公司昌都网站开发鄂州网站搜索优化报价扬州模板推广曲靖网站优化软件公司连云港网站seo优化多少钱怀化营销网站乐山建设网站哪家好池州关键词排名报价西宁建设网站报价邵阳网站改版多少钱鹤壁设计网站推荐武汉企业网站建设公司永新网站优化按天收费哪家好宝安网站排名优化哪家好甘南网站制作多少钱钦州企业网站制作推荐宜宾百度竞价包年推广多少钱双龙阿里店铺运营多少钱歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

PHP网站源码 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化