可以推荐给用户的项目由一组功能表示。例如,每部电影都与某些特征相关联,例如流派,演员,主题和日期。当每个项目由一组特征描述并且这些特征的值是已知的时,这些项目可以由结构化数据表示。当数据没有结构时,如文本的情况,需要预处理步骤来提取相关的结构化信息。这种组件的主要任务是以适合在后续处理步骤中使用的形式表示项目的内容,例如,文档,网页,新闻项目和产品描述。使用特征提取技术分析数据项以将项目表示从原始信息空间转移到目标空间。例如,
用户个人资料
该组件基于从先前喜欢和不喜欢的项目推断的用户兴趣来创建模型。通常,使用机器学习技术来实现泛化策略,所述机器学习技术能够从过去喜欢或不喜欢的项目推断用户兴趣的模型。例如,对于基于用户的阅读历史的新闻推荐,可以结合新闻文章的各种属性,例如新闻内容,访问模式和命名实体,以构建用户简档。然后将该配置文件用作项目的表示,以用于识别适合于目标用户的项目。该表示通常由加权特征的向量组成:权重越大,用户喜欢该特征的越多。向量的大小对应于特征的数量。存在几种可用于从项目简档构建用户简档的方法。可以基于用户评估的项目的简档将每个用户简档计算为平均向量。
学习用户模型
此模块利用用户的配置文件通过将配置文件表示与要推荐的项目匹配来建议相关项目。结果可以基于使用各种相似性度量的二元或连续相关性判断。
在这种方法中,不是使用项目的特征来确定它们的相似性,而是将重点放在项目的用户评级的相似性上。例如,在电影推荐中,为了预测
电影i的用户u的评级,协同过滤技术试图识别与你相似的用户,即在电影中具有相似品味的其他用户(即,他们对相同的电影评分下同)。然后,该技术聚合具有相似评级模式的用户表达的评级,并计算给定用户的预测评级。
协同过滤是迄今为止最普遍的推荐技术,因为它的功能和简单性。协作技术的最大优势在于它们完全独立于所推荐对象的任何机器可读表示,并且可以有效地应用于复杂对象,例如音乐和电影,用户可能由于多种原因而喜欢或不喜欢这些对象。例如,用户可能喜欢某种类型的电影,特定的导演,特定的演员或女演员等。协作过滤通常被称为社交过滤,因为该技术基于他们的评级识别用户之间的共性并产生新的基于用户间比较的建议。
协同过滤系统中使用的算法可以分为两大类:基于内存(或基于启发式)和基于模型的算法。
基于内存的算法根据用户过去的评级为用户提供评级预测。基于存储器的方法应用启发式方法,其使用全部或样本的用户项数据来生成预测。使用基于存储器的协同过滤(CF)的两种通用方法:基于用户的协同过滤和基于项目的协同过滤。基于用户的协同过滤通过首先识别与给定用户相似(最近邻居)的用户然后计算给定用户未看到的最频繁评级的项目来为给定用户产生预测。例如,用于书籍的协作过滤推荐系统可以建议未被给定用户读取但已被具有相似品味的用户读取的书。
基于模型的算法基于过去的评级对用户进行建模,然后推荐系统使用这些模型来预测未评级项目的评级。在该方法中,在算法学习模型之后,它不再需要访问每个评级并且可以使用模型参数来计算其预测。基于模型的方法(例如机器学习和数据挖掘算法)用于设计和开发模型,允许系统基于训练数据学习复杂模式,然后基于所学习的模型提供预测。这种方法的优点是在学习模型后,系统不再需要访问每个评级,模型参数可用于计算预测; 然而,学习阶段可能是耗时的。相比之下,
另一种制定建议的流行方法是使用混合方法。可以单独实现协作和基于内容的系统并组合结果,从而将一种方法的特征结合到另一种方法中,或者创建具有两种方法特征的统一模型。使用这种技术有助于缓解基于内容和协作系统的某些限制。
・
实施协作和基于内容的方法并结合其预测
・
一些基于内容的特征纳入协作方法
・
一些协作特征纳入基于内容的方法中
・
构建包含基于内容和协作特征的通用统一模型