协同过滤在应用中存在的问题以及解决协同过滤中稀疏性问题的方法。
1 协同过滤在应用中存在的问题
尽管协同过滤在电子商务推荐系统中的应用获得了较大的成功,但随着站点结构、内容复杂度和用户人数的不断增加,基于协同过滤的推荐系统的发展面临着两个主要挑战:
1) 提高协同过滤算法的可扩展性
协同过滤算法能够容易地为几千名用户提供较好的推荐,但是对于电子商务网站,往往需要给成百上千万的用户提供推荐,这就一方面需要提高响应时间的要求,能够为用户实时地进行推荐;另一方面还应考虑到存储空间的要求,尽量减少推荐系统运行的负担。
2) 提高对用户推荐信息的质量
用户需要得到值得信任的推荐来帮助他找到喜欢的产品。假如用户相信推荐购买了商品,而后发现并不喜欢,用户对推荐系统推荐结果的信任度降低,同时将不愿再次使用该推荐系统。
从一定意义上讲,推荐系统面临的这两个挑战之间存在着矛盾,系统要提高算法的可扩展性及响应时间,在质量上必然会有所损失。因此,如何协调好这两方面的要求,使推荐系统不仅有用而且实用,是实现协同过滤技术需要考虑的重要因素。
为了能够更好地改进协同过滤技术,适应推荐系统发展的需要,首先要分析协同过滤在实现过程中存在的问题,从而进行有针对性的改进。通过对协同过滤技术以及推荐系统的研究,我们发现协同过滤技术的实现中存在的问题主要有以下几点。
1.1 稀疏性问题
协同过滤技术的实现首先需要使用用户—项评价矩阵对用户信息进行表示,尽管这在理论上很简单,但实际上,许多电子商务推荐系统要对大量的数据信息进行处理,而在这些系统中一般用户购买商品的总量占网站总商品量的1%左右,因此造成了评价矩阵(用户-项矩阵)非常稀疏。在这种数据量大而且又稀疏的情况下,一方面难以找到最近邻居用户集,另一方面进行相似性计算的耗费也会很大。
同时,由于数据非常稀疏,在形成目标用户的最近邻居用户集时,往住会造成信息的丢失,从而导致推荐效果的降低。例如,邻居用户关系传递性的丢失。用户A与用户B相关程度很高,用户B与用户C相关程度也很高,但由于用户A与用户C很少对共同的产品进行评价,而认为两者关联程度较低,由于数据的稀疏性,丢失了用户A与用户C之间潜在的关联。
1.2 冷开始问题
又称第一评价问题(first- rater),或新项目问题(New-item),从一定角度可以看成是稀疏问题的极端情况。因为传统的协同过滤推荐是基于邻居用户资料得到目标用户的推荐,在一个新的项目首次出现的时候,因为没有用户对它作过评价,因此单纯的协同过滤无法对其进行预测评分和推荐。而且,由于新项目出现早期,用户评价较少,推荐的准确性也比较差[25]。相似的,推荐系统对于新用户的推荐效果也很差。冷开始问题的极端的案例是:当一个协同过滤推荐系统刚开始运行的时候,每个用户在每个项目上都面临冷开始问题。
1.3 可扩展性问题
在协同过滤推荐算法中,全局数值算法能及时利用最新的信息为用户产生相对准确的用户兴趣度预测或进行推荐,但是面对日益增多的用户,数据量的急剧增加,算法的扩展性问题(即适应系统规模不断扩大的问题)成为制约推荐系统实施的重要因素。虽然与基于模型的算法相比,全局数值算法节约了为建立模型而花费的训练时间,但是用于识别“最近邻居”算法的计算量随着用户和项的增加而大大增加,对于上百万的数目,通常的算法会遇到严重的扩展性瓶颈问题。该问题解决不好,直接影响着基于协同过滤技术的推荐系统实时向用户提供推荐问题的解决,而推荐系统的实时性越好,精确度越高,该系统才会被用户所接受。
基于模型的算法虽然可以在一定程度上解决算法的可扩展性问题,但是该类算法往往比较适于用户的兴趣爱好比较稳定的情况,因为它要考虑用户模型的学习过程以及模型的更新过程,对于最新信息的利用比全局数值算法要差些。
分析以上协同过滤在推荐系统实现中面临的两个问题,它们的共同点是均考虑到了最近邻居的形成问题(包括用户信息获得的充分性、计算耗费等)。但是应该看到协同过滤在推荐系统的实现中,要获得最近邻居用户,必须通过一定的计算获得用户之间的相似度,然后确定最佳的邻居个数,形成邻居用户集。而在这一过程中,如果对全部数据集进行相似性计算,虽然直接,但是运算量和时间花费都极大,无法适应真实的商务系统。如果通过对训练集数据(整个数据集的某一子集)进行实验获得,虽然不必对整个数据集进行计算,但是必须通过将多次实验结果统计出来才可能得到,这无疑也增加了推荐结果获得的代价和误差。并且如果考虑到数据集的动态变化,这一形成最近邻居用户集技术的实际应用价值越来越小。因此,考虑使用更为有效的最近邻居用户形成办法,对于协同过滤的应用非常必要。
2 解决协同过滤中稀疏性问题的方法
 ......More↓↓↓