达观数据于敬:个性化推荐系统实践

达观数据于敬:个性化推荐系统实践

在DT(data technology)时代,网上购物、观看视频、聆听音乐、阅读新闻等各个领域无不充斥着各类推荐,个性化推荐已经彻底融入人们的平常生活当中。个性化推荐根据用户的历史行为数据进行深层兴趣点挖掘,将用户最感兴趣的物品推荐给用户,从而作到千人千面,不只知足了用户本质的信息诉求,也最大化了企业的自身利益,因此个性化推荐蕴含着无限商机。算法

号称“推荐系统之王”的电子商务网站亚马逊曾宣称,亚马逊有20%~30%的销售来自于推荐系统。其最大优点就在于个性化推荐系统,该系统让每一个用户都能有一个属于本身的在线商店,而且在商店中能招到本身最感兴趣的商品。美国著名视频网站Netflix曾举办推荐系统比赛,悬赏100万美圆,但愿能将其推荐算法的预测准确度提高10%。美国最大的视频网站YouTube曾作过实验比较个性化推荐和热门视频的点击率,结果显示个性化推荐的点击率是后者的两倍。cookie

达观数据拥有雄厚的研发推荐系统的技术积累,曾在ACM、CIKM、KDD、Hackathon等国际竞赛的获奖,在内容推荐,文本挖掘、广告系统等方面申请有超过三十项国家发明专利。本文从数据处理、用户行为建模到个性化推荐,分享达观数据在个性化推荐系统方面积累的一些经验。(达观数据联合创始人 于敬)网络

1. 数据收集及预处理

推荐系统的本质其实就是经过必定的方式将用户和喜欢的物品联系起来。物品和用户自身拥有众多属性信息进行标识。
1) 物品属性
物品表示推荐系统的客体,在不一样的应用场景下,物品指代不一样的待推荐事物。好比,在书籍推荐中,物品表示书籍;在电商推荐中,物品表示商品;在电影推荐中,物品表示电影;在社交网络推荐中,物品表示人。商品有多种属性标识本身是什么。机器学习


图片描述
商品属性
函数

2) 用户属性
用户表示推荐系统的主体,自身属性包括人口统计学信息以及从用户行为数据中挖掘分析获得的偏好等。
学习


图片描述
用户属性
测试

3) 用户行为
用户的每一次的行为操做无不反应用户心里的本质需求,包括页面浏览、点击、收藏、购物、搜索、打分、评论等,这些数据是个性化推荐系统的最重要的数据。根据用户自身独有的行为数据,能够为每个用户生成特有的画像。
大数据


图片描述
用户行为分析
优化

4) 数据处理
在数据采集的过程当中,不免会出现一些脏数据,在使用数据前须要进行清洗。过滤掉关键字段为空、数值异常、类型异常等数据;用户id包括cookie、手机号、email、注册id等,须要进行映射获得用户惟一id;以及数据去重等操做。另外,还有“人为”的脏数据,如做弊、刷单等行为,这些数据也须要清除,不然会严重影响后续算法的效果。达观数据在反做弊方面也作了不少工做,可有效筛选各类行为上的做弊状况。网站

2. 用户行为建模

基于用户历史行为的进行挖掘分析,获得刻画用户本质需求的一组属性集合,即获得用户模型,个性化推荐的准确性很大程度上依赖于对用户属性刻画的准确性。达观数据采用了多种方式进行量化,主要包括显式用户偏好分析和隐式用户兴趣点挖掘。
1) 显式用户偏好分析
结合用户历史行为和物品信息,能够获得每种行为下的用户偏好数据,包括偏好的维度及偏好程度,如偏好的物品、品牌、类别、标签等。再将各类行为的偏好数据合并,最终获得用户在物品、品牌、类别、标签等各个维度上的偏好程度。合并不一样维度的数据时,须要考虑到不一样的行为类型反应用户偏好程度是不一样的。好比购买行为比点击行为更能反映用户的偏好,则由购买行为计算获得的偏好数据在合并时赋予的权重要高一些。要保证各类行为的各个维度的数据具备可比性,须要进行归一化,并且同纬度的要采用相同的归一化方法。
2) 隐式用户兴趣点挖掘
除告终合物品信息进行分析计算获得的显式偏好外,还有一部分隐式兴趣点须要挖掘,这部分主要用于细分用户群体,进行有针对性的进行更有效的推荐。划分群体的准则要根据具体的业务需求而定,好比是不是高价值用户、是否价格敏感、是否对大牌情有独钟、大神用户和小白用户的区分、喜欢热门流行仍是偏小众的等等。借助机器学习中的分类(如SVM)和聚类(如k-means)算法可有效解决用户群体的划分问题,牵涉到的训练和测试数据须要先根据一些规则粗略获得候选集,在结合人工标记的进行筛选。除了能够从行为数据中抽取特征外,也能够从物品和用户的属性数据中抽取特征。通过模型的训练、预测和后处理,从而将用户划分到不一样的群体。
3) 协同过滤的基石
在个性化推荐中,应用很普遍的是基于用户的协同过滤算法。这个算法最重要一点是类似用户的计算。

类似度计算方法对推荐效果的影响
类似度的计算不少种方法,如余弦类似度、皮尔逊相关度等,曾经使用mahout作过的一个不一样类似度度量方法下的对比测试结果,测试中score的计算使用的是绝对差值的平均,越小越好。本次测试结果代表,在基于用户的协同过滤中,使用皮尔逊相关度的计算方法,推荐效果最好。
其实不一样的类似度计算方法有各自的优缺点,适用不一样的应用场景,能够经过对比测试进行选取。在实际业务中,类似度的计算方法都有不少变种,好比是否考虑去除冷门物品和热门物品的影响。毕竟过于冷门和过于热门的物品对衡量用户间的类似度时区分度很差,这时就须要进行剪枝。这种基于K近邻的选取类似用户的方法,类似度的阈值设置对结果影响很大,太大的话召回物品过多,准确度会有降低。
4) 时间维度上的考量
在处理各个维度的偏好数据时,须要考虑用户行为的有价值程度是随时间衰减的,即行为发生时间距当前的时间越近,获得的数据越能表征用户未来的行为。毕竟用户的口味随着时间的推移是会变化的,因此时间越近权重越高。
另外,还须要考虑偏好和兴趣点数据的在时间上的持续和变化过程,即须要刻画用户的口味呈现的时间规律。为了解决这个问题,咱们根据不一样的时间间隔来界定,分长期、短时间、近期和实时四个时间维度。长期的覆盖了用户几乎一直不变的兴趣,短时间的覆盖了用户变化中的兴趣,而近期则反映了用户的“尝鲜”的特色。这三种兴趣是离线计算的,还要考虑用户的实时兴趣,咱们经过很短的时间间隔进行近线挖掘分析,从而快速适应用户当前的信息需求。
经过上述过程,最终就为每一个用户生成了各个维度上的偏好和兴趣点数据。


图片描述

3. 个性化推荐的实践经验

以用户模型和物品属性数据为载体,结合多种推荐算法和效果优化策略,个性化推荐系统将用户最感兴趣的物品精准推荐给当前用户。不一样算法有本身的应用场景,因此根据业务须要、数据的丰富程度、效果衡量指标等选择合适的推荐算法,而后根据推荐结果进行不断迭代,最终完成符合预期效果的个性化推荐系统。


图片描述
个性化推荐流程

1) 基于内容的推荐
主要过程是将用户的信息特征和物品对象的特征相匹配的过程,从而获得待推荐的物品集合。经过用户模型中的类别、标签、品牌等各维度的偏好数据,在全量物品列表中寻找与之匹配的用户感兴趣的物品列表,并给出用户感兴趣的程度。根据挖掘的兴趣点,对部分用户进行有针对性的推荐,为其“量身定制”推荐结果,知足其特有的需求。基于内容的推荐方法,优势是能保证推荐内容的相关性,而且根据内容特征能够解释推荐结果,并且对新物品的推荐是也能有很好的考量。缺点是因为内容高度匹配,致使推荐结果的惊喜度较差,并且对新用户不能提供可靠的推荐结果。
2) 基于协同过滤的推荐
协同过滤方法主要基于群体智慧,认为类似的用户对新物品的喜爱也是类似的,类似的物品对于同一用户来讲,喜爱程度也是类似的。这种方法克服了基于内容方法的一些弊端,最重要的是能够推荐一些内容上差别较大可是又是用户感兴趣的物品。大体分为两类:基于近邻的方法和基于模型的方法。前者在数据预测中直接使用已有数据进行预测,将用户的全部数据加载到内存中进行运算。基于模型的方法则是经过数据进行模型训练,而后为用户预测新的物品,主要包括:pLSA(Probabilistic Latent Semantic Analysis)、LDA(Latent Dirichlet Allocation)、SVM(Support Vector Machines)、SVD(Singular Value Decomposition)等。
基于用户模型中的类似用户列表和偏好的物品列表,分别使用基于用户的和基于物品的协同过滤,将类似用户喜欢的物品和类似的物品加入到推荐的候选集当中。同时,推荐权重的计算会考量类似度的大小及物品自身的质量分。
3) 基于知识的推荐
当用户的行为数据较少同时又有明确的需求时,协同过滤和基于内容的推荐效果不尽人意,可是基于知识的推荐能够帮助咱们解决这类问题。这种方法不须要用户行为数据就能推荐,因此不存在冷启动问题。推荐结果主要依赖两种形式,一是用户需求跟物品之间类似度,一种是明确的推荐规则。实际应用主要是以强规则为主。
4) 补足策略
当用户历史数据比较局限或者在冷启动的时候,致使待推荐物品的数量不足没有达到预约要求时,根据用户模型的数据,结合挖掘的各类榜单进行补足,如全局热门、分类热门等。
5) 多算法融合
单一算法有各自的优缺点,并不能知足实际的线上需求。为了提供最优质的个性化推荐服务,保证推荐结果的多样性、新颖性和惊喜度,须要融合多个推荐算法,进行混合推荐。常见的混合方法有如下几种:
a) 加权式混合
主要是对每一个算法赋予不一样的权重,经过将多个推荐算法的结果进行加权组合在一块儿,最后排序获得推荐结果。


图片描述

不一样推荐算法的结果须要归一化在相同的范围内,而且各个算法的权重之和为1。

b) 交叉式混合
主要是直接将不一样的推荐算法的结果组合在一块儿推荐给用户,从而每一个推荐算法的优质结果都会被展现给用户。


图片描述

c) 切换式混合
主要是根据不一样应用场景决定使用哪种推荐算法,应用场景改变的话则切换推荐算法。例如在新闻推荐时,首先使用基于内容的推荐,当找不到合适的内容时,接着使用协同过滤算法进行跨内容的推荐,最后使用朴素贝叶斯分类器找到与用户长期兴趣匹配的结果。
d) 串联混合
主要是将不一样的推荐算法进行排序,后面的推荐算法对前面的不断优化,最终获得一个多级优化下的推荐结果。
e) 分级混合
主要是先界定不一样的算法的好坏,优先使用好算法的推荐结果,得不到结果时再使用次好的,依次类推。
达观数据在实践中充分利用了各类混合方法来提升推荐效果,并取得了优异的成效。例如基于加权式和分级混合的流程是,首先经过权重的大小来衡量每种推荐算法结果的好坏,产生待推荐的物品集合,在合并的时候,将优先使用好的推荐算法的结果。实践中则是各类指标综合权衡,整个过程也要复杂不少。(达观数据 于敬 陈运文)
6) 重排序
排序学习(Learning To Rank, LTR)一直是机器学习中的热门研究领域。因为排序过程牵涉到各类维度的参数数据,致使调参费时费力,并且极可能会出现过拟合现象。而机器学习方法不只有成熟的理论基础,并且很容易融合多种特征,经过不断的迭代来进行参数优化,可有效解决数据稀疏、过拟合等问题。著名的Netflix 公司就在他们的推荐系统中全面应用了LTR 技术。


图片描述
排序学习的流程

对于已标注的训练集,首先选定LTR方法,肯定损失函数,以最小化损失函数为目标进行优化便可获得排序模型的相关参数,这就是学习过程。预测过程将待预测结果输入学习获得的排序模型中,便可获得结果的相关得分,利用该得分进行排序便可获得待预测结果的最终顺序。LTR分按点(pointwise)、按对(pairwise) 和按表(listwise) 三种方法,涉及到的常见模型有LR(Logistic Regression)、SVM、DT(Decision Tree)。
关于排序模型的选择,LR 算法主要适用于特征数不少、样本量很大的状况。若是是样本量很大,可是特征比较少的状况时,建议使用DT的算法。主要是由于在特征数较少时,对应的问题每每是非线性的,此DT算法能够发挥自身的优点。另外,SVM在解决非线性分类问题是效果也很是好。相对于另外两种方法,按表的方法每每更加直接,它专一于本身的目标和任务,直接优化排序结果,所以每每效果也是最好的。
通过多个推荐算法的处理,最终获得待推荐物品的结合,使用少许维度的特征进行排序过于简单,效果也大打折扣。基于推荐算法获得的相关特征,结合物品和用户的特征进行组合,能够获得各类特征,而且有些特征是正相关有些是负相关,须要不断优化。借助机器学习方法获得了最终的物品排序,呈现给用户。

4. 结束语

本文从构建用户模型到个性化推荐,介绍了达观数据的一些实践经验。个性化推荐系统能有效解决信息过载和长尾物品两个方面的问题,不只提供了极佳的用户体检,知足了用户的信息需求,也帮助了企业挖掘其中蕴含的无限商机。达观数据一直致力于为企业提供优质的大数据服务,通过多年的摸索,目前在个性化推荐系统研发和效果提高方面已经积累了丰富的实战经验。固然新技术也在不断出现,深度学习的兴起也给个性化推荐效果的提高带来了更大的契机和想象空间,达观数据也在这方面进行不断探索,后续有机会再跟你们一块儿分享。(达观数据 于敬)

相关文章
相关标签/搜索