针对用户角色无差异对待和数据稀疏的推荐系统及方法与流程

文档序号:11155406阅读:292来源:国知局
针对用户角色无差异对待和数据稀疏的推荐系统及方法与制造工艺

本发明涉及数据挖掘和信息检索领域,具体涉及一种针对用户的个性化推荐系统及方法。



背景技术:

随着互联网的不断发展,网络信息呈爆炸式增长,信息过载问题严重影响着人们的日常生活。为解决信息过载问题,国内外专家学者不断采取新的措施,如优化搜索引擎、强化推荐系统等。

近年来,推荐系统在电子商务、社交网络等领域受到越来越多的重视,尤其是个性化推荐技术的发展,对增强用户体验和提高服务质量起到了重要作用。现有推荐系统大致分为两类:预测和TopN推荐。前者是评分估计,基于用户历史评分预测用户未来评分。后者是对用户提供推荐列表。现有推荐技术可分为基于内容过滤的技术、社会化过滤的技术以及协同过滤的技术。基于内容的推荐技术是利用用户兴趣和项目之间的相似度,给用户推荐匹配度高的项目。社会化过滤技术是利用用户的社会化关系,结合社交网络中用户好友兴趣进行推荐。协同过滤技术是基于用户的历史行为信息,寻找匹配度高的邻居群体,依据用户群体兴趣对目标用户进行推荐。由于基于内容的过滤技术对内容解析的知识要求较高,难以区分资源内容品质。同时,社会化过滤技术仅考虑用户间关系,缺乏对用户自身属性的挖掘,以及无法及时应对用户兴趣的改变,都成为影响该技术推荐性能的原因。因此,协同过滤技术在推荐系统领域得到了广泛的研究与应用。

基于协同过滤的推荐虽然具有良好的推荐效果,但随着数据规模的不断增大,形成了数据稀疏性问题,传统协同过滤方法的推荐效果急剧下降。同时,个体用户无差异对待,导致推荐系统难以发现用户真实兴趣,以及无法及时应对用户兴趣迁移形成的问题,对评分预测造成了一定的困难。因此,解决数据稀疏性问题和个体用户无差异对待问题对推荐系统有着重要的作用。

根据协同过滤推荐技术的研究方法,正确的属性提取对推荐正确率起到了关键作用,首先需要在目标社交网络中正确分析用户行为,挖掘有效属性。其次,个性化推荐是目前推荐系统领域的研究重点,需要对用户进行角色差异划分,为用户提供不同兴趣的推荐。最后,为改善数据稀疏造成的推荐质量降低问题,提出基于张量分解的评分预测模型。

在研究过程中,用户行为属性的正确选择关系到推荐的最终效果,需要使用合理的方法提取关键属性。同时,合适的角色度量方式以及准确的用户兴趣转移计算方法都是研究的重点。在推荐过程中,面对数据规模的不断增大和数据快速更新问题,需要提出一种可扩展性较强的推荐模型。



技术实现要素:

本发明旨在解决以上现有技术的问题。提出了一种有效改善了数据稀疏性产生的问题,提高了推荐效率的针对用户角色无差异对待和数据稀疏的推荐系统及方法。本发明的技术方案如下:

一种针对用户角色无差异对待和数据稀疏的推荐系统,其包括数据源信息获取模块、动态角色划分模块及预测推荐模块;其中,数据源信息获取模块,用于获取包括用户对项目的评分数据和项目数据在内的网页数据内容;动态角色划分模块,用于根据用户的评分历史记录,动态划分用户动态角色列表,并用户评分数据层次化处理;预测推荐模块,构建基于用户-项目-角色的三阶张量分解评分预测模型,利用处理后的用户评分数据,填充张量分解模型,实现数据维度转换;然后基于缺失值处理方法,利用CP分解预测缺失值,通过对缺失值逐次迭代,优化处理过程,根据张量分解模型预测的评分结果,生成目标用户推荐列表。

进一步的,所述数据源信息获取模块获取原始数据首先通过公开API接口下载数据,再利用网络爬虫技术补充,对原始数据中的重复数据、无效数据进行清洗。

进一步的,所述动态角色划分模块分为用户角色类型计算和对用户进行动态角色划分,最终实现用户评分数据层次化分割,首先,根据用户对项目的历史评分行为,依次得到目标用户u所评分项目i的所属类别Ci;其次,引入信息熵理论度量信息源不确定性的特点,按项目类别多样性对用户进行定量角色划分;再次,基于用户兴趣迁移现象,利用用户对项目的评分密度以及时间切片方法,对用户评分行为进行时间段划分;最后,计算用户在不同时间段下的角色分布状态,动态划分用户角色。

一种针对用户角色无差异对待和数据稀疏的推荐方法,其包括以下步骤:

1)、获取用户历史评分行为,基于用户评分密度,利用时间切片方法对用户划分评分时间段;

2)、引入信息熵理论对个体进行角色划分,其按用户兴趣多样性对用户每个时间段的行为进行定量分析,实现用户角色动态性划分,对评分数据层次化处理;

3)、构建基于“用户-项目-角色”的张量分解评分预测模型,利用张量分解在数据维度转换和数据压缩的特性,最终生成目标用户项目推荐列表。

进一步的,步骤2)用户动态角色划分包括步骤:

S21:提取用户对项目的评分时间数据,设定密度阈值,选取高密度评分时间段,为用户评分行为划分时间区域,被划分的时间区域表示用户的不同兴趣时间段;

S22:设定角色数|R|,即为模型中角色分布数量,为将定性角色划分方式转换为定量角色划分方式,引入信息熵理论,度量用户评分项目多样性,计算用户u在第j个时间段的角色值Val(Ru,j),划分用户所属角色,然后根据用户u有效时间段列表T(u),对其每一段时间进行角色划分;

S23:依次计算用户u在社交网站上的角色类型,同时生成用户角色列表,实现用户评分数据层次化处理。

进一步的,所述步骤3)构建基于“用户-项目-角色”的张量分解评分预测模型,利用张量分解在数据维度转换和数据压缩的特性,最终生成目标用户项目推荐列表包括:

S31:基于用户角色划分的概念,引用张量分解模型在数据维度转换和数据压缩的特性,构建基于“用户-项目-角色”的三阶张量分解评分预测模型,为该模型的初始填充值是用户u在角色类型Cat(Ru,j)下,对项目k的评分值score,利用缺失值处理,通过CP分解法填充缺失值,预测用户对项目的评分;

S311:处理层次化的用户评分数据,构建“用户-项目-角色”的张量分解模型,该三阶张量i表示用户维度的个体数量,j表示项目维度的个体数量;k表示角色维度的个体数量;

S312:将用户i在第k个角色下对第j个项目的评分填入张量模型相应位置,作为评分预测的初始值;

S313:对缺失值进行处理,使用CP分解法,首先假设张量的秩为R,那么就可以把张量分解成R个秩-1张量的和,利用该原理,对于一个三阶张量,CP分解可以写成向量和形式:

其中,为CP分解的缩写形式,λ是长度为R的向量,A、B、C分别为CP分解中的三个因子矩阵。

S32:利用经过动态化角色处理的评分数据,结合张量分解模型,得到用户对项目的预测评分,根据预测评分,使用排序算法对每个用户的评分进行从高到低的排序,得到最终用户-项目推荐列表。

本发明的优点及有益效果如下:

本发明针对个体用户无差异对待和数据稀疏性问题,提出融合用户角色信息和张量分解的推荐模型。针对传统推荐方法存在的不足,本方案对个体用户进行动态角色划分,结合张量分解评分预测模型,提高推荐准确率。首先,针对用户角色无差异对待问题,根据用户兴趣偏好,提出划分用户角色的概念,使推荐模型更加个性化。然后,依据用户兴趣漂移原理,引入时间离散化和时间切片工具,按照用户评分行为密度对用户评分划分时间段,提升推荐准确度。最后,结合张量分解模型在数据维度转换和数据压缩的特性,构建“用户-项目-角色”张量分解评分预测模型,有效改善了数据稀疏性产生的问题,提高了推荐效率。本发明提出的融合动态角色划分和张量分解的推荐方法,不仅完善了用户无角色差异造成推荐精确度不足问题,还改善了传统推荐方法在数据稀疏情况下存在的弊端。

附图说明

图1是本发明提供优选实施例针对用户角色无差异对待和数据稀疏的推荐方法总体流程图。

图2是本发明的动态角色划分模型图。

图3是本发明的张量分解模型图。

图4是本发明的推荐算法流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、详细地描述。所描述的实施例仅仅是本发明的一部分实施例。

本发明解决上述技术问题的技术方案是,

如图1所示为本发明总体流程图。该流程包括获取数据源模块,动态角色划分模块,评分预测及推荐模块。本发明的详细实施过程包括以下三个步骤:

S1:获取数据源。数据源的获取可以通过现有基于Web的社交网站开放的公共API下载或利用网络爬虫工具抓取网页内容。数据内容包括用户对项目的评分数据和项目数据。

S2:动态角色划分。根据用户的评分历史记录,提取用户评分时间属性,基于评分密度划分用户对项目的评分时间段。提取每一时间段数据,引入信息熵模型,度量用户所评分项目多样性,将角色类别映射为具体角色值,定量划分用户角色类型,形成用户动态角色列表。同时,根据用户动态角色列表,将用户评分数据层次化处理。

S3:评分预测及推荐。构建基于“用户-项目-角色”的三阶张量分解评分预测模型。利用处理后的用户评分数据,填充张量分解模型,实现数据维度转换。然后基于缺失值处理方法,利用CP分解预测缺失值,该方法通过对缺失值逐次迭代,优化处理过程,得到更为合理的预测结果。根据张量分解模型预测的评分结果,生成目标用户推荐列表。

上述步骤S1,获取数据源。主要分为以下2个步骤。

S11:获取原始数据。通过公开API接口下载数据,再利用网络爬虫技术补充。

S111:获取用户对项目的评分数据,包括用户对项目的评分以及用户评分时间。

S112:获取用户评分项目的类型标签。

S12:预处理原始数据。对原始数据中的重复数据、无效数据进行清洗,有利于数据分析。

上述步骤S2,用户动态角色划分。如图2所示,为动态角色划分模型图。主要分为以下2个步骤。

S21:提取用户对项目的评分时间数据,设定密度阈值,选取高密度评分时间段,为用户评分行为划分时间区域,被划分的时间区域可被理解为用户兴趣随时间增长产生的转移现象。

S211:获取用户对项目的评分时间区域[t0,te],其中t0表示用户评分的起始时间,te表示用户评分的终止时间。然后在用户评分时间段内,计算每个时间节点上用户的评分数量nk(0≤k≤e),构建用户评分序列集合

scoreNum={(t0,n0),(t1,n1),...,(te,ne)}

S212:设定密度阈值ρ,划分用户评分时间段,再选取第u个用户评分时间段Tj,计算Tj时间段中用户对项目的评分密度其中Nj为时间段Tj中用户评分的项目数,Di为时间段Tj的天数。如果评分密度ρj大于等于密度阈值ρ,则时间段Tj属于有效时间段。决定时间段Tj是否为有效时间段的函数isInTime(Tj)如下:

S213:生成用户u有效时间段列表T(u)={T0,T1,...,Tj,...,Tn}

S22:设定角色数|R|,即为模型中角色分布数量。为将定性角色划分方式转换为定量角色划分方式,引入信息熵理论,度量用户评分项目多样性,计算用户u在第j个时间段的角色值Val(Ru,j),划分用户所属角色。然后根据用户u有效时间段列表T(u),对其每一段时间进行角色划分。

S221:信息熵:用户u的评分时间是一个离散随机变量,即它的取值范围T(u)={T0,T1,...,Tj,...,Tn}是有限可数的。设则每个时间段的评分项目多样性为:

其中pi表示用户u在第j个时间段Tj中,评分第i类型项目的数量所占的比例。

S222:根据用户在时间段Tj内的评分多样性,利用设定的角色数量|R|,计算用户u在该时间段内的角色值

S223:通过对Val(Ru,j)进行向上取整的方式,得到用户u在时间段Tj的角色类型Cat(Ru,j)。

S23:通过以上方式,依次计算用户u在社交网站上的角色类型。该方法显示用户角色类型随时间增长呈现变化,客观的反映了用户兴趣漂移现象,同时生成用户角色列表,实现用户评分数据层次化处理。

该过程首先生成用户角色列表

Cat(Ru)={Cat(Ru,0),Cat(Ru,1),...,Cat(Ru,j)}

再对评分数据依角色类型进行层次化处理,得到优化处理后的用户u评分数据集合S=set(Cat(Ru,j),useru,itemk,score),该集合表示在角色类型Cat(Ru,j)下,用户u对项目k的评分值score的集合。

上述步骤S3,评分预测及推荐。主要分为以下2个步骤。

S31:基于用户角色划分的概念,引用张量分解模型在数据维度转换和数据压缩的特性,构建基于“用户-项目-角色”的三阶张量分解评分预测模型。为该模型的初始填充值是用户u在角色类型Cat(Ru,j)下,对项目k的评分值score,利用缺失值处理,通过CP分解法填充缺失值,预测用户对项目的评分。

S311:处理层次化的用户评分数据,构建“用户-项目-角色”的张量分解模型。该三阶张量i表示用户维度的个体数量(用户数),j表示项目维度的个体数量(项目数),k表示角色维度的个体数量(角色数)。

S312:将用户i在第k个角色下对第j个项目的评分填入张量模型相应位置,作为评分预测的初始值。

S313:对缺失值进行处理,使用CP分解法。如图3所示,为CP分解示意图。首先假设张量的秩为R,那么就可以把张量分解成R个秩-1张量的和。利用该原理,对于一个三阶张量,CP分解可以写成向量和形式:

其中,为CP分解的缩写形式。

①上述表达中,A、B和C为张量的因子矩阵,大小分别为I×R,J×R和K×R,表示张量在各维上的主成分。λ为长度为R的向量,为因子矩阵对应的列单位化后的乘积。因此,张量分解中,CP分解可以写成如下形式:

其中,R为给定的正整数,i=1,...,I,j=1,...,J,k=1,...,K。即通过该关系式对张量模型进行切片转换。

②该分解实质是使得原始张量和分解模型的误差尽可能的小,即一个最优化问题:如将矩阵A(I×R)看作由a1~aR共R个列向量构成的矩阵,同理看待矩阵B和C,这种锁定某个因子矩阵外的所有矩阵的方法,即为一个线性最小二乘问题。同时引入张量X与矩阵A、B、C之间的性质关系。

X(1)≈A(C⊙B)T

X(2)≈B(C⊙A)T

X(3)≈C(A⊙B)T

③根据上述性质,使用迭代最小二乘法计算。赋予矩阵A、B、C初始猜测值,将上述对应关系转换为如下方法计算矩阵A、B、C。

利用初始值计算式(1)中的A,再将A带入式(2)求B,然后又将计算好的A与B带入式(3)求C。

④重复上述第③步中式(1)至式(3),直到式(4)收敛。

使用式(4)优化模型中的缺失值,该优化使得张量评分预测结果最接近于真实结果。

⑤完成矩阵A、B、C的计算后,还原张量模型,对缺失数据进行自动填充,该填充值即为用户在某一角色下对项目的评分预测值。利用CP分解法,迭代优化了对缺失值的预测结果,使评分预测结果更为精确。

S32:利用经过动态化角色处理的评分数据,结合张量分解模型,得到用户对项目的预测评分。根据预测评分,使用排序算法对每个用户的评分进行从高到低的排序,得到最终用户-项目推荐列表。

本发明针对推荐系统中用户角色无差异对待和数据稀疏性问题,提出一种基于动态角色划分和张量分解的评分预测算法,并进一步实现基于该理论的社交网络推荐方法。首先根据用户兴趣漂移原理,基于用户评分密度为用户划分评分时间段,在不同时间切片下,用户所属角色不同。其次引入信息熵理论,度量用户在每一时间段内评分项目的多样性,定量对用户划分角色,实现用户评分数据层次化处理。最后构建张量分解模型,使用CP分解法,预测用户对项目的评分,生成目标用户推荐列表。

应当指出上述具体的实施例,可以使本领域的技术人员和读者更全面地理解本发明创造的实施方法,应该被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。因此,尽管本发明说明书参照附图和实施例对本发明创造已进行了详细的说明,但是,本领域的技术人员应当理解,仍然可以对本发明创造进行修改或者等同替换,总之,一切不脱离本发明创造的精神和范围的技术方案及其改进,其均应涵盖在本发明创造专利的保护范围当中。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1