推荐系统(Recommender System)的技术基础

推荐系统

作者:xudong0612

推荐系统是通过分析用户属性、访问日志、反馈信息等对用户可能感兴趣的项进行预测。推荐系统在web2.0时代将有非常广泛的应用。

推荐系统应用了多个领域的方法和技术,如人机对话(Human Computer Interaction)、信息检索(Information Retrieval)等。不过说到底,这些都是以数据挖掘(Data Mining)为基础的。

推荐系统基础知识储备

刘尚堃 京东数据驱动下的个性化推荐系统(PPT附下载)

寻路推荐 豆瓣推荐系统实践之路

计算广告与推荐系统有哪些区别?

数据挖掘的过程由下图中所示的三个步骤组成:

推荐系统

 

数据预处理(preprocessing)

数据挖掘的对象是数据,在对数据进行分析之前,要对数据进行清洗,转换、转载(ETL)使其完整、一致。在推荐系统中,数据的预处理主要包括距离计算,采样和降维。

1.距离计算(Distance Measures)

推荐目前主要采用两种方法:基于内容的推荐和协同推荐。基于内容的推荐是根据历史信息(如评价、分享、收藏过的文档)构造用户偏好文档, 计算推荐项目与用户偏好文档的相似度, 将最相似的项目推荐给用户;协同推荐的原理是寻找用户的邻居,为其推荐邻居感兴趣的东西。发现邻居的方法就是通过计算用户间的相似度对用户进行分类,相似度的基础就是距离计算。

我们这里采取的是协同推荐,常见的两个对象间距离的计算有如下几种方法:

1)欧几里得距离

定义如下:

  其中,n为对象的属性的个数,xk、yk为第k个属性,x、y为对象。

2)闵可夫斯基距离是欧几里得距离的推广

定义如下:

  其中,r是距离的度,有时被称为Lr范数。另外,我们可以发现,当r=1时,它表示为曼哈顿距离,r=2时,表示为欧几里得距离,当r→∞时,表示为supremum距离,它对应于计算两个对象间任意维度的最大区别。

3)马氏距离

  其中,σ是x、y的协方差矩阵。

此外,还有一种常见的计算对象间相似度的方法。将项看成n维的文档矩阵,通过计算两个对象间的cos值来表示相似度。公式如下:

  其中•表示向量的点乘,||x||表示x的范数。

当对象的属性为二元变量时,即只有0,1两种状态。此时,就需要特定的方法来计算相似度。例如用M00、M01、M10、M11来表示具有两个二元变量的对象的四种状态,如果二元属性是对称的,也就是说两个状态具有相同的价值和相同的价值,那么对象间的相似度计算公式为:

简单匹配系数=(number of matched/number of attributes)=(M00+M11)/(M01+M01+M10+M11)

如果二元属性不是对称的,则计算公式为:

Jaccard系数=M11/(M01+M10+M11)

2.采样(Sampling)

数据挖掘过程中,不可能对所有的数据进行处理,往往是选择一个子集作为数据源,从所有数据中选择数据子集的过程就是采样。选择出的子集还分为训练集(training dataset)和测试集( testing dataset),训练集主要用来学习算法,测试集用来测试算法质量。

采样要求选择出的数据具有代表性,目前主要采样以下两种方法:

1)随机取样 即等概率的从数据整体中抽取数据。

2)分层取样 基于数据的特征将数据分成几部分,在每一部分再进行随机取样。

在采样过程中,一种是不重复采样,另一种是重复采样。最常用的一种方法是80/20原则的不重复随机采样。80/20是指从采样结果中取80%作为训练集,另外20%作为测试集,这种方法在超过2/3情况下是适合的。

另外,为了防止采样结果不具有代表性,一般会重复取样,对数据经过多次测试来保证准确性。

3.降维(Dimensionality Reduction)

采样得到的数据可能会有冗余、维难等问题,为了解决这些问题,就需要对数据进行降维。常用的降维方法有以下两种:

1)主成分分量分析法(Principal Compenent Analysis,PCA)

2)奇异值分解法(Singular Value Decomposit,SVD)

用户喜欢...

数据挖掘,正从从线上生活伸向线下

作者:车品觉 天气一热,冷饮会不会立马涨价? 英国消费者很快就能知道答案。近日有报道称,英国三大连锁超市将...


数据挖掘九律,看完不后悔

一位挖掘专家 tom khabaza 提出了挖掘九律,挺好的东西,特别是九这个数字,深得中华文化精髓,有点独孤九剑的意思...


揭秘10个大数据神话

如果数据有一点点就不错了,那么数据是海量的话就一定棒极了,对不对?这就好比说, 如果一个炎日夏日里的微风让...


文本挖掘小探索:避孕药内容主题分析

作者:冯大福 舆情监测一直是众多品牌关注的地方,尤其品牌想知道在品牌推广,品牌策略,品牌广告中出现的问题...


金融大数据运用与隐私权保护

作者:王燕玲 【导读】:金融大数据的运用有助于提高金融监管能力,重塑金融监管的方式。金融先进技术可以让金...


第三方支付谁更胜一筹?大数据告诉你支付宝和微信到底谁更强?

在2017年第一季度,中国有超过18万亿的交易额都是通过移动支付完成的,而移动支付的两大巨头是这个数字的助力者...


榜眼获100万种子融资,用机器学习+大数据挖掘为学生打造安全精准的求职平台

作者:钱佳信 今日,榜眼CEO董志成向透露,已于2016年底获个人种子轮投资100万。投资方为上海知名投资人,曾经投过...


大数据获取:Flume, Kafka和NiFi

作者Tony Siciliani  本文为36大数据独译,译者:随风 我们在建设一个大数据管道时,需要在Hadoop生态系统前仔细考虑,...


7 款 Python 数据图表工具的比较

作者:Vik Paruchuri Python 的科学栈相当成熟,各种应用场景都有相关的模块,包括机器学习和数据分析。数据可视化是...


数据模型——数据仓库的灵魂

作者:KPMG大数据挖掘 摘要:随着数据量的爆炸式增长,数据仓库或数据平台已经是每家企业或机构不可缺少的工具,...


做「数据科学家版Office」,「DataExa」希望推进AI平民化

作者:林鲁比 科技巨头企业,如Alphabet、Facebook、微软、BAT等掌握了海量的数据,笼络了顶尖科学家,拥有更雄厚的资...


汽车全生命周期管理量化决策及大数据挖掘、定价平台“数鼎科技”宣布完成千万元天使融资

今天,汽车及相关行业量化决策及大数据深度挖掘、智能定价服务平台数鼎科技宣布已完成千万人民币级天使轮融资...


大数据分析你不能不懂的6个核心技术

目前,大数据领域每年都会涌现出大量新的技术,成为大数据获取、存储、处理分析或可视化的有效手段。大数据技...


人工智能和大数据的开发过程中需要注意这12点

人工智能是近年来科技发展的重要方向,在大数据时代,对数据采集、挖掘、应用的技术越来越受到瞩目。在人工智...


主要推荐系统算法总结及Youtube深度学习推荐算法实例概括

作者:ZhuZhiboSmith 现如今,许多公司使用大数据来做超级相关推荐,并以此来增加收益。在海量推荐算法中,数据科学...


如何更好监测挖掘互联网信息?国双这里有答案

作者:Gridsum 在互联网2.0的时代,无论是个人还是组织都可以通过互联网发声,而受众不只是单纯地接收信息,他们同...