(9)推荐算法

(1)ALS交替最小二乘算法

            ALS指使用交替最小二乘法求解的协同过滤算法。通过观察到的所有用户给产品打分,来推断每个用户的喜好并向用户推荐合适的产品。

            具体推荐是 通过用户评分矩阵来实现的,用户评分矩阵每一行代表一个用户,每一列代表一个产品,每一个元素代表一个用户对某一种产品的打分。用户评分矩阵通过用户特征矩阵和物品特征矩阵得到。A= U*V。通过U和V来近似A。这样算法的自由度就从O(mn)变为了O((m+n)k)

            算法的目标使得U*A尽可能近似A。则算法的优化目标就是||A-UV||_{F}^2-》min\sum_{i,(i,j)\in R}  (a_{ij}-u_{i} v_{j}  ).F 代表Frobenius范数。

            最小化每一个元素和 重构之间的误差平方和。该优化问题就是采用ALS来实现。

            ALS的目标函数不是凸的,而且变量相互耦合。如果固定用户特征矩阵U或者产品特征矩阵V就可以使问题变得简单。原问题就转换为凸函数且可拆分。就可以使用最小二乘法求解。

            这里的交替最小二乘法就是先随机生成U,然后固定U去求解V;在固定V去求解U,这样一直交替下去,直到收敛。但由于问题本质上是非凸的,因此ALS不保证最终可以得到全局最优解。在实际使用中,ALS对初始点不是很敏感,是不是全局最优解影响不大。

            在使用MLlib中,算法最重要的是通过合理的数据分区和RDD缓存来减少数据交换,并设计良好的数据结构来进行结构优化,优化内存使用。

            在实际训练时候,类方法为ALS。输入数据为一个三元元组{用户id,物品id,评分}

            val model = ALS.train(data,rank,numIterations,lambda);其中rank代表特征数量,numIterations代表迭代次数;lambda代表正则化因子,0.01;

            预测时 val predictions = model.predict(userProducts).map{

                        case Rating(user,product,rate)=>  #这里的rate 只有一个值 原始值

                        ((user,product),rate)  #这里的rate有两个值 原始值和预测值

            }

            而userProduct为随机生成的(用户id,产品id)

(2)协同过滤推荐算法

            协同过滤算法是通过分析用户兴趣,在用户群中找到指定用户的相似用户,综合这些相似用户对某一物品的评价,形成指定用户对某一物品的预测。

            首先是收集用户偏好。通常通过评分,投票,转发,保存书签,购买,点击流以及页面停留时间等。然后将这些行为分组加权减噪和归一化。然后通过计算相似度对用户分组。相似度可以通过欧式距离、皮尔逊相关系数、Jacccard距离(文档类数据)等得到。

            而推荐部分也可以基于两个角度,根据用户分组和物品分组。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,099评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,828评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,540评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,848评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,971评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,132评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,193评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,934评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,376评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,687评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,846评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,537评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,175评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,887评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,134评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,674评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,741评论 2 351

推荐阅读更多精彩内容