推荐系统多样性问题 20200409
多样性包含三个方面的含义,
-
个体多样性:从单个用户的角度来衡量的推荐系统多样性,主要考察系统能够找到用户喜欢的冷门项目的能力。
-
与个体多样性不同,总体多样性主要强调对不同用户有不同的推荐。
可以通过长尾理论考察推荐系统多样性对产品销售的影响。多样性程度高的系统可以带动不太流行的商品的销量。 -
时序多样性:推荐随着用户偏好(随时间)变化而改变。
提高多样性的方法:
-
信息物理方法:
将物理学中的物质扩散和热传导理论应用到推荐系统中。利用二阶关联法快速去除带权重的用户-物品二部图网络结构中可能存在的对于同一个对象的推荐的冗余信息。 -
社会化标签系统:
用户 项目 标签 -
二次优化方法
主题多样性:在协同过滤得到推荐列表,然后根据ILS(intra -list similarity)进行物品之间两两相似性的判断,分别计算相似性排名和不相似性排名,然后分配权重得到最终排名。
二次优化方法
-
目标函数优化
y为推荐集合R的向量表示,D为y的距离矩阵,p为R集合的项目个数,则R的多样性为二次式:
然后找到$y^*$,使得目标函数最大化
$ heta$是用来平衡精确性和多样性的参数。 -
目标模型分割
用户的兴趣是很难找到完全相似的,所以吧用户的兴趣模型分割为M个聚类,每一个聚类都可以被定义为:
对每一个聚类产生推荐列表,然后聚合。聚类前可以用SVD降维。 -
推荐解释多样性
推荐解释告诉用户为什么会被推荐,一般是基于-
项目解释
-
用户群解释
-
功能解释
然后对不同的解释性做多样性距离计算。
-
-
用户相似性幂律调节
通过幂函数调整协同过滤方法中用户的相似性得分。 -
优先-中心点
对推荐列表进行聚类分析,找到聚类中中心点,然后再选出$rep(i)$,得分大于等于$i$,且距离接近,那么我们称$rep(i)$组成的项目集合为这个聚类的优先-中心点。这个方法提高推荐列表的多样性。 -
二次排序算法
标准排序后,做流行程度排序。再基于之前结果参考再做一次参数排序。
社会化网络方法
- 通过社会过滤机制,融入社会网络信任到推荐系统。通过主题多样性好的信任邻居来平衡准确性和多样性。
时间感知方法
- 连续时间感应推荐方法将时间信息作为变量,使用KNN方法。
- 分类时间感知推荐算法,把时间作为离散变量,做时间向前过滤和时间向后过滤算法,前者过滤无关信息,后者用二维推荐方法生成推荐。