微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

相似性度量方法影响因素

现在探讨一下,相似性度量方法存在问题以及解决方法

1. 冷热物品差异化

设想这样一种情况:两个用户同时评价了电影``Titanic'',但这对于推荐系统来讲,并没有提供多少有价值的信息,因为这部电影太火了,而如果两个用户一个很冷门的电影做了评分,则这条记录提供的信息很有价值。即,让用户对有争议的物品达成共识,会比对广受欢迎的物品达成共识更有价值。

1. 方差因子法

以pearson 相关系数为例,通过增加一个方差权重因子,重新评估相关性。即pearson 相关系数可以表示成两个用户评分的协方差,其中评分经过z-score 变换(均值为0,标准差为1),变换公式为:

z-score=\frac{x-\overline{x}}{sd(x)}~~~~~~(1)

sim_{u,v}=\frac{\sum_{i=1}^m(r_{u,i}-\overline{r_u})(r_{v,i}-\overline{r_v})}{\sigma_u\sigma_v}~~~~~~(2)


那么,公式(2)可以改写为:

sim_{u,v}=\frac{\sum_{i=1}^m var_i*z_{u,i}*z_{v,i}}{m}~~~~~~(3)

上式中,

var_i=\frac{VAR_i-VAR_min}{VAR_max}~~~~~~(4)

VAR_min,VAR_max

分别表示所有item评分的最小与最大方差。

VAR_i=\frac{\sum_{u=1}^n(r_{u,i}-\overline{r_i})}{n-1}~~~~~~(5)

那么,式(5)的目的是通过方差因子,增加高方差item的影响力,同时降低低方差item的影响力。从实验来看,改进后的效果有一定提升。

2. 反用户频率

通过对物品的评分进行变换,降低对广受欢迎物品有同样看法的相对重要性,这类似于信息检索领域突出的逆文档频率概念,这里称为反用户频率。

用户频率指,对某个物品(item),关注的用户越多,则其重要性就越低。

定义物品的反用户频率为:

f_i=log\frac{n}{n_j}

~~~~~~(6)

上式中,

n_j

代表,对物品j评过分的用户数,n代表用户总数。如果所有用户都评价过j,则

f_j=0

则,使用反用户频率的用户相似度计算方法:

sim_{u,v}=\frac{\sum_{j}f_j\sum_{j}f_ju_jv_j-(\sum_{j}f_ju_j)(\sum_{j}f_jv_j))}{\sqrt{UV}}~~~~~~(7)

其中:

U=\sum_jf_j(\sum_{j}f_ju_j^2-(\sum_{j}f_ju_j)^2)~~~~~~(8)

V=\sum_jf_j(\sum_{j}f_jv_j^2-(\sum_{j}f_jv_j)^2)~~~~~~(9)

2. 共同评分用户

前文提到的相似性度量方法没有考虑到两位用户共同评分的物品数,事实上,基于近邻评分的预测方法在遇到当前用户只为非常少的共同物品评分时会导致极其不准确的预测结果。

1.赋权因子法

当两个用户共同评分物品数少于50的时候,二者的相似性权重调整为:

sim(u,v)^{'}=sim(u,v)*weight~~~~~~(10)

,其中

weight=n/50

,n为用户u,v的共同评分物品数,当

n>=50

的时候,weight=1。

这是一种基于线性化简相似度权值的简单方法,在用户共同评分物品小于50的时候,该方法的预测准确率提升非常明显,但是当评分数据集更小的时候,可能无法找到太多有50个共同评分物品的用户

3. 数据稀疏

在推荐系统中,涉及到的用户评分矩阵往往非常稀疏,用户一般只会评价(或购买)少数物品。这种情况的挑战是,用相对较少的有效评分,得到较为准确的预测结果。

1. Additional Input source

在实际的环境中,除了用户评分这类显式反馈(explicit Feedback)信息之外,还有很多隐式的信息(implicit Feedback),如用户的购买、浏览、搜索记录等,这些信息不能直接提供诸如评分之类的信息,但可以从侧面反映用户对操作过的物品的偏好兴趣。比如一个用户买了很多同一作者的书,那么我们有理由认为该用户喜欢这个作者。
不同于显式反馈,隐式反馈主要有以下特点:
1. 没有负反馈。不像显式反馈,比如like 和dislike,隐式反馈仅提供正反馈,比如用户浏览了某商品,则认为用户对该商品在一定程度上感兴趣,而对于用户没有浏览的商品,并不能说明用户不感兴趣,可能仅仅用户没有注意到。
2. 反馈结果并不明确,只是对用户行为的一种猜测,这种结果包含诸多噪声。
3. 显式反馈中的数值,比如评分表示用户对物品的偏好(preference),而隐式反馈的数值则表示置信度(confidence),描述了用户动作(比如浏览)的频繁程度(frequency of actions)。
总结如图(1):

1

                                                                                                                                       图 1

在实际环境中,基于隐式反馈的推荐效果和基于显式反馈的推荐几乎相当。具体的使用方法可以参考[1]和[2].

还可以整合其他数据来源,比如用户的社交网络信息(weibo),搜索引擎搜索等等。

2. 基于图模型的方法[3]

其主要思想是,假定用户品味具有“传递性”,并将用户评分矩阵转换成用户和物品的双向图。通过图的节点之间存在的关系,用来增强原始的评分矩阵信息,这类似于使用递归方式来增强临近关系。

给定用户-物品矩阵

2

                                                                                                                                                        图 2

基于图模型的策略,就是将该矩阵转换为图模型 见图(3):

3


图  3
3. 缺省投票

    这种思路就是给那些只有一两个用户评过分的物品赋以缺省值,这样可以提高稀疏评分数据上的预测质量。

这些人工缺省投票就像一种缓冲机制,能够减少那些个别巧合因素对相似度的影响。 但是,在实际情况中,这种方法效果不理想。

设定缺省值的方法主要有以下两种方式。

1 )大多数情况下,缺省值设置为中值或稍低的值,也可以设置为用户的评分均值或者项目的评分均值。但是该填充
方法存在的问题是用户对项目的评分不可能完全相间,以这种方法填充的评分矩阵的可信度不高。

2) 众数法。众数是指一组数据中出现频率最高的数,采用众数法对未评分项目进行赋值,即采用目标用户所有评分
的众数作为未评分项目的预测值,但是众数法存在"多众数" (有两个或两个以上的评分值出现的次数都是最多)和
"无众数" 所有评分值出现的次数都一样)的问题,导致这种方法的应用局限性很大。

一种称为“综合均值优化评分”[4]的方法,能在一定程度解决上述问题。
综合均值优化评分由优化了的用户平均评分和优化了的项目平均评分两部分组成。设

r_{u,i}

为计算得到的用户u对未评分项目t的评分值。首先从评分矩阵的行和列的角度对评分矩阵的未评分项进行估计,然后再综合处理得到未评分项的最终评分值。具体计算步骤如下:
1. 计算目标项目t的用户优化评分值

r_u

r_u=\overline{r_u}+\frac{\sum_{m=1}^M(r_{m,t}-\overline{r_t})}{M}~~~~~~(11)

式中,M为用户空间中对项目t有评分的用户数。

2. 计算目标项目t的项目优化评分值

r_t

r_t=\overline{r_t}+\frac{\sum_{c=1}^C(r_{u,c}-\overline{r_u})}{C}~~~~~~(12)

3. 计算用户u对项目的评分

r_{u,t}

r_{u,t}=\sqrt{r_u*r_t}~~~~~~(13)

4关于冷启动问题

其实冷启动问题,是矩阵稀疏问题的一个特例,此类问题包括:

(1) 如何向还没给任何物品评过分的新用户推荐;

(2) 如何处理从未被操作过的新物品

这两类问题都可以通过混合问题来解决,即结合外部信息(用户的tag,物品的tag等)。

这里讨论几种,对新用户进行推荐的策略。

1. 热门榜单TOP榜,方法很简单,但是新颖程度不够,且每个新用户推荐的结果是一样的。

2. 随机推荐,从物品库里面随机取出某物品推荐给用户,有足够的覆盖度,但实际证明效果很差,推荐结果很盲目。

3. 热门榜单随机推,即1,2中策略联合。

4. 根据物品评分的方差和熵信息来推荐,这种策略考虑到冷门物品和有争议的物品,评分方差越大或者熵越大,越说明物品有争议。 这种策略和方法3 效果差不多。

 

Reference:

[1]Collaborative Filtering for Implicit Feedback Datasets.

[2]Implicit Feedback Recommendation via Implicit-to-Explicit Ordinal Logistic Regression Mapping.

[3]Applying Associative Retrieval Techniques to Alleviate the Sparsity Problem in Collaborative Filtering

[4]优化稀疏数据集提高协同过滤推荐系统质量的方法

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐