首页 > 专利 > 西安理工大学 > 基于标签迁移的跨域推荐方法专利详情

基于标签迁移的跨域推荐方法   0    0

实质审查 查看PDF
专利申请流程有哪些步骤?
专利申请流程图
申请
申请号:指国家知识产权局受理一件专利申请时给予该专利申请的一个标示号码。唯一性原则。
申请日:提出专利申请之日。
2020-05-27
申请公布
申请公布指发明专利申请经初步审查合格后,自申请日(或优先权日)起18个月期满时的公布或根据申请人的请求提前进行的公布。
申请公布号:专利申请过程中,在尚未取得专利授权之前,国家专利局《专利公报》公开专利时的编号。
申请公布日:申请公开的日期,即在专利公报上予以公开的日期。
2020-10-27
授权
授权指对发明专利申请经实质审查没有发现驳回理由,授予发明专利权;或对实用新型或外观设计专利申请经初步审查没有发现驳回理由,授予实用新型专利权或外观设计专利权。
预估到期
发明专利权的期限为二十年,实用新型专利权期限为十年,外观设计专利权期限为十五年,均自申请日起计算。专利届满后法律终止保护。
2040-05-27
基本信息
有效性 实质审查 专利类型 发明专利
申请号 CN202010462560.4 申请日 2020-05-27
公开/公告号 CN111708937A 公开/公告日 2020-09-25
授权日 预估到期日 2040-05-27
申请年 2020年 公开/公告年 2020年
缴费截止日
分类号 G06F16/9535G06F16/9536G06F16/906G06N3/04 主分类号 G06F16/9535
是否联合申请 独立申请 文献类型号 A
独权数量 1 从权数量 9
权利要求数量 10 非专利引证数量 0
引用专利数量 0 被引证专利数量 1
非专利引证
引用专利 被引证专利 CN202210279925.9
专利权维持 99 专利申请国编码 CN
专利事件 事务标签 公开、实质审查
申请人信息
申请人 第一申请人
专利权人 西安理工大学 当前专利权人 西安理工大学
发明人 姚全珠、吕鹏、费蓉、陈晨 第一发明人 姚全珠
地址 陕西省西安市碑林区金花南路5号 邮编 710048
申请人数量 1 发明人数量 4
申请人所在省 陕西省 申请人所在市 陕西省西安市
代理人信息
代理机构
专利代理机构是经省专利管理局审核,国家知识产权局批准设立,可以接受委托人的委托,在委托权限范围内以委托人的名义办理专利申请或其他专利事务的服务机构。
西安弘理专利事务所 代理人
专利代理师是代理他人进行专利申请和办理其他专利事务,取得一定资格的人。
韩玙
摘要
本发明公开了一种基于标签迁移的跨域推荐方法,首先假设A领域为源领域,B领域为目标领域,A领域与B领域存在重叠的用户,用户共用一套相同的标签系统并且A领域和B领域中都有对应的用户物品评分信息,通过迁移上述共享的标签信息,实现以A领域为源领域辅助目标领域B领域完成推荐任务,或者以B领域为源领域辅助目标领域A领域完成推荐任务;利用用户对A领域的评分信息构建A领域用户评分矩阵;然后对A领域用户评分矩阵进行分解,得到用户潜在特征矩阵和物品潜在特征矩阵,进而得到每一类别下的用户;最后对每一类下的用户进行跨域推荐。本发明解决了现有跨域推荐方法中存在的仅利用评分信息或标签信息进行推荐的局限性。
  • 摘要附图
    基于标签迁移的跨域推荐方法
  • 说明书附图:图1
    基于标签迁移的跨域推荐方法
  • 说明书附图:图2
    基于标签迁移的跨域推荐方法
法律状态
序号 法律状态公告日 法律状态 法律状态信息
1 2020-10-27 实质审查的生效 IPC(主分类): G06F 16/9535 专利申请号: 202010462560.4 申请日: 2020.05.27
2 2020-09-25 公开
权利要求
权利要求书是申请文件最核心的部分,是申请人向国家申请保护他的发明创造及划定保护范围的文件。
1.基于标签迁移的跨域推荐方法,其特征在于,具体按照以下步骤实施:
步骤1、假设A领域为源领域,B领域为目标领域,实现A领域与B领域之间的跨域推荐的前提条件如下:A领域与B领域存在重叠的用户,所述用户共用一套相同的标签系统并且A领域和B领域中都有对应的用户物品评分信息,通过迁移上述共享的标签信息,实现以A领域为源领域辅助目标领域B领域完成推荐任务,或者以B领域为源领域辅助目标领域A领域完成推荐任务;
步骤2、利用用户对A领域的评分信息构建A领域用户评分矩阵;
步骤3、对A领域用户评分矩阵进行分解,得到用户潜在特征矩阵Usrc和物品潜在特征矩阵Vsrc;
步骤4、基于用户潜在特征矩阵对用户进行聚类,聚类采用K-Means聚类方法,得到每一类别下的用户;
步骤5、构建神经网络模型,对步骤4得到的不同类型下的用户使用的标签进行学习,并训练神经网络,得到能根据用户使用标签的特征对用户进行分类的神经网络模型,经过不断地训练得到最优网络模型;
步骤6、对每一类下的用户进行跨域推荐。

2.根据权利要求1所述的基于标签迁移的跨域推荐方法,其特征在于,所述步骤1中A领域与B领域重叠的用户共用一套相同的标签,标签包括属性标签和行为标签,其中属性标签包括性别、年龄、职业,行为标签包括用户对物品所属标签的使用次数。

3.根据权利要求1所述的基于标签迁移的跨域推荐方法,其特征在于,所述步骤2具体如下:
步骤2.1、利用Pandas库中的read_table函数读入用户物品评分表,该表中包括的字段有用户ID、物品ID和评分,该函数指定要打开文件的位置、用作列名的行号、用作行索引的列编号或列名,并设置python引擎来对用户物品评分表进行解析;
步骤2.2、利用读到的用户物品评分表,使用Pandas的unique函数获取用户列名和物品列名的所有唯一值,然后使用len函数得到唯一的用户和物品的个数,结合numpy的zeros函数,创建行为用户数,列为物品数的全零二维数组;
步骤2.3、按元组的方式遍历用户物品评分表,使用pandas的loc函数和python的内建函数getattr,将每个用户对每部物品的评分值对应起来并填充到创建的全零二维数组的对应位置,从而得到用户对物品的评分矩阵user_item_matrix,并保存为user_item_matrix.csv。

4.根据权利要求3所述的基于标签迁移的跨域推荐方法,其特征在于,所述步骤3具体如下:
步骤3.1、利用Pandas库中的read_csv函数读入步骤2得到的用户物品评分矩阵user_item_matrix.csv,通过设置用户潜在评分因子k和物品潜在评分因子l的大小以及最大迭代次数max_iter约束矩阵的分解;
步骤3.2、不断调整用户潜在评分因子k和物品潜在评分因子l以及最大迭代次数max_iter的值以最小化目标函数,目标函数达到最小值,得到源领域中的用户潜在特征矩阵Usrc、物品潜在特征矩阵Vsrc以及集群级的用户和物品评分矩阵S。

5.根据权利要求4所述的基于标签迁移的跨域推荐方法,其特征在于,所述步骤3.2具体如下:
通过不断地迭代以最小化目标函数:
其中, m代表源领域中的用户数,k代表
用户潜在评分因子,n代表源领域中物品的个数,l代表物品潜在评分因子,Usrc的大小为m×k,表示源领域中m个用户对k个用户潜在评分因子的用户潜在特征矩阵,同样,Vsrc的大小为n×l,表示源领域中n个物品对l个物品潜在评分因子的物品潜在特征矩阵。

6.根据权利要求4所述的基于标签迁移的跨域推荐方法,其特征在于,所述步骤3.2中当k=l=40,max_iter=200时,目标函数达到最小值。

7.根据权利要求4所述的基于标签迁移的跨域推荐方法,其特征在于,所述步骤4具体如下:
步骤4.1、设聚类个数为K,即对应K个初始的类簇,然后由用户潜在特征矩阵Usrc和聚类个数K,随机初始化质心矩阵centroids,再将用户特征矩阵Usrc中的每一行和质心矩阵centroids中的每一个质心之间计算欧氏距离,按照距离最短原则,将用户特征矩阵中的每一行划分到距离最近的类簇中,形成K个类簇;
步骤4.2、更新每个类簇的中心,对每个簇内的数据求均值,得到新的质心矩阵centroids,再重新计算用户特征矩阵Usrc中的每一行和新的质心矩阵centroids中的每一个质心之间的欧氏距离,直到质心不再发生改变或者达到设定的迭代次数,最终得到了质心矩阵centroids和对应的类簇矩阵clusterAssment,这样就得到了每一类别下的用户。

8.根据权利要求7所述的基于标签迁移的跨域推荐方法,其特征在于,所述步骤4.1中计算用户特征矩阵中的每一行和质心矩阵中的每一个质心之间的欧氏距离,计算公式为:
其中,X表示用户特征矩阵中的某一个数据,Y表示质心矩阵中的某一个数据,xi表示用户特征矩阵中的某一个数据点的坐标,yi表示某一个质心点的坐标,f为用户特征矩阵中所有数据的个数,i代表用户特征矩阵中的某一个数据。

9.根据权利要求7所述的基于标签迁移的跨域推荐方法,其特征在于,所述步骤5具体如下:
步骤5.1、结合用户的属性标签和行为标签,通过量化处理后作为神经网络的输入,用户的属性标签包括用户的年龄、性别、职业,将用户的性别字段进行量化处理,假设用M表示男性,量化后用0表示,F表示女性,量化后用1表示,对于用户的职业字段,分别用0~6七个值表示,用户的行为标签包括用户使用每个物品所属标签的次数,通过统计得到;
步骤5.2、将用户的属性标签和行为标签作为网络的输入特征经过隐藏层进行特征提取,设置隐藏层的神经元个数为h;
隐藏层的神经元个数h由下面的公式确定:
其中,p为神经网络输入的神经元个数,q为神经网络输出的神经元个数,a为1~10的常数;
步骤5.3、将隐藏层h个神经元的输出作为全连接层的输入,再经过softmax函数后得到分类结果,最终对应L个概率值,其中,L=K,再将L个概率值和1~K个类簇对应,判断属于哪个类别的概率值最大,则属于哪个类别;
其中,softmax函数表示为:
其中,w表示分类数,z属于1~w,yz表示全连接层第z个神经元的输出,将w个输出分别经过softmax函数,得到符合概率分布的分类结果。

10.根据权利要求9所述的基于标签迁移的跨域推荐方法,其特征在于,所述步骤6具体如下:
步骤6.1、将所述步骤5得到的在同一类下的所有用户在B领域中的评分矩阵进行重组,即将同一类别下的每一个用户的评分矩阵按行放置,得到新的用户在B领域中的评分矩阵user_item_matrix_tar;
步骤6.2、使用近邻评分预测方法对步骤6.1得到的评分矩阵user_item_matrix_tar进行填充:
近邻评分预测公式为:
其中,Au是B领域中目标用户u对所有评分物品的平均分,Rvt是B领域中用户v对物品t的评分值,Av是B领域中用户u的邻居用户v对所有评分物品的平均分,sim(u,v)是B领域中目标用户u和u的邻居用户v之间的相似度数值,c是B领域中目标用户u的最近邻个数,j代表1~c中某一个最近邻;
步骤6.3、构造对照评分矩阵contrast_score_matrix:对评分矩阵user_item_matrix_tar按列求平均值,得到对照评分矩阵contrast_score_matrix;
步骤6.4、将需要进行跨域推荐的用户在B领域中的评分矩阵user_item_matrix_tar与该用户所属类别下的对照评分矩阵contrast_score_matrix进行对比,利用阈值比较的方法,如果对应位置的评分大于阈值,则对用户推荐B领域内的物品,如果对应位置评分小于阈值,则不给用户推荐B领域内的物品,即实现A领域和B领域的跨域推荐。
说明书

技术领域

[0001] 本发明属于数据挖掘技术领域,具体涉及一种基于标签迁移的跨域推荐方法。

背景技术

[0002] 身处大数据时代,互联网用户每天都在生产数据、创造数据和使用数据,一方面,数据量与日俱增,信息过载问题严重,另一方面,用户面对大量的信息不能及时有效地去寻找到自己所需的信息,为了解决这些问题,推荐系统应运而生,并在各个领域中得到了广泛的应用,但是传统的推荐主要还是集中在单一领域中,随着互联网技术的高速发展,急剧增多的用户和物品数量使得传统单一的推荐系统面临数据稀疏和冷启动问题的严峻挑战。
[0003] 目前,基于迁移学习技术,结合推荐算法,出现了跨领域推荐的方法,旨在缓解传统单一领域推荐中存在的稀疏性问题和新用户新物品的冷启动问题,比如抹平不同领域间的评分刻度差异,直接迁移评分矩阵的方法,还有基于领域间标签的迁移学习方法,但是这些方法存在很多的不足,如果忽略领域间的评分刻度差异,可能会发生负迁移的现象,而只利用领域间的标签信息,忽略评分信息,可能会削弱最终的推荐效果。

发明内容

[0004] 本发明的目的是提供一种基于标签迁移的跨域推荐方法,解决了现有跨域推荐方法中存在的仅利用评分信息或标签信息进行推荐的局限性。
[0005] 本发明所采用的技术方案是,基于标签迁移的跨域推荐方法,具体按照以下步骤实施:
[0006] 步骤1、假设A领域为源领域,B领域为目标领域,实现A领域与B领域之间的跨域推荐的前提条件如下:A领域与B领域存在重叠的用户,所述用户共用一套相同的标签系统并且A领域和B领域中都有对应的用户物品评分信息,通过迁移上述共享的标签信息,实现以A领域为源领域辅助目标领域B领域完成推荐任务,或者以B领域为源领域辅助目标领域A领域完成推荐任务;
[0007] 步骤2、利用用户对A领域的评分信息构建A领域用户评分矩阵;
[0008] 步骤3、对A领域用户评分矩阵进行分解,得到用户潜在特征矩阵Usrc和物品潜在特征矩阵Vsrc;
[0009] 步骤4、基于用户潜在特征矩阵对用户进行聚类,聚类采用K-Means聚类方法,得到每一类别下的用户;
[0010] 步骤5、构建神经网络模型,对步骤4得到的不同类型下的用户使用的标签进行学习,并训练神经网络,得到能根据用户使用标签的特征对用户进行分类的神经网络模型,经过不断地训练得到最优网络模型;
[0011] 步骤6、对每一类下的用户进行跨域推荐。
[0012] 本发明的特点还在于,
[0013] 步骤1中A领域与B领域重叠的用户共用一套相同的标签,标签包括属性标签和行为标签,其中属性标签包括性别、年龄、职业,行为标签包括用户对物品所属标签的使用次数。
[0014] 步骤2具体如下:
[0015] 步骤2.1、利用Pandas库中的read_table函数读入用户物品评分表,该表中包括的字段有用户ID、物品ID和评分,该函数指定要打开文件的位置、用作列名的行号、用作行索引的列编号或列名,并设置python引擎来对用户物品评分表进行解析;
[0016] 步骤2.2、利用读到的用户物品评分表,使用Pandas的unique函数获取用户列名和物品列名的所有唯一值,然后使用len函数得到唯一的用户和物品的个数,结合numpy的zeros函数,创建行为用户数,列为物品数的全零二维数组;
[0017] 步骤2.3、按元组的方式遍历用户物品评分表,使用pandas的loc函数和python的内建函数getattr,将每个用户对每部物品的评分值对应起来并填充到创建的全零二维数组的对应位置,从而得到用户对物品的评分矩阵user_item_matrix,并保存为user_item_matrix.csv。
[0018] 步骤3具体如下:
[0019] 步骤3.1、利用Pandas库中的read_csv函数读入步骤2得到的用户物品评分矩阵user_item_matrix.csv,通过设置用户潜在评分因子k和物品潜在评分因子l的大小以及最大迭代次数max_iter约束矩阵的分解;
[0020] 步骤3.2、不断调整用户潜在评分因子k和物品潜在评分因子l以及最大迭代次数max_iter的值以最小化目标函数,目标函数达到最小值,得到源领域中的用户潜在特征矩阵Usrc、物品潜在特征矩阵Vsrc以及集群级的用户和物品评分矩阵S。
[0021] 步骤3.2具体如下:
[0022] 通过不断地迭代以最小化目标函数:
[0023]
[0024]
[0025] 其中, m代表源领域中的用户数,k代表用户潜在评分因子,n代表源领域中物品的个数,l代表物品潜在评分因子,Usrc的大小为m×k,表示源领域中m个用户对k个用户潜在评分因子的用户潜在特征矩阵,同样,Vsrc的大小为n×l,表示源领域中n个物品对l个物品潜在评分因子的物品潜在特征矩阵。
[0026] 步骤3.2中当k=l=40,max_iter=200时,目标函数达到最小值。
[0027] 步骤4具体如下:
[0028] 步骤4.1、设聚类个数为K,即对应K个初始的类簇,然后由用户潜在特征矩阵Usrc和聚类个数K,随机初始化质心矩阵centroids,再将用户特征矩阵Usrc中的每一行和质心矩阵centroids中的每一个质心之间计算欧氏距离,按照距离最短原则,将用户特征矩阵中的每一行划分到距离最近的类簇中,形成K个类簇;
[0029] 步骤4.2、更新每个类簇的中心,对每个簇内的数据求均值,得到新的质心矩阵centroids,再重新计算用户特征矩阵Usrc中的每一行和新的质心矩阵centroids中的每一个质心之间的欧氏距离,直到质心不再发生改变或者达到设定的迭代次数,最终得到了质心矩阵centroids和对应的类簇矩阵clusterAssment,这样就得到了每一类别下的用户。
[0030] 步骤4.1中计算用户特征矩阵中的每一行和质心矩阵中的每一个质心之间的欧氏距离,计算公式为:
[0031]
[0032] 其中,X表示用户特征矩阵中的某一个数据,Y表示质心矩阵中的某一个数据,xi表示用户特征矩阵中的某一个数据点的坐标,yi表示某一个质心点的坐标,f为用户特征矩阵中所有数据的个数,i代表用户特征矩阵中的某一个数据。
[0033] 步骤5具体如下:
[0034] 步骤5.1、结合用户的属性标签和行为标签,通过量化处理后作为神经网络的输入,用户的属性标签包括用户的年龄、性别、职业,将用户的性别字段进行量化处理,假设用M表示男性,量化后用0表示,F表示女性,量化后用1表示,对于用户的职业字段,分别用0~6七个值表示,用户的行为标签包括用户使用每个物品所属标签的次数,通过统计得到;
[0035] 步骤5.2、将用户的属性标签和行为标签作为网络的输入特征经过隐藏层进行特征提取,设置隐藏层的神经元个数为h;
[0036] 隐藏层的神经元个数h由下面的公式确定:
[0037]
[0038] 其中,p为神经网络输入的神经元个数,q为神经网络输出的神经元个数,a为1~10的常数;
[0039] 步骤5.3、将隐藏层h个神经元的输出作为全连接层的输入,再经过softmax函数后得到分类结果,最终对应L个概率值,其中,L=K,再将L个概率值和1~K个类簇对应,判断属于哪个类别的概率值最大,则属于哪个类别;
[0040] 其中,softmax函数表示为:
[0041]
[0042] 其中,w表示分类数,z属于1~w,yz表示全连接层第z个神经元的输出,将w个输出分别经过softmax函数,得到符合概率分布的分类结果。
[0043] 步骤6具体如下:
[0044] 步骤6.1、将所述步骤5得到的在同一类下的所有用户在B领域中的评分矩阵进行重组,即将同一类别下的每一个用户的评分矩阵按行放置,得到新的用户在B领域中的评分矩阵user_item_matrix_tar;
[0045] 步骤6.2、使用近邻评分预测方法对步骤6.1得到的评分矩阵user_item_matrix_tar进行填充:
[0046] 近邻评分预测公式为:
[0047]
[0048] 其中,Au是B领域中目标用户u对所有评分物品的平均分,Rvt是B领域中用户v对物品t的评分值,Av是B领域中用户u的邻居用户v对所有评分物品的平均分,sim(u,v)是B领域中目标用户u和u的邻居用户v之间的相似度数值,c是B领域中目标用户u的最近邻个数,j代表1~c中某一个最近邻;
[0049] 步骤6.3、构造对照评分矩阵contrast_score_matrix:对评分矩阵user_item_matrix_tar按列求平均值,得到对照评分矩阵contrast_score_matrix;
[0050] 步骤6.4、将需要进行跨域推荐的用户在B领域中的评分矩阵user_item_matrix_tar与该用户所属类别下的对照评分矩阵contrast_score_matrix进行对比,利用阈值比较的方法,如果对应位置的评分大于阈值,则对用户推荐B领域内的物品,如果对应位置评分小于阈值,则不给用户推荐B领域内的物品,即实现A领域和B领域的跨域推荐。
[0051] 本发明的有益效果是,一种基于标签迁移的跨域推荐方法,通过结合领域中的标签信息和评分信息,来更好地辅助目标领域完成推荐任务,不仅结合了评分知识,也融入了领域间的标签信息,以标签为知识迁移的桥梁,更好地辅助目标领域完成推荐,同时也缓解了目标领域评分稀疏的问题,提升了推荐的效果。

实施方案

[0054] 下面结合附图和具体实施方式对本发明进行详细说明。
[0055] 本发明基于标签迁移的跨域推荐方法,如图1所示,具体按照以下步骤实施:
[0056] 步骤1、假设A领域为源领域,B领域为目标领域,实现A领域与B领域之间的跨域推荐的前提条件如下:A领域与B领域存在重叠的用户,所述用户共用一套相同的标签系统并且A领域和B领域中都有对应的用户物品评分信息,通过迁移上述共享的标签信息,实现以A领域为源领域辅助目标领域B领域完成推荐任务,或者以B领域为源领域辅助目标领域A领域完成推荐任务;
[0057] 步骤1中A领域与B领域重叠的用户共用一套相同的标签,标签包括属性标签和行为标签,其中属性标签包括性别、年龄、职业,行为标签包括用户对物品所属标签的使用次数。
[0058] 步骤2、利用用户对A领域的评分信息构建A领域用户评分矩阵;
[0059] 步骤2具体如下:
[0060] 步骤2.1、利用Pandas库中的read_table函数读入用户物品评分表,该表中包括的字段有用户ID、物品ID和评分,该函数指定要打开文件的位置、用作列名的行号、用作行索引的列编号或列名,并设置python引擎来对用户物品评分表进行解析;
[0061] 步骤2.2、利用读到的用户物品评分表,使用Pandas的unique函数获取用户列名和物品列名的所有唯一值,然后使用len函数得到唯一的用户和物品的个数,结合numpy的zeros函数,创建行为用户数,列为物品数的全零二维数组;
[0062] 步骤2.3、按元组的方式遍历用户物品评分表,使用pandas的loc函数和python的内建函数getattr,将每个用户对每部物品的评分值对应起来并填充到创建的全零二维数组的对应位置,从而得到用户对物品的评分矩阵user_item_matrix,并保存为user_item_matrix.csv。
[0063] 步骤3、对A领域用户评分矩阵进行分解,得到用户潜在特征矩阵Usrc和物品潜在特征矩阵Vsrc;
[0064] 步骤3具体如下:
[0065] 步骤3.1、利用Pandas库中的read_csv函数读入步骤2得到的用户物品评分矩阵user_item_matrix.csv,通过设置用户潜在评分因子k和物品潜在评分因子l的大小以及最大迭代次数max_iter约束矩阵的分解;
[0066] 步骤3.2、不断调整用户潜在评分因子k和物品潜在评分因子l以及最大迭代次数max_iter的值以最小化目标函数,目标函数达到最小值,得到源领域中的用户潜在特征矩阵Usrc、物品潜在特征矩阵Vsrc以及集群级的用户和物品评分矩阵S。
[0067] 步骤3.2具体如下:
[0068] 通过不断地迭代以最小化目标函数:
[0069]
[0070]
[0071] 其中, m代表源领域中的用户数,k代表用户潜在评分因子,n代表源领域中物品的个数,l代表物品潜在评分因子,Usrc的大小为m×k,表示源领域中m个用户对k个用户潜在评分因子的用户潜在特征矩阵,同样,Vsrc的大小为n×l,表示源领域中n个物品对l个物品潜在评分因子的物品潜在特征矩阵。
[0072] 步骤3.2中当k=l=40,max_iter=200时,目标函数达到最小值。
[0073] 步骤4、基于用户潜在特征矩阵对用户进行聚类,聚类采用K-Means聚类方法,得到每一类别下的用户;
[0074] 步骤4具体如下:
[0075] 步骤4.1、设聚类个数为K,即对应K个初始的类簇,然后由用户潜在特征矩阵Usrc和聚类个数K,随机初始化质心矩阵centroids,再将用户特征矩阵Usrc中的每一行和质心矩阵centroids中的每一个质心之间计算欧氏距离,按照距离最短原则,将用户特征矩阵中的每一行划分到距离最近的类簇中,形成K个类簇;
[0076] 步骤4.2、更新每个类簇的中心,对每个簇内的数据求均值,得到新的质心矩阵centroids,再重新计算用户特征矩阵Usrc中的每一行和新的质心矩阵centroids中的每一个质心之间的欧氏距离,直到质心不再发生改变或者达到设定的迭代次数,最终得到了质心矩阵centroids和对应的类簇矩阵clusterAssment,这样就得到了每一类别下的用户。
[0077] 步骤4.1中计算用户特征矩阵中的每一行和质心矩阵中的每一个质心之间的欧氏距离,计算公式为:
[0078]
[0079] 其中,X表示用户特征矩阵中的某一个数据,Y表示质心矩阵中的某一个数据,xi表示用户特征矩阵中的某一个数据点的坐标,yi表示某一个质心点的坐标,f为用户特征矩阵中所有数据的个数,i代表用户特征矩阵中的某一个数据。
[0080] 步骤5、如图2所示,构建神经网络模型,对步骤4得到的不同类型下的用户使用的标签进行学习,并训练神经网络,得到能根据用户使用标签的特征对用户进行分类的神经网络模型,经过不断地训练得到最优网络模型;
[0081] 步骤5具体如下:
[0082] 步骤5.1、结合用户的属性标签和行为标签,通过量化处理后作为神经网络的输入,用户的属性标签包括用户的年龄、性别、职业,将用户的性别字段进行量化处理,假设用M表示男性,量化后用0表示,F表示女性,量化后用1表示,对于用户的职业字段,分别用0~6七个值表示,用户的行为标签包括用户使用每个物品所属标签的次数,通过统计得到;
[0083] 步骤5.2、将用户的属性标签和行为标签作为网络的输入特征经过隐藏层进行特征提取,设置隐藏层的神经元个数为h;
[0084] 隐藏层的神经元个数h由下面的公式确定:
[0085]
[0086] 其中,p为神经网络输入的神经元个数,q为神经网络输出的神经元个数,a为1~10的常数;
[0087] 步骤5.3、将隐藏层h个神经元的输出作为全连接层的输入,再经过softmax函数后得到分类结果,最终对应L个概率值,其中,L=K,再将L个概率值和1~K个类簇对应,判断属于哪个类别的概率值最大,则属于哪个类别;
[0088] 其中,softmax函数表示为:
[0089]
[0090] 其中,w表示分类数,z属于1~w,yz表示全连接层第z个神经元的输出,将w个输出分别经过softmax函数,得到符合概率分布的分类结果。
[0091] 步骤6、对每一类下的用户进行跨域推荐。
[0092] 步骤6具体如下:
[0093] 步骤6.1、将所述步骤5得到的在同一类下的所有用户在B领域中的评分矩阵进行重组,即将同一类别下的每一个用户的评分矩阵按行放置,得到新的用户在B领域中的评分矩阵user_item_matrix_tar;
[0094] 步骤6.2、使用近邻评分预测方法对步骤6.1得到的评分矩阵user_item_matrix_tar进行填充:
[0095] 近邻评分预测公式为:
[0096]
[0097] 其中,Au是B领域中目标用户u对所有评分物品的平均分,Rvt是B领域中用户v对物品t的评分值,Av是B领域中用户u的邻居用户v对所有评分物品的平均分,sim(u,v)是B领域中目标用户u和u的邻居用户v之间的相似度数值,c是B领域中目标用户u的最近邻个数,j代表1~c中某一个最近邻;
[0098] 步骤6.3、构造对照评分矩阵contrast_score_matrix:对评分矩阵user_item_matrix_tar按列求平均值,得到对照评分矩阵contrast_score_matrix;
[0099] 步骤6.4、将需要进行跨域推荐的用户在B领域中的评分矩阵user_item_matrix_tar与该用户所属类别下的对照评分矩阵contrast_score_matrix进行对比,利用阈值比较的方法,如果对应位置的评分大于阈值,则对用户推荐B领域内的物品,如果对应位置评分小于阈值,则不给用户推荐B领域内的物品,即实现A领域和B领域的跨域推荐。
[0100] 本发明基于标签迁移的跨域推荐方法,在迁移学习的过程中,将评分稠密的领域作为源领域,将评分稀疏的领域作为目标领域,迁移的目的是通过将源领域中的知识迁移到目标领域中,辅助目标领域来完成推荐的任务。对源领域中稠密的用户物品评分矩阵,由于维度较高,首先对评分矩阵进行非负正交矩阵分解,得到用户潜在特征矩阵和物品潜在特征矩阵,然后基于用户潜在特征矩阵,使用K-Means聚类方法,对用户进行聚类,这样就可以得到不同类型下的用户,接下来,通过设计神经网络模型,对每个类别下用户使用的标签特征进行学习,通过不断地训练得到最优的网络模型,得到一个能根据用户使用的标签特征来对用户进行分类的神经网络模型,然后对用户进行跨域推荐。
[0101] 实施例
[0102] 本发明基于标签迁移的跨领域推荐方法,针对单域推荐中存在的数据稀疏性问题和冷启动问题,结合用户的属性标签(性别、年龄、职业等)和用户的行为标签(用户对物品所属标签的使用次数),在电影领域和图书领域之间完成跨域推荐。架构图如图1所示。
[0103] (1)以电影领域作为源领域,首先利用用户对电影的评分信息构建用户电影评分矩阵:利用Pandas库中的read_table函数读入用户电影评分表ratings.dat,其中该表中包括的字段包括用户ID,电影ID和评分。通过该方法可以指定要打开文件的位置、用作列名的行号、用作行索引的列编号或列名等,并设置python引擎来对用户物品评分表进行解析。利用读到的用户电影评分表,使用Pandas的unique函数获取用户列名和电影列名的所有唯一值,然后使用len函数得到唯一的用户和电影的个数,结合numpy的zeros函数,创建一个行为用户数,列为电影数的全零的一个二维数组,再按元组的方式遍历用户电影评分表,使用pandas的loc函数和python的内建函数getattr,将每个用户对每部电影的评分值对应起来并填充到创建的全零的二维数组的对应位置,从而得到用户对电影的评分矩阵user_item_matrix,并保存为user_item_matrix.csv。
[0104] (2)对用户电影评分矩阵user_item_matrix进行分解,得到用户潜在特征矩阵Usrc和电影潜在特征矩阵Vsrc:首先利用Pandas库中的read_csv函数读入用户电影评分矩阵user_item_matrix.csv,通过设置用户潜在特征k和电影潜在特征l的大小以及最大迭代次数max_iter来约束矩阵的分解,通过不断地调整k、l和max_iter的值以最小化目标函数,当k=l=40,max_iter=200时,目标函数达到最小值,就得到了源领域中的用户潜在特征矩阵Usrc、电影潜在特征矩阵Vsrc以及集群级的用户和电影评分矩阵S。
[0105] (3)基于用户潜在特征矩阵Usrc,对用户进行聚类,聚类所采用的方法是K-Means聚类方法,得到每一类别下的用户。首先设定聚类个数K=5,即对应5个初始的类簇,然后由用户潜在特征矩阵Usrc和聚类个数K,随机初始化质心矩阵centroids,再将用户特征矩阵Usrc中的每一行和质心矩阵centroids中的每一个质心之间计算欧氏距离,按照距离最短原则,将用户特征矩阵中的每一行划分到距离最近的类簇中,形成5个类簇,再更新每个簇类的中心,对每个簇内的数据求均值,就得到新的质心矩阵centroids,再重新计算用户特征矩阵Usrc中的每一行和新的质心矩阵centroids中的每一个质心之间的欧氏距离,直到质心不再发生改变或者达到设定的迭代次数,最终得到的质心矩阵centroids和对应的簇类矩阵clusterAssment。
[0106] (4)设计神经网络模型,对不同类型下的用户使用的标签进行学习,训练神经网络,得到一个能根据用户使用标签特征对用户进行分类的神经网络模型,经过不断地训练得到最优网络模型。首先结合用户的属性标签和行为标签,通过量化处理后作为神经网络的输入。用户的属性标签包括用户的年龄、性别、职业等,将用户的性别字段进行量化处理,M用0来表示,F用1来表示,对于用户的职业字段,分别用0~6这七个值来表示,用户的行为标签包括用户使用每个物品所属标签的次数,通过统计得到。再将用户的属性标签和行为标签作为网络的输入特征经过隐藏层进行特征提取,设置输入特征数为21,输出为5,所以设置隐藏层的节点数为5。最后将隐藏层的输出作为全连接层的输入,再经过softmax函数后得到分类结果,最终对应5个概率值,哪个概率值较大,则属于哪个类别。
[0107] (5)对每一类下的用户进行跨域推荐。将图书领域作为目标领域,首先将同一类下的所有用户在图书领域中的评分矩阵进行重组,重组的方法就是将同一类别下的每一个用户的评分矩阵按行放置,得到一个新的用户在图书领域中的评分矩阵user_item_matrix_tar,然后使用近邻评分预测方法对该矩阵进行填充。接下来构造对照评分矩阵contrast_score_matrix。对评分矩阵user_item_matrix_tar,按列求平均值,得到对照评分矩阵contrast_score_matrix。最后将需要进行跨域推荐的用户在图书领域中的评分矩阵user_item_matrix_tar与该用户所属类别下的对照评分矩阵contrast_score_matrix进行对比,利用阈值比较的方法,考虑到用户对物品的打分范围为1~5分,所以设定阈值的大小为3,如果对应位置的评分大于阈值,则可以对用户推荐这类图书,如果对应位置评分小于阈值,则不给用户推荐这类图书。这样就实现了电影领域和图书领域的跨域推荐。
[0108] 本发明应用在跨领域的推荐系统中,用于将源领域稠密的知识通过迁移学习的方法应用到评分知识稀疏的目标领域中,辅助目标领域完成对用户的推荐任务。传统的推荐算法大都集中在单一领域的推荐任务中,随着大数据时代的来临,传统的单域推荐中存在的数据稀疏性问题和冷启动问题愈发严重,迫切需要跨领域的方法来缓解这种问题。本发明提出利用评分知识和领域中的标签信息,通过迁移领域中的标签信息,对目标领域中的用户进行分类,再对每一类用户进行跨域推荐。

附图说明

[0052] 图1是本发明的网络模型架构图;
[0053] 图2是本发明的神经网络模型图。
版权所有:盲专网 ©2023 zlpt.xyz  蜀ICP备2023003576号