«上一篇 下一篇»
  计算机工程  2019, Vol. 45 Issue (10): 215-220  DOI: 10.19678/j.issn.1000-3428.0052499
0

引用本文  

王光, 姜丽, 董帅含, 等. 融合本体语义与用户属性的协同过滤算法[J]. 计算机工程, 2019, 45(10), 215-220. DOI: 10.19678/j.issn.1000-3428.0052499.
WANG Guang, JIANG Li, DONG Shuaihan, et al. Collaborative Filtering Algorithm Combining Ontology Semantics and User Attribute[J]. Computer Engineering, 2019, 45(10), 215-220. DOI: 10.19678/j.issn.1000-3428.0052499.

基金项目

国家自然科学基金(71371091);国家自然科学基金青年科学基金(61401185)

通信作者

姜丽(通信作者), 硕士研究生

作者简介

王光(1979-), 男, 副教授、硕士, 主研方向为智能数据处理、数据挖掘、自然语言处理;
董帅含, 硕士研究生;
李丰, 学士

文章历史

收稿日期:2018-08-27
修回日期:2018-10-23
融合本体语义与用户属性的协同过滤算法
王光 , 姜丽 , 董帅含 , 李丰     
辽宁工程技术大学 软件学院, 辽宁 葫芦岛 125105
摘要:传统协同过滤推荐算法在处理海量数据时存在数据稀疏性和项目长尾效应,导致推荐精度较低。针对该问题,结合本体语义和用户属性,提出一种改进的协同过滤算法。利用本体计算项目之间的语义相似度,构建项目相似度矩阵,同时引入用户属性计算用户相似度矩阵。通过融合本体语义和用户属性形成用户-项目评分矩阵,并对该矩阵的预测评分进行加权处理,生成TOP-N推荐结果。实验结果表明,相比传统皮尔逊相似度计算协同过滤算法、基于本体语义的协同过滤算法和基于评分矩阵填充与用户兴趣的协同过滤算法,该算法的平均绝对误差较低,准确率较高,综合性能及新颖度较优。
关键词协同过滤    本体语义    用户属性    相似度    长尾效应    
Collaborative Filtering Algorithm Combining Ontology Semantics and User Attribute
WANG Guang , JIANG Li , DONG Shuaihan , LI Feng     
School of Software, Liaoning Technical University, Huludao, Liaoning 125105, China
Abstract: When dealing with massive data, the traditional collaborative filtering recommendation algorithm has the data sparsity and the long tail effect of the items, resulting in low recommendation accuracy.Aiming at this problem, combining ontology semantics and user attributes, this paper proposes an improved collaborative filtering algorithm.The item similarity matrix is constructed by using ontology to calculate semantic similarity between items.User attributes are introduced to calculate user similarity matrix.The user-item scoring matrix is formed by integrating ontology semantics and user attributes, and the prediction score of the matrix is weighted to provide the TOP-N recommendation results.Experimental results show that compared with Pearson similarity calculation collaborative filtering algorithm, collaborative filtering algorithm based on ontology semantics, and collaborative filtering algorithm based on scoring matrix filling and user interest, the proposed algorithm has the lowest mean absolute error and the highest precision, and its integrity and novelty are superior.
Key words: collaborative filtering    ontology semantics    user attribute    similarity    long tail effect    
0 概述

信息时代互联网的数据规模呈指数式增长, 从信息匮乏到信息过载的快速转变导致数据的利用率降低。为了向用户提供个性化的推荐服务, 提高数据的利用率, 推荐系统应运而生, 其作为有效解决信息过载问题的手段之一, 可以帮助用户在极短的时间内获取其需要的信息。

推荐系统的核心问题是推荐算法, 其中协同过滤算法已被成功应用于邮件过滤系统[1-2], 其作为近年来推荐算法的研究热点之一, 主要分为基于模型的协同过滤算法与基于记忆的协同过滤算法。基于模型的协同过滤算法是根据用户的历史相关信息训练一个推荐模型, 利用该模型对用户的行为进行预测和推荐。基于记忆的协同过滤算法分为用户协同过滤[3]与项目协同过滤[4], 其核心思想为:通过历史用户与项目之间的关联信息(如点击、浏览、评分等), 计算目标用户/项目与所有用户/项目之间的相似度, 找到与目标用户相似的邻居, 根据邻居用户对该项目的评分进行预测和推荐。协同过滤算法的优势在于共享他人经验, 避免数据分析的不完全和不精准, 有效利用其他相似用户的信息来进行推荐, 加快个性化推荐的速度。但随着数据量的增大, 传统的协同过滤算法存在数据稀疏和长尾项目较少被推荐等问题。针对评分数量较少的情况下, 传统相似度计算不能准确衡量用户偏好的问题, 研究人员做了大量工作, 例如:文献[5]融合基于记忆的协同过滤算法和本体语义技术, 提升了推荐的准确率; 文献[6]提出一种将语义相似度与矩阵分解技术结合的评分预测算法, 提高了协同过滤算法中稀疏矩阵预测评分的准确性; 文献[7]通过改进协同过滤中近邻的相似度计算方法, 提高了推荐的精度; 文献[8]改进了相似度计算中用户属性的存在关系, 提出了一种用户属性相似度方法, 进一步提升了推荐的质量。对于长尾问题, 研究人员通过对项目的流行度添加惩罚项予以缓解。文献[9]提出一种推荐方法, 通过长尾分布约束由用户间相似关系计算的推荐权重。该算法从一定程度上缓解了项目的长尾效应。文献[10]将整个物品构成的集合分为头部和尾部2个部分, 并对评分数目较少的尾部进行聚类。该算法一定程度上缓解了长尾项目的推荐问题。

为了进一步提高推荐算法的准确率, 解决长尾数据的有效推荐问题, 文献[11]通过构建用户本体, 运用本体语义相似度计算用户之间的相似度, 提高了推荐的准确率。文献[12]运用组合进行推荐的方法, 综合用户多属性相似度与隐性标签的用户兴趣相似度, 有效缓解了矩阵稀疏性问题。在此基础上, 本文提出一种融合本体语义与用户属性的协同过滤推荐算法ONU-CF。通过本体语义相似度算法计算项目之间的相似度, 同时在计算用户之间的相似度时引入用户属性, 即用户的兴趣度和用户在不同项目上评分的差异性, 通过综合项目相似度与用户相似度, 对项目的预测评分进行加权处理, 生成TOP-N推荐。

1 传统协同过滤算法

传统基于用户的协同过滤算法根据用户对项目的兴趣偏好, 向目标用户推荐与其兴趣偏好相符合的个性化推荐项目, 其具体过程为:首先在数据集中搜寻与当前用户有相似偏好的其他用户, 作为当前的用户邻居集; 其次通过用户邻居集中用户对项目的评分, 预测当前用户对该项目的可能评分情形, 进而通过迭代, 直到预测出当前用户对于数据集中所有未评分项目的可能评分值; 最后将预测出评分的项目, 根据评分的高低进行排序, 将评分最高的N个项目推荐给当前用户。基于用户的协同过滤算法推荐过程如图 1所示。

Download:
图 1 基于用户的协同过滤算法推荐过程

在相似度计算过程中, 使用用户-项目评分矩阵R来表示用户对项目的评分信息, 如表 1所示。其中, 用户的集合为{u1, u2, …, um}, 项目的集合为{i1, i2, …, in}, 用户未对项目评分的值为0。

下载CSV 表 1 用户-项目评分矩阵

用户之间的相似度, 通常有余弦相似度、修正的余弦相似度以及皮尔逊相关系数等。

1) 余弦相似度:

$ Sim(u,v) = \frac{{\sum\limits_{i \in {T_{uv}}} {{r_{ui}}} {r_{vi}}}}{{\sqrt {\sum\limits_{i \in {T_{uv}}} {r_{ui}^2} \sum\limits_{i \in {T_{uv}}} {r_{vi}^2} } }} $ (1)

2) 皮尔逊相关系数:

$ \mathit{Sim}(u,v) = \frac{{\sum\limits_{i \in {T_{uv}}} {\left( {{r_{ui}} - \overline {{r_u}} } \right)} \left( {{r_{vi}} - \overline {{r_v}} } \right)}}{{\sqrt {\sum\limits_{i \in {T_{uv}}} {{{\left( {{r_{ui}} - \overline {{r_u}} } \right)}^2}} } \sqrt {\sum\limits_{i \in {T_{uv}}} {{{\left( {{r_{vi}} - \overline {{r_v}} } \right)}^2}} } }} $ (2)

3) 修正的余弦相似度:

$ \mathit{Sim}(u,v) = \frac{{\sum\limits_{i \in {T_{uv}}} {\left( {{r_{ui}} - \overline{ r_u}} \right)\left( {{r_{vi}} - \overline{ r_v}} \right)} }}{{\sqrt {\sum\limits_{i \in {T_u}} {{{\left( {{r_{ui}} - \overline{ r_u}} \right)}^2}} } \sqrt {\sum\limits_{i \in {T_v}} {{{\left( {{r_{vi}} - \overline{ r_v}} \right)}^2}} } }} $ (3)

在式(1)~式(3)中, rij表示用户i对项目j的评分信息, $\overline {r_{u}}$$\overline {r_{v}}$分别表示用户uv的评分平均值, TuTv分别表示用户uv的评分的项目集合, Tuv表示用户uv共同评分的项目集合。

目标用户对项目的预测评分值计算公式如下:

$ {\hat r_{ui}} = \overline{ r_u} + \frac{{\sum\limits_{v \in V(u)} {sim} (u,v)\left( {{r_{vi}} - \overline{ r_v}} \right)}}{{\sum\limits_{v \in V(u)} | sim (u,v)|}} $ (4)

其中, $\hat r_{ui}$表示目标用户u对项目i的预测评分, V(u)表示用户u的近邻集合。最终根据最近邻集合预测结果生成推荐列表。

2 ONU-CF推荐算法 2.1 本体语义相似度

本体的概念语义相似度是语义网的核心技术, 是自然语言处理中的重点, 近年来被广泛应用于信息检索、人工智能、推荐系统、知识工程等方面[13]。领域本体使用基于本体树或以树为主体的图结构的语义相似度计算方法, 来描述类之间的语义关系, 利用项目的类型及属性计算项目之间的语义相似度。而基于本体树或以树为主体的图结构的相似度计算方法, 则根据本体的概念语义计算过程定义各不相同。基于本体树的计算方法主要考虑层次结构中上下位相连的关系, 如WordNet中的“is a”关系。而在以树为主体的图结构计算过程中, 除了将上下位关系作为主要链接概念节点外, 还考虑概念节点中其他的少量类型关系, 例如WordNet中的“part of”关系。利用WordNet名词概念, 以树为主体的图结构示例如图 2所示。

Download:
图 2 以树为主体的图结构

本体语义相似度的计算方法按照原理划分可分为4种:基于语义距离的相似度计算方法, 基于属性的相似度计算方法, 基于信息内容的相似度计算方法以及混合相似度计算方法。在推荐系统中, 基于属性的相似度计算方法应用较广泛。在计算项目相似度时, 通过项目之间的属性和概念信息来识别或区分不同的项目, 而不同项目之间公共属性越多, 其语义相似度就越大。本文采用基于属性的相似度方法来计算推荐项目之间的相似度。

本体知识通常由概念和其他语义信息的树形结构层次来组织, 其中领域本体通常表示为特定域中的概念及其关系。本文参考Bouza根据OWL标准在苏黎世大学创建的电影领域本体MO(http://www.movieontology.org/), 从语义层面上建模, 提取电影之间的隐藏特征。在项目相似度计算过程中使用MO本体来模拟, 采用基于本体树的结构来描述类之间的语义关系, 计算基于本体语义的项目之间的相似度。基于本体树的方法可以包括整个领域本体, 为了简单起见, 本文只关注MO本体的流派子树。图 3为流派树形结构的示例。

Download:
图 3 电影流派子树

树形结构开始于类型为Thing的电影节点, 通过“is a”关系类型连接到不同流派分支(分别为动画、恐怖、浪漫、冒险、动作)。其次, 通过电影之间的流派关系, 将电影相互关联。根据电影之间的流派属性, 通过二元Jaccard相似系数计算电影对之间的语义相似度, 从而构建项目相似度矩阵。语义相似度计算公式为:

$ \mathit{Sim}(x,y) = {K_{11}}/\left( {{K_{01}} + {K_{10}} + {K_{11}}} \right) $ (5)

其中, K11表示电影xy都具有流派的数量, K01表示电影x不具有而电影y具有流派的数量, K10表示电影x具有而y不具有流派的数量。

将电影表示为向量Vi=(vi, 1, vi, 2, …, vi, g), 其中, g表示电影流派的数量。当电影中存在流派属性j, 则vi, j=1, 当电影与流派j无关联流派属性, 则vi, j=0。如图 3所示, 电影A(vA=(1, 0, 0, 0, 0))与电影B(vB=(1, 1, 0, 0, 0))都含流派Animation, 故K11=1;对于流派Thriller, 电影A没有, 而电影B有, 故K01=1;不存在电影A含有某电影流派, 而电影B不含该流派的情形, 故K10=0。因此, 电影A和B之间的相似度Sim(A, B)=1/(1+0+1)=0.5。

2.2 用户属性相似度计算

推荐系统的重要意义是挖掘用户感兴趣的信息, 提高信息的使用效率和价值, 同时满足用户的需要。传统的相似度计算只考虑到项目的共同评分, 忽略了不同用户对项目的偏好问题, 针对这一问题, 本文在相似度计算过程中, 引入用户属性进行推荐。在本文中, 用户属性分为用户兴趣度和用户差异性。

2.2.1 用户兴趣度相似度计算

用户在某个项目的某个类别上评分越高, 用户之间的相似性越高。考虑到用户针对不同类别评分的偏好, 本文引入兴趣度因子。用户兴趣度向量Interestu=(Iu, 1, Iu, 2, …, Iu, n), 其中, Iu, i=ωu, i/ωu为用户u对项目i的兴趣度, ωu, i为评分高于平均分的值, ωu表示评分高于平均分的累加值, 则2个用户的兴趣相似度计算如下:

$ \mathit{Si}{\mathit{m}_{{\rm{interest}}}}(u,v) = \cos \left( {\mathit{\boldsymbol{Interes}}{\mathit{\boldsymbol{t}}_u},\mathit{\boldsymbol{Interes}}{\mathit{\boldsymbol{t}}_v}} \right) $ (6)
2.2.2 用户差异相似度计算

本文在考虑用户之间兴趣因子的同时, 还根据不同用户对项目的评分表现, 将用户差异性因子引入到相似度计算中, 其计算公式为:

$ \mathit{Si}{\mathit{m}_{r,j}}\left( {u,v} \right) = \frac{{\sum\limits_{i \in {I_{uv}}} {\frac{{\mathit{max} - \left| {{R_{ui}} - {R_{vi}}} \right|}}{{\mathit{max} - \mathit{min}}}} }}{{\sum\limits_{i \in {I_{uv}}} {\left| {{R_{ui}} - {R_{vi}}} \right|} + \sum\limits_{j \in {I_u} \cup {I_v} - {I_{uv}}} {\left| {{R_{uj}} - {R_{vj}}} \right|} }} $ (7)

其中, Iuv表示用户u和用户v对项目的共同评分, $ \frac{{max-|R_{ui}-R_{vi}|}}{{ max-min}}$表示用户uv对项目i共同评分的误差值, IuIvIuv表示用户对项目的评分与其共同评分的差值, |RujRvj|用来衡量用户之间的差异性。|RujRvj|的值越小, 表示用户之间的相似度越高。本文通过引入用户之间的差异性, 反映了共同和非共同项目集对推荐结果的影响, 弥补了余弦、皮尔逊相关系数等只考虑用户对项目的共同评分问题。

2.3 项目长尾效应

协同过滤算法可以根据历史信息挖掘用户的偏好, 为用户提供个性化推荐。但随着数据量的不断扩大, 一些算法很难保证推荐项目的新颖度。例如在电商领域, 流行度、销量越高的产品被推荐的次数和比率越高, 冷门的、销量低的产品被忽略。这个问题就是长尾问题[14]。数据量越大, 长尾问题表现得越严重。MovieLens 1M数据集的长尾现象如图 4所示。其中, y轴代表每个项目被评级的数量, x轴代表项目的等级。第一条垂线将前20%的项目按受欢迎程度分开, 它吸引了更多的用户关注。第二条垂线将数据的尾部分为两部分, 第一部分称之为项目的长尾效应, 评分数量较少而不被关注。而传统的协同过滤算法根据历史评级信息进行推荐, 在评分数量较少的情况下, 会导致长尾项目很难被推荐。

Download:
图 4 MovieLens 1M数据集的长尾现象

因此本文提出项目加权的方法, 将系统偏好融入到不同的项目上, 并通过综合用户和系统的偏好来产生推荐。除了评分偏好矩阵R, 本文定义向量W表示系统对不同项目的偏好。ωi表示系统对项目的偏好权重。为了解决长尾问题, 本文通过加权的方式来平衡项目受欢迎度, 设ρ(i)为项目i被评级的次数, 则ωi的取值如下:

$ {\omega _i} = \frac{1}{{\ln (\rho (i))}} $ (8)

为了综合系统偏好评分与预测评分, 设$\hat p _{ui}$是用户对项目的预测评分, 则项目的长尾问题可通过下式缓解:

$ {p_{ui}} = (1 - \alpha ){{\hat p}_{ui}} + \alpha {\omega _i} $ (9)

其中, α是平衡因子。α值越小, 用户的偏好作用越大; 反之, 推荐结果更偏向于系统W向量的值。通过权重拟合系统与用户对项目的偏好, 本文从一定程度上为流行度较高的项目增加惩罚项, 推动冷门项目被推荐。

2.4 算法描述

传统协同过滤算法依据用户的历史评分数据以及项目的评级数据, 通过预测用户未评级的评分数据形成推荐列表, 在相似度计算中, 只考虑项目共同评分数据, 而忽略了项目本身属性之间的的关系以及不同用户对项目评级之间的兴趣度与差异性。同时, 在保证推荐准确度的前提下, 缓解项目的长尾效应, 一直是推荐算法的难题。本文提出ONU-CF推荐算法, 其具体步骤如下:

1) 输入项目集{i1, i2, …, in}和用户评分矩阵R={rij|1≤im, 1≤jn}。

2) 提取{i1, i2, …, in}的属性信息, 构造基于本体的电影流派子树, 利用式(5)计算基于本体语义的项目相似度Sim(x, y), 构建项目相似度矩阵。

3) 根据加入用户属性的相似度计算方法, 利用式(6)和式(7)计算引入兴趣度的用户相似度Siminterest(u, v)以及用户针对不同项目的评分差异性相似度Simr, j(u, v), 构建用户相似度矩阵。

4) 预测目标用户对未知项目的评分, 利用式(10)综合本体语义与用户属性的相似度Sim(u, v), 考虑用户属性的兴趣度与差异性, 利用式(11)改进用户u对项目vi的预测评分。

$ Sim (u,v) = Sim (x,y)\left[ {Si{m_{{\rm{interest}}}}(u,v) + \mathit{Si}{\mathit{m}_{r,j}}(u,v)} \right] $ (10)
$ {\hat P_{ui}} = {\tilde R_u} + \frac{{\sum\limits_{v \in N\left( u \right)} {\left[ {Sim\left( {u,v} \right)} \right]\left( {{R_{vi}} - {{\tilde R}_v}} \right)} }}{{\sum\limits_{v \in N\left( u \right)} {\left| {Sim\left( {u,v} \right)} \right|} }} $ (11)

其中, $\hat P_{ui}$表示目标用户对项目的预测评分, ${\tilde R_u} $$\tilde R_v$分别表示用户uv评分的均值, Rvi表示用户v对项目i的评分, N(u)表示用户u的近邻集合。

5) 对用户-项目评分矩阵的预测评分进行加权处理, 利用式(8)定义系统对项目的偏好向量, 使用式(9)计算目标用户对项目的最终预测评分pui

6) 构造推荐列表, 为目标用户选择最近的K个邻居, 根据TOP-N推荐策略, 选择预测评分前N个项目作为推荐结果, 推荐给用户。

3 实验结果及分析 3.1 实验数据

本文实验采用的数据集为美国明尼苏达州立大学GroupLens小组收集的MovieLens数据集(https://grouplens.org/datasets/movielens/)。该数据集包含71 567个用户对10 681部电影的100 004个评分, 以及95 580个电影的标记信息。本文将该数据集的训练集与测试集划分为5组, 分别进行实验。

3.2 度量标准

本文采用平均绝对误差(Mean Absolute Error, MAE)来评价算法的预测精度, 以准确率、召回率、综合测度(F1-score)[15]来评估TOP-N推荐列表, 最后验证算法的新颖度[16]

1) MAE通常用来衡量实际值与预测值之间的误差, 其值越小, 推荐效果越好。设预测用户的评分集合为{p1, p2, …, pN}, 实际用户评分集为{q1, q2, …, qN}, 则MAE的计算公式如下:

$ MAE = \frac{1}{N}\sum\limits_{i = 1}^N {\left| {{p_i} - {q_i}} \right|} $ (12)

2) 准确率为被推荐的项目列表占用户偏好项目的比重。召回率则是推荐的项目列表中, 用户喜欢的项目占所有用户喜欢项目的比重。设R(i)是根据用户在训练集上的行为数据为目标用户推荐的N个项目列表, T(i)是在测试集上用户偏好的项目集合, 则准确率和召回率的计算公式如下:

$ \mathit{Precision} = \frac{{\sum\limits_{i \in U} | R(i) \cap T(i)|}}{{\sum\limits_{i \in U} | R(i)|}} $ (13)
$ \mathit{Recall} = \frac{{\sum\limits_{i \in U} | R(i) \cap T(i)|}}{{\sum\limits_{i \in U} T (i)}} $ (14)

3) F1-score是为了解决准确率提高而召回率下降之间的矛盾提出的, 其计算公式如下:

$ F1 = \frac{{2 \times \mathit{Precision} \times \mathit{Recall}}}{{\mathit{Precision} + \mathit{Recall}}} $ (15)

4) 新颖度表示推荐给目标用户的Top-N推荐列表中包含的新项目个数与推荐列表中项目个数的比值, 其计算公式如下:

$ Novelty = num/N $ (16)

其中, num表示Top-N推荐列表中新项目的数量。

3.3 实验对比分析

本文算法与传统皮尔逊相似度计算协同过滤算法(P-CF)、基于本体语义的协同过滤算法(OSS-CF)、基于评分矩阵填充与用户兴趣的协同过滤算法(SMUI-CF)[17]进行实验对比, 实验分为3个部分。

3.3.1 MAE值比较

为保证推荐效果最佳, 本文算法在处理长尾项目的推荐问题上, 采用参数α调节系统与用户对项目的预测评分。实验观察MAE值随不同α、不同TOP-N的变化, 结果如图 5所示。

Download:
图 5 本文算法不同α取值的MAE值

图 5可知, 在不同TOP-N的情况下, α对MAE值的影响基本相同, 且当α=0.5时, MAE值最小, 即推荐结果最准确。因此, 在后续实验中, α设为0.5。

针对不同的TOP-N, 各算法的MAE值如图 6所示。

Download:
图 6 4种算法TOP-N的MAE值对比

图 6可知, 4种算法的MAE值随邻居数量N的增加而减小, 意味着各自的推荐精度在提升。其中, P-CF算法的MAE值最大; OSS-CF与SMUI-CF算法相比, 在邻居数量增加到40时, 推荐效果基本相等; 当邻居数量接近90时, SMUI-CF算法效果相对较好。这表明随着邻居数量的增加, OSS-CF算法利用用户之间的本体关系, 以及SMUI-CF算法在相似度计算中引入用户属性偏好, 对推荐精度具有一定的影响。而本文算法融合了本体语义与用户属性进行推荐, 因此MAE值最小, 推荐效果相对其他3种算法, 表现最好。

3.3.2 综合测度实验对比

本文对比了4种算法在不同TOP-N情况下推荐的准确率、召回率以及综合测度, 实验结果如表 2所示。总体上看, 本文算法由于项目之间采用本体之间的语义关系, 比传统的基于近邻相似度的方法具有更好的预测精度。当N=30时, 本文算法比OSS-CF、SMUI-CF算法的准确率分别提高0.201和0.188, 提升效果明显。此时, 其召回率分别提高0.147和0.030, F1-score提高了0.190和0.064。

下载CSV 表 2 4种算法的准确率、召回率与综合测度对比
3.3.3 新颖度对比

4种算法的新颖度对比结果如图 7所示。实验结果显示, P-CF算法因为没有考虑对长尾项目的推荐问题, 新颖度几乎为0;OSS-CF算法新颖度随TOP-N的数量增加而下降, 且其值偏低; SMUI-CF算法引入流行度权重的相似度计算方法, 发挥了一定的作用。在N=20时, SMUI-CF算法与本文算法新颖度基本相等, 但随着TOP-N数量的增加, 本文算法新颖度呈上升趋势。当N=35时, 本文算法的推荐列表中约24%的项目是长尾项目, 有效提高了算法的新颖度。

Download:
图 7 4种算法的新颖度对比
4 结束语

本文提出一种融合本体语义与用户属性的协同过滤算法, 基于本体语义相似度计算项目属性相似度, 融合用户属性的相似度计算方法, 权衡系统与用户的偏好对长尾项目预测评分进行加权处理, 生成TOP-N推荐列表。实验结果表明, 相比P-CF、OSS-CF和SMUI-CF算法, 本文算法能推荐给用户更接近其偏好的项目, 且推荐的新颖度较高。但是在数据量不断增大的情况下, 算法扩展性还有待进一步提升, 这将是下一步要重点研究和解决的问题。

参考文献
[1]
SCHAFER J B, FRANKOWSKI D, HERLOCKER J, et al.Collaborative filtering recommender systems[M]//BRUSILOVSKY P, KOBSA A, NEJDL W.The adaptive Web.Berlin, Germany: Springer, 2007: 291-324. (0)
[2]
ADOMAVICIUS G, TUZHILIN A. Toward the next generation of recommender systems:a survey of the state-of-the-art and possible extensions[J]. IEEE Transactions on Knowledge and Data Engineering, 2005, 17(6): 734-749. DOI:10.1109/TKDE.2005.99 (0)
[3]
林耀进, 胡学钢, 李慧宗. 基于用户群体影响的协同过滤算法[J]. 情报学报, 2013, 32(3): 299-305. DOI:10.3772/j.issn.1000-0135.2013.03.009 (0)
[4]
于金明, 孟军, 吴秋峰. 基于改进相似性度量的项目协同过滤推荐算法[J]. 计算机应用, 2017, 37(5): 1387-1391. (0)
[5]
RABAHALLAH K, MAHDAOUI L, AZOUAOU F.MOOCs recommender system using ontology and memory-based collaborative filtering[C]//Proceedings of International Conference on Enterprise Information Systems.Funchal, Portugal: SCITE Press, 2018: 635-641. (0)
[6]
王阳, 钟勇, 李振东, 等. 融合语义相似度与矩阵分解的评分预测算法[J]. 计算机应用, 2017, 37(增刊): 287-291. (0)
[7]
罗辛, 欧阳元新, 熊璋, 等. 通过相似度支持度优化基于K近邻的协同过滤算法[J]. 计算机学报, 2010, 33(8): 1437-1445. (0)
[8]
ZHANG Xuewang, JIANG Xun.Collaborative filtering algorithm based on user attribute item dependency[C]//Proceedings of the 9th International Conference on Communication Software and Networks.Washington D.C., USA: IEEE Press, 2017: 1426-1431. (0)
[9]
印桂生, 张亚楠, 董红斌, 等. 一种由长尾分布约束的推荐方法[J]. 计算机研究与发展, 2013, 50(9): 1814-1824. (0)
[10]
冯媛媛, 王晓东, 姚宇. 电子商务中长尾物品推荐方法[J]. 计算机应用, 2015, 35(增刊): 151-154. (0)
[11]
吴正洋, 汤庸, 方家轩, 等. 一种基于本体语义相似度的协同过滤推荐方法[J]. 计算机科学, 2015, 42(9): 204-207. (0)
[12]
赵文涛, 王春春, 成亚飞, 等. 基于用户多属性与兴趣的协同过滤算法[J]. 计算机应用研究, 2016, 33(12): 3630-3633. DOI:10.3969/j.issn.1001-3695.2016.12.025 (0)
[13]
刘宏哲, 须德. 基于本体的语义相似度和相关度计算研究综述[J]. 计算机科学, 2012, 39(2): 8-13. DOI:10.3969/j.issn.1002-137X.2012.02.002 (0)
[14]
YIN Hongzhi, CUI Bin, LI Jing, et al. Challenging the long tail recommendation[J]. Proceedings of the VLDB Endowment, 2012, 5(9): 896-907. DOI:10.14778/2311906.2311916 (0)
[15]
王光, 张杰民, 董帅含, 等. 基于内容的加权粒度序列推荐算法[J]. 计算机工程与科学, 2018, 40(3): 564-570. DOI:10.3969/j.issn.1007-130X.2018.03.024 (0)
[16]
于洪, 李俊华. 一种解决新项目冷启动问题的推荐算法[J]. 软件学报, 2015, 26(6): 1395-1408. (0)
[17]
韩亚楠, 曹菡, 刘亮亮. 基于评分矩阵填充与用户兴趣的协同过滤推荐算法[J]. 计算机工程, 2016, 42(1): 36-40. DOI:10.3969/j.issn.1000-3428.2016.01.007 (0)