@[TOC]推荐系统
1.常用的推荐系统
- Netflix:电影推荐
- Amazon/Alibaba:相关产品推荐
- Google:网页排序(基于连接、每月排序、打分制)
- Facebook:社交推荐
- Yahoo:新闻内容推荐
2.难点
- 容量问题:百万级别的物品和亿级的用户
- 冷启动问题:当因为更改用户群、行为清单而造成无可借鉴的历史数据的问题
- 不平衡的数据集:用户的活动和物品评论采取幂级分布(power law distributed).
幂级分布又称为长尾分布
著名的二八法则:世界上百分之八十的财富被世界上百分之二十的人掌握。绝大多数的个体的尺度很小,而只有少数个体的初度相当大。如英语单词的使用频率,也可以采用这个规律学习少数的单词快速学会英语使用方式也称为最小努力原则。而用户对物品和评论的频率也采用这种分布。造成数据集的不平衡
3.常用的方法
3.1传统的方法
优点
- 直观
- 不需要持续训练
- 易于解释
- 易于处理新的用户和物品
- 准确率高、可扩展性强
3.1.1协调过滤(Collaborative Filtering)
基本思想
针对人与物体的交互进行分析,小人A与小人C交互的物品相似,则可以推荐C的交互物品给A
3.1.2内容推荐(Content-based Recommendations)
基本思想
对物品的信息内容分析,不针对交互行为分析
利用机器学习的方式,针对用户选择物品的特征描述符训练一个用户偏好的模型
推荐和用户之前选择相似的物品推荐给用户
优点
- 不需要别用户的数据/没有冷启动问题
- 推荐新的、不受欢迎的物品
- 对推荐的物品做出说明
- 利于解释
- 准确性强、可扩展
缺点
- 需要有意义的特征
- 一些物体很难提取特征
- 容易过拟合
- 用户的品味必须通过这些特征能让能表示为一个可被学习的函数
- 很难平滑的补充
3.2新的方法
3.2.1排序学习(Learning to Rank)
基本思路
- 通过训练的数据集构建一个排序模型
- 训练数据可以是偏序或者二元判断(相关/不相关)
- 标准的监督分类学习
1、逐点排序
·根据个体相关判断排序最小化损失函数
·基于回归或者排名分数
·排名分数可以通过回归分类、部分分类、逻辑回归、SVM、GBDT决定
2、两两排序
·通过两两偏好来定义损失函数
·由SVM, RankBoost, RankNet, Frank排序
3、列表排序
3.2.2内容感知推荐(Content-aware Recommendations)
-
Tensor Factorization
-
Factorization Machines
3.2.3深度学习(Deep Learning)
3.2.4相似度(Similarity)
形似可以指多种维度、包括用户行为、标签等,将这些维度形成的模型综合构造一个大型的模型
3.2.5信任网络推荐(Social Recommendations)
通过信任分权为用户,可以通过协同过滤、排序等筛选信任
也可以与其他方法结合
3.3混合方法
4.Next POI(point of interst)
为用户推荐符合用户喜好的未来可能会访问的POI
4.1基于矩阵分解的模型
学习用户的POI喜好,按照偏好程度推荐POI,并不考虑用户实时需求。
4.2多源数据融合
多源数据融合是通过多种方面来刻画用户的喜好,提高推荐的精确度。包括地理位置】类型数据】文本数据、访问时间、社交网络数据等综合考虑。
4.3基于序列挖掘的模型
用户的访问序列对下一个POI可能产生影响。
马尔科夫模型
深度学习模型
CNN, RNN,NLP 等序列模型,直接学习每一个POI在下一个时间点会被访问的概率