[go: up one dir, main page]

CN118193858B - 一种基于图卷积网络的协同过滤推荐方法及装置 - Google Patents

一种基于图卷积网络的协同过滤推荐方法及装置 Download PDF

Info

Publication number
CN118193858B
CN118193858B CN202410613315.7A CN202410613315A CN118193858B CN 118193858 B CN118193858 B CN 118193858B CN 202410613315 A CN202410613315 A CN 202410613315A CN 118193858 B CN118193858 B CN 118193858B
Authority
CN
China
Prior art keywords
matrix
user
item
embedding
encoding
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202410613315.7A
Other languages
English (en)
Other versions
CN118193858A (zh
Inventor
杨昕
刘慧�
田元荣
柳叶
沈蝶
苏冰冰
杜晨昊
任慧玲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Central South University
Original Assignee
Central South University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Central South University filed Critical Central South University
Priority to CN202410613315.7A priority Critical patent/CN118193858B/zh
Publication of CN118193858A publication Critical patent/CN118193858A/zh
Application granted granted Critical
Publication of CN118193858B publication Critical patent/CN118193858B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9536Search customisation based on social or collaborative filtering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/042Knowledge-based neural networks; Logical representations of neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种协同过滤推荐方法,具体是涉及到一种基于图卷积网络的协同过滤推荐方法及装置。方法包括:对数据集中的用户和项目进行编码得到第一编码矩阵和第二编码矩阵,并基于数据集构建加权用户‑项目图的第一邻接矩阵和加权用户‑用户图的第二邻接矩阵;对用户和项目进行嵌入,得到用户嵌入矩阵和项目嵌入矩阵;基于用户嵌入矩阵、第一邻接矩阵、第二邻接矩阵和项目嵌入矩阵进行消息传递,得到用户的最终表示和项目的最终表示;基于用户的最终表示和项目的最终表示计算正负样本预测评分对,正负样本预测评分对用于训练待训练推荐模型,得到训练好的推荐模型;基于训练好的推荐模型进行项目偏好推荐。本发明实施例可提高推荐结果准确度。

Description

一种基于图卷积网络的协同过滤推荐方法及装置
技术领域
本发明属于一种协同过滤推荐方法,具体是涉及到一种基于图卷积网络的协同过滤推荐方法及装置。
背景技术
推荐系统是一种信息过滤系统,基于用户的历史行为,通过学习和预测用户的偏好,向用户推荐符合用户偏好的物品。推荐问题可以被表示成一个最大化用户效用的问题,其中变量是为用户挑选的项目,预测评分是项目的效用。推荐的核心问题可以被描述为从已知评分推断未知评分,从而根据推断出的未知评分来给用户做推荐,通常可以将用户和项目的交互以矩阵形式给出,推荐的任务就是补全矩阵。这个过程包括定义效用函数的算法和估计优化特定性能指标的效用函数。协同过滤是推荐系统中一种非常流行的方法,它假设具有相似行为的用户将对项目表现出相似的偏好。协同过滤的主要是通过学习潜在特征(也称为嵌入)来表示用户和项目,并基于嵌入向量生成预测结果以推断用户对项目的偏好。
现有技术以向量的形式来表示用户和项目,通过在用户-项目二分图(如图1所示)上使用图卷积进行消息传递,从而捕获用户和项目之间的协同信号,从而细化对用户和项目的表达,即:,其中是用户和项目节点的嵌入矩阵,表示第层使用的参数矩阵,为归一化后的对称邻接矩阵,为非线性激活函数。然后,通过执行对应的用户向量和项目向量的内积计算出预测评分,输入损失函数,然后通过反向传播计算梯度,更新参数,不断反复训练模型直到模型收敛,最终根据训练好的推荐模型为用户产生推荐列表。
由于现有技术仅注重对交互关系的建模,而忽视了项目属性本身对于推荐的重要性,导致输出的推荐结果准确度较差。
发明内容
本发明要解决的技术问题是现有技术仅注重对交互关系的建模,而忽视了项目属性本身对于推荐的重要性,导致输出的推荐结果准确度较差,为了解决上述问题,本发明提供一种基于图卷积网络的协同过滤推荐方法及装置。
本发明的内容包括:
第一方面,本发明实施例提供了一种基于图卷积网络的协同过滤推荐方法,包括:
对推荐系统领域的数据集中的用户和项目进行编码得到第一编码矩阵和第二编码矩阵,并基于所述数据集构建加权用户-项目图的第一邻接矩阵和加权用户-用户图的第二邻接矩阵;
对所述用户和所述项目进行嵌入,得到用户嵌入矩阵和项目嵌入矩阵;
基于所述用户嵌入矩阵、所述第一邻接矩阵、所述第二邻接矩阵和所述项目嵌入矩阵进行消息传递,得到所述用户的最终表示和所述项目的最终表示;
基于所述用户的最终表示和所述项目的最终表示计算正负样本预测评分对,所述正负样本预测评分对用于训练待训练推荐模型,得到训练好的推荐模型;
基于所述训练好的推荐模型进行项目偏好推荐。
可选地,所述对推荐系统领域的数据集中的用户和项目进行编码得到第一编码矩阵和第二编码矩阵,包括:
基于独热编码的方式对所述用户进行编码,得到所述第一编码矩阵,所述第一编码矩阵用于包括以独热编码的方式对所有所述用户进行的编号;
基于二进制的方式对所述项目的属性信息进行编码,得到所述第二编码矩阵,所述第二编码矩阵包括所有所述项目的属性信息编码。
可选地,所述基于二进制的方式对所述项目的属性信息进行编码,得到所述第二编码矩阵,包括:
基于二进制的方式分别对所述项目的每个属性信息进行编码,得到属性编码;
对于每一个所述项目,将所述项目对应的所述属性编码拼接得到属性向量;
将所述属性向量按照项目拼接成所述第二编码矩阵。
可选地,所述基于所述数据集构建加权用户-项目图的第一邻接矩阵和加权用户-用户图的第二邻接矩阵,包括:
基于所述数据集构建所述加权用户-项目图的第一邻接矩阵和参考矩阵,所述第一邻接矩阵用于表征用户和项目的交互显式反馈值;
基于所述参考矩阵构建所述加权用户-用户图的第二邻接矩阵,所述第二邻接矩阵用于表征任意两个用户共同交互过的项目数量。
可选地,所述对所述用户和所述项目进行嵌入,得到用户嵌入矩阵和项目嵌入矩阵,包括:
随机初始化第一参数矩阵和第二参数矩阵;
使用所述第一参数矩阵和所述第一编码矩阵对所述用户进行嵌入,得到所述用户嵌入矩阵,以及使用所述第二参数矩阵和所述第二编码矩阵对所述项目进行嵌入,得到所述项目嵌入矩阵。
可选地,所述基于所述用户嵌入矩阵、所述第一邻接矩阵、所述第二邻接矩阵和所述项目嵌入矩阵进行消息传递,得到所述用户的最终表示和所述项目的最终表示,包括:
使用所述用户嵌入矩阵、所述第一邻接矩阵和所述项目嵌入矩阵在所述加权用户-项目图中进行消息传递,得到第一中间结果;
使用所述用户嵌入矩阵和所述第二邻接矩阵在所述加权用户-用户图中进行消息传递,得到第二中间结果;
基于所述第一中间结果和所述第二中间结果计算所述用户的最终表示;
对所述项目嵌入矩阵进行非线性激活,得到所述项目的最终表示。
可选地,所述基于所述用户的最终表示和所述项目的最终表示计算正负样本预测评分对,包括:
对于每一个所述用户,随机抽取一个正样本和一个负样本,所述正样本为与所述用户交互过的项目,所述负样本为与所述用户未交互过的项目;
基于所述用户的最终表示、所述正样本的最终表示和所述负样本的最终表示计算所述正负样本预测评分对。
第二方面,本发明实施例提供了一种基于图卷积网络的协同过滤推荐装置,包括:
处理模块,用于对推荐系统领域的数据集中的用户和项目进行编码得到第一编码矩阵和第二编码矩阵,并基于所述数据集构建加权用户-项目图的第一邻接矩阵和加权用户-用户图的第二邻接矩阵;
嵌入模块,用于对所述用户和所述项目进行嵌入,得到用户嵌入矩阵和项目嵌入矩阵;
消息传递模块,用于基于所述用户嵌入矩阵、所述第一邻接矩阵、所述第二邻接矩阵和所述项目嵌入矩阵进行消息传递,得到所述用户的最终表示和所述项目的最终表示;
计算模块,用于基于所述用户的最终表示和所述项目的最终表示计算正负样本预测评分对,所述正负样本预测评分对用于训练待训练推荐模型,得到训练好的推荐模型;
推荐模块,用于基于所述训练好的推荐模型进行项目偏好推荐。
第三方面,本发明实施例提供一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的程序;所述处理器,用于读取存储器中的程序实现如第一方面所述的基于图卷积网络的协同过滤推荐方法中的步骤。
第四方面,本发明实施例提供一种可读存储介质,用于存储程序,所述程序被处理器执行时实现如第一方面所述的基于图卷积网络的协同过滤推荐方法中的步骤。
在本发明实施例中,使用二进制方式对项目属性进行编码以降低属性向量的维度从而大幅度减少了训练参数的数量,然后通过将属性向量进行嵌入来表示项目;以多跳图的方式构建单向传播的用户-项目加权图和用户-用户加权图,并使用图卷积在图上进行消息传播,通过将各图结果聚合来表示用户。通过对项目属性的编码和嵌入和基于多跳图的单向传播结构,保留了项目属性信息,并且更加显式地、有区别地捕获了协同信号,改善了对用户和项目的表达,从而提升了推荐性能。
附图说明
附图1为现有技术中以向量的形式来表示用户和项目的用户-项目二分图示意图;
附图2为本发明实施例提供的基于图卷积网络的协同过滤推荐方法的流程图;
附图3为本发明实施例中得到的各个模型的推荐性能对比示意图;
附图4为本发明实施例提供的基于图卷积网络的协同过滤推荐装置示意图;
附图5为本发明实施例提供的电子设备的结构示意图。
具体实施方式
本申请实施例中术语“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请实施例中术语“多个”是指两个或两个以上,其它量词与之类似。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,并不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参见图2,图2为本发明实施例提供的基于图卷积网络的协同过滤推荐方法的流程示意图,本方法具体包括以下步骤:
步骤101,对推荐系统领域的数据集中的用户和项目进行编码得到第一编码矩阵和第二编码矩阵,并基于所述数据集构建加权用户-项目图的第一邻接矩阵和加权用户-用户图的第二邻接矩阵。
步骤102,对所述用户和所述项目进行嵌入,得到用户嵌入矩阵和项目嵌入矩阵。
步骤103,基于所述用户嵌入矩阵、所述第一邻接矩阵、所述第二邻接矩阵和所述项目嵌入矩阵进行消息传递,得到所述用户的最终表示和所述项目的最终表示。
步骤104,基于所述用户的最终表示和所述项目的最终表示计算正负样本预测评分对,所述正负样本预测评分对用于训练待训练推荐模型,得到训练好的推荐模型。
步骤105,基于所述训练好的推荐模型进行项目偏好推荐。
可选地,在一些实施例中,所述步骤101中的对推荐系统领域的数据集中的用户和项目进行编码得到第一编码矩阵和第二编码矩阵,包括:
基于独热编码的方式对所述用户进行编码,得到所述第一编码矩阵,所述第一编码矩阵用于包括以独热编码的方式对所有所述用户进行的编号;
基于二进制的方式对所述项目的属性信息进行编码,得到所述第二编码矩阵,所述第二编码矩阵包括所有所述项目的属性信息编码。
应理解的是,独热编码(One-Hot Encoding)是一种用于表示分类变量的方法,它通过将分类值映射到整数值,并将这些整数值表示为二进制向量来编码。在独热编码中,除了整数的索引之外,其他位都设置为零,而索引对应的位被设置为1。这种方法使得分类变量的每个取值都对应一个唯一的二进制向量,从而可以在机器学习算法中使用这些向量作为特征。
可选地,在一些实施例中,所述基于二进制的方式对所述项目的属性信息进行编码,得到第二编码矩阵,包括:
基于二进制的方式分别对所述项目的每个属性信息进行编码,得到属性编码;
对于每一个所述项目,将所述项目对应的所述属性编码拼接得到属性向量;
将所述属性向量按照项目拼接成所述第二编码矩阵。
可选地,在一些实施例中,所述步骤101中的所述基于所述数据集构建加权用户-项目图的第一邻接矩阵和加权用户-用户图的第二邻接矩阵,包括:
基于所述数据集构建所述加权用户-项目图的第一邻接矩阵和参考矩阵,所述第一邻接矩阵用于表征用户和项目的交互显式反馈值;
基于所述参考矩阵构建所述加权用户-用户图的第二邻接矩阵,所述第二邻接矩阵用于表征任意两个用户共同交互过的项目数量。
作为一个具体的实施例,所述步骤101包括以下步骤:
S11:以独热编码的方式对用户进行编码。以独热编码的方式对用户进行编码,即:
其中,m为用户数量,并将它们拼接成一个m×m的矩阵,这个矩阵为第一编码矩阵,这个矩阵表示以独热编码的方式对推荐系统中的所有用户进行的编号。
S12:用二进制的方式对项目的属性信息(比如在电影推荐中,项目的属性信息可能包括导演、类型、年份等)进行编码。特别地,对项目的某个属性,用对这个属性进行编码,其中为这个属性下的唯一属性值的总个数。用同样的方式分别对每个属性进行二进制编码,然后,为每个项目从编码集合中挑出对应的属性编码并将其拼接成一个的属性向量,并将这些向量按项目拼接成一个的矩阵,这个矩阵为第二编码矩阵,这个矩阵存储了所有项目的属性信息编码,也可以被看成以属性信息编码的方式对推荐系统中的所有用户进行的编号,其中,为属性信息的数量,为项目的数量。
S13:推荐系统领域的数据集中用户和项目交互数据的基本形式是(用户id,项目id,显式反馈(例如交互显式反馈值或评分)),没有交互过的不会出现在数据集中。根据这些数据,构建一个的矩阵,其中当某个用户与某个项目交互过时,对应位置元素为其显式反馈的值如评分值(在具体实现时,可以为归一化后的评分值),否则为0,即构建好了加权用户-项目图对应的第一邻接矩阵,表示用户与项目之间是否以一定的显式反馈值交互过。类似地,构建一个的参考矩阵,其中当某个用户与某个项目交互过时,对应位置元素为1,否则为0,这个参考矩阵主要是用于用户-用户图的构建。接着,执行,其中表示用户节点对应的度对角矩阵。最终,构建了加权用户-用户图,其第二邻接矩阵为中非0元素表示节点之间的路径数,其实际意义是两个用户共同交互过的项目数量(归一化后),0元素表示两个用户之间没有交互过共同的项目。
可选地,所述对所述用户和所述项目进行嵌入,得到用户嵌入矩阵和项目嵌入矩阵,包括:
随机初始化第一参数矩阵和第二参数矩阵;
使用所述第一参数矩阵和所述第一编码矩阵对所述用户进行嵌入,得到所述用户嵌入矩阵,以及使用所述第二参数矩阵和所述第二编码矩阵对所述项目进行嵌入,得到所述项目嵌入矩阵。
作为一个具体的实施例,所述步骤102具体包括以下步骤:
S21:使用随机初始化大小为的第一参数矩阵和大小为的第二参数矩阵,其中为嵌入向量的维度。需要说明的是,在本实施例中第一参数矩阵和第二参数矩阵为深度学习模型中用于线性变换操作的可学习的纯数字矩阵,仅用于计算,不表征任何实际的物理意义。
S22:对用户,执行,使用第一参数矩阵对用户进行嵌入,得到的用户嵌入矩阵,即用户的初始嵌入。
S23:对项目,执行,使用第二参数矩阵对项目进行嵌入,得到的项目嵌入矩阵,即项目的初始嵌入。
可选地,所述基于所述用户嵌入矩阵、所述第一邻接矩阵、所述第二邻接矩阵和所述项目嵌入矩阵进行消息传递,得到所述用户的最终表示和所述项目的最终表示,包括:
使用所述用户嵌入矩阵、所述第一邻接矩阵和所述项目嵌入矩阵在所述加权用户-项目图中进行消息传递,得到第一中间结果;
使用所述用户嵌入矩阵和所述第二邻接矩阵在所述加权用户-用户图中进行消息传递,得到第二中间结果;
基于所述第一中间结果和所述第二中间结果计算所述用户的最终表示;
对所述项目嵌入矩阵进行非线性激活,得到所述项目的最终表示。
作为一个具体的实施例,所述步骤103具体包括以下步骤:
S31:使用步骤102中生成的用户和项目的嵌入向量在加权用户-项目图中进行消息传递,具体地,执行,为每个用户节点聚合它的邻居项目节点的信息,并且加上它自身的自连接,得到的结果为第一中间结果。
S32:使用步骤102中得到的用户和项目的嵌入向量在加权用户-用户图中进行消息传递,具体地,执行,为每个用户节点以聚合它的邻居用户节点的信息,得到的结果为第二中间结果。
S33:对S31和S32的结果使用累加进行融合,并使用激活函数对其进行非线性变换,即用户的最终表示:
S34:对项目嵌入矩阵使用进行非线性激活,即项目的最终表示:
可选地,所述基于所述用户的最终表示和所述项目的最终表示计算正负样本预测评分对,包括:
对于每一个所述用户,随机抽取一个正样本和一个负样本,所述正样本为与所述用户交互过的项目,所述负样本为与所述用户未交互过的项目;
基于所述用户的最终表示、所述正样本的最终表示和所述负样本的最终表示计算所述正负样本预测评分对。
在具体实现时,预先对推荐模型进行训练,预测分数被定义为用户和项目最终表示的内积,将其输入到损失函数中对待训练推荐模型进行分批训练,直到损失函数收敛,得到训练好的推荐模块,之后训练好的推荐模型即可用于用户对项目偏好的推荐。
作为一个具体的实施例,所述步骤104具体包括以下步骤:
S41:对于每一个用户,随机抽取一个正样本(这个用户交互过的项目)和一个负样本(这个用户未交互过的项目),并使用内积分别计算出用户对正样本和用户对负样本的预测评分。具体地,用户对正样本的预测评分满足:;用户对负样本的预测评分满足:
其中,表示对应用户和项目的最终表示向量。对于所有用户,做法是相似的,最终有m对正负样本预测评分对。
S42:将得到的正负样本预测评分对输入到损失函数中,其中为正负样本预测评分对集合,为正则化系数。然后反向传播,计算梯度,更新参数,实现对待训练推荐模型的训练。
S43:假设总共有个正样本,设定批量为,分成批,其中,,对每一批重复S41-S42;
S44:重复S43,直到损失函数收敛,停止训练,得到训练好的推荐模型;
S45:以上训练好的推荐模型可以称为基于图卷积网络的协同过滤推荐模型,该模型即可用于用户对项目的偏好推荐。
下面对本方案在Python环境中的一种具体实施过程进行说明:
1、在本实施例中,推荐系统领域的数据集为Douban电影评分数据集。电影评分数据集是从现有的电影获取的,其中包括用户对电影的评分信息,评分范围从1到5,以及电影的属性,如导演、类型、语言等。使用pandas读取电影评分文件和电影属性文件,通过使用numpy、torch等,最终将数据处理成二维tensor的形式,包括用户-项目图的第一邻接矩阵、用户-用户图的第二邻接矩阵、项目属性矩阵(即第二编码矩阵)。特别地,在读取数据集后,首先按照8:2的比例划分训练集和测试集,训练集用于训练模型,测试集用于测试、评估模型,且训练集和测试集的数据处理方式是相似的。
2、通过调用继承nn.Module类,在这个类下定义图卷积网络结构。首先,定义相关超参数的初始化,比如嵌入大小、L2系数、丢弃率等;其次,使用nn.Parameter定义参数矩阵,并使用nn.init.xavier_uniform_初始化第一参数矩阵和第二参数矩阵,其中矩阵的形式是二维tensor;然后,在forward函数下设计图卷积网络结构,输入为用户-项目图的第一邻接矩阵、用户-用户图的第二邻接矩阵、项目属性矩阵、用户和项目索引等,其中非线性激活通过调用nn.LeakyReLU()实现,最终输出是用户和项目矩阵(即用户的最终表示和项目的最终表示),形式是二维tensor。
3、找出每个用户的正样本集合和负样本集合,并且从正样本集合和负样本集合中分别随机抽出一个正样本和负样本,并与这个用户构成一个三元组<user, pos_item,neg_item>,以对应索引的形式储存。
4、通过3中的结果,在2中输出的用户和项目矩阵中,索引出对应用户和项目的向量,将其输入到损失函数中,损失函数会返回函数值。本方案用到的优化器optimizer通过使用optim.Adam定义,输入主要为学习率大小和全部参数。然后,通过将梯度清零,通过将loss向输入侧进行反向传播,同时对所有参数进行梯度的计算,再通过更新所有的参数。
5、本方案采用作为推荐性能的评价指标,实施推荐。具体地,在最后一轮训练完之后,会输出一个预测评分矩阵,其中元素代表用户对项目的预测评分。使用torch.topk函数找出每个用户预测评分最高的前20个项目的索引,然后计算对应的召回率(Recall)、准确率(Precision)和NDCG (归一化折损累计增益Normalized Discounted Cumulative Gain)三个指标。表1展示的是本发明与其它baselines的推荐性能对比。从表1和图3中可以看出,本申请提供的方案在Douban电影评分数据集中比其他模型的性能更好,实现了实现了最佳性能。
表1. 推荐性能对比
本发明提供了一种基于图卷积网络的协同过滤推荐方法,属于推荐系统领域。包括:基于推荐系统领域的数据集,编码用户和项目,以及构建加权用户-项目图、加权用户-用户图;对用户和项目进行嵌入,即用户和项目的初始表示;引入图卷积操作,基于加权用户-项目图、加权用户-用户图进行消息传递(项目到用户的单向传递),并通过累加的方式对其进行融合,得到用户和项目的最终表示;预测分数被定义为用户和项目最终表示的内积,将其输入到损失函数中对模型进行分批训练,直到损失函数收敛,之后训练好的模型即可用于用户对项目偏好的推荐。
根据前述内容可知,该方法使用二进制方式对项目属性进行编码以降低属性向量的维度从而大幅度减少了训练参数的数量,然后通过将属性向量进行嵌入来表示项目;以多跳图的方式构建单向传播的用户-项目加权图和用户-用户加权图,并使用图卷积在图上进行消息传播,通过将各图结果聚合来表示用户。通过对项目属性的编码和嵌入和基于多跳图的单向传播结构,保留了项目属性信息,并且更加显式地、有区别地捕获了协同信号,改善了对用户和项目的表达,从而提升了推荐性能。
请参见图4,本发明实施例还提供了一种基于图卷积网络的协同过滤推荐装置400,包括:
处理模块401,用于对推荐系统领域的数据集中的用户和项目进行编码得到第一编码矩阵和第二编码矩阵,并基于所述数据集构建加权用户-项目图的第一邻接矩阵和加权用户-用户图的第二邻接矩阵;
嵌入模块402,用于对所述用户和所述项目进行嵌入,得到用户嵌入矩阵和项目嵌入矩阵;
消息传递模块403,用于基于所述用户嵌入矩阵、所述第一邻接矩阵、所述第二邻接矩阵和所述项目嵌入矩阵进行消息传递,得到所述用户的最终表示和所述项目的最终表示;
计算模块404,用于基于所述用户的最终表示和所述项目的最终表示计算正负样本预测评分对,所述正负样本预测评分对用于训练待训练推荐模型,得到训练好的推荐模型;
推荐模块405,用于基于所述训练好的推荐模型进行项目偏好推荐。
可选地,所述处理模块401包括:
第一编码单元,用于基于独热编码的方式对所述用户进行编码,得到所述第一编码矩阵,所述第一编码矩阵用于包括以独热编码的方式对所有所述用户进行的编号;
第二编码单元,用于基于二进制的方式对所述项目的属性信息进行编码,得到所述第二编码矩阵,所述第二编码矩阵包括所有所述项目的属性信息编码。
可选地,所述第二编码单元具体用于:
基于二进制的方式分别对所述项目的每个属性信息进行编码,得到属性编码;
对于每一个所述项目,将所述项目对应的所述属性编码拼接得到属性向量;
将所述属性向量按照项目拼接成所述第二编码矩阵。
可选地,所述处理模块401包括:
第一构建单元,用于基于所述数据集构建所述加权用户-项目图的第一邻接矩阵和参考矩阵,所述第一邻接矩阵用于表征用户和项目的交互显式反馈值;
第二构建单元,用于基于所述参考矩阵构建所述加权用户-用户图的第二邻接矩阵,所述第二邻接矩阵用于表征任意两个用户共同交互过的项目数量。
可选地,所述嵌入模块402包括:
初始化单元,用于随机初始化第一参数矩阵和第二参数矩阵;
嵌入单元,用于使用所述第一参数矩阵和所述第一编码矩阵对所述用户进行嵌入,得到所述用户嵌入矩阵,以及使用所述第二参数矩阵和所述第二编码矩阵对所述项目进行嵌入,得到所述项目嵌入矩阵。
可选地,所述消息传递模块403包括:
第一消息传递单元,用于使用所述用户嵌入矩阵、所述第一邻接矩阵和所述项目嵌入矩阵在所述加权用户-项目图中进行消息传递,得到第一中间结果;
第二消息传递单元,用于使用所述用户嵌入矩阵和所述第二邻接矩阵在所述加权用户-用户图中进行消息传递,得到第二中间结果;
第一计算单元,用于基于所述第一中间结果和所述第二中间结果计算所述用户的最终表示;
激活单元,用于对所述项目嵌入矩阵进行非线性激活,得到所述项目的最终表示。
可选地,所述计算模块404包括:
抽取单元,用于对于每一个所述用户,随机抽取一个正样本和一个负样本,所述正样本为与所述用户交互过的项目,所述负样本为与所述用户未交互过的项目;
第二计算单元,用于基于所述用户的最终表示、所述正样本的最终表示和所述负样本的最终表示计算所述正负样本预测评分对。
本申请实施例提供的基于图卷积网络的协同过滤推荐装置400,可以执行上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
如图5所示,本申请实施例提供了一种电子设备500,包括:存储器502、处理器501及存储在所述存储器502上并可在所述处理器501上运行的程序;所述处理器501,用于读取存储器502中的程序实现如前所述的基于图卷积网络的协同过滤推荐方法中的步骤。
本申请实施例还提供一种可读存储介质,可读存储介质上存储有程序,该程序被处理器执行时实现上述基于图卷积网络的协同过滤推荐方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的可读存储介质,可以是处理器能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘((Magneto-Optical Disk,MO)等)、光学存储器(例如光盘(Compact Disk,CD)、数字视频光盘(Digital Versatile Disc,DVD)、蓝光光碟(Blu-ray Disc,BD)、高清通用光盘(High-Definition Versatile Disc,HVD)等)、以及半导体存储器(例如只读存储器(Read-Only Memory,ROM)、可擦除可编程只读存储器(Erasable Programmable Read-OnlyMemory,EPROM)、带电可擦可编程只读存储器(Electrically Erasable Programmableread only memory,EEPROM)、非易失性存储器(NAND FLASH)、固态硬盘(Solid State Disk或Solid State Drive,SSD))等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。根据这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁盘、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。

Claims (8)

1.一种基于图卷积网络的协同过滤推荐方法,其特征是,包括:
对推荐系统领域的数据集中的用户和项目进行编码得到第一编码矩阵和第二编码矩阵,并基于所述数据集构建加权用户-项目图的第一邻接矩阵和加权用户-用户图的第二邻接矩阵,所述第一邻接矩阵用于表征用户和项目的交互显式反馈值,所述第二邻接矩阵用于表征任意两个用户共同交互过的项目数量;
对所述用户和所述项目进行嵌入,得到用户嵌入矩阵和项目嵌入矩阵;
基于所述用户嵌入矩阵、所述第一邻接矩阵、所述第二邻接矩阵和所述项目嵌入矩阵进行消息传递,得到所述用户的最终表示和所述项目的最终表示;
基于所述用户的最终表示和所述项目的最终表示计算正负样本预测评分对,所述正负样本预测评分对用于训练待训练推荐模型,得到训练好的推荐模型;
基于所述训练好的推荐模型进行项目偏好推荐;
其中,所述对所述用户和所述项目进行嵌入,得到用户嵌入矩阵和项目嵌入矩阵,包括:随机初始化第一参数矩阵和第二参数矩阵;使用所述第一参数矩阵和所述第一编码矩阵对所述用户进行嵌入,得到所述用户嵌入矩阵,以及使用所述第二参数矩阵和所述第二编码矩阵对所述项目进行嵌入,得到所述项目嵌入矩阵;
所述基于所述用户嵌入矩阵、所述第一邻接矩阵、所述第二邻接矩阵和所述项目嵌入矩阵进行消息传递,得到所述用户的最终表示和所述项目的最终表示,包括:使用所述用户嵌入矩阵、所述第一邻接矩阵和所述项目嵌入矩阵在所述加权用户-项目图中进行消息传递,得到第一中间结果;使用所述用户嵌入矩阵和所述第二邻接矩阵在所述加权用户-用户图中进行消息传递,得到第二中间结果;基于所述第一中间结果和所述第二中间结果计算所述用户的最终表示;对所述项目嵌入矩阵进行非线性激活,得到所述项目的最终表示。
2.如权利要求1所述的方法,其特征是,所述对推荐系统领域的数据集中的用户和项目进行编码得到第一编码矩阵和第二编码矩阵,包括:
基于独热编码的方式对所述用户进行编码,得到所述第一编码矩阵,所述第一编码矩阵用于包括以独热编码的方式对所有所述用户进行的编号;
基于二进制的方式对所述项目的属性信息进行编码,得到所述第二编码矩阵,所述第二编码矩阵包括所有所述项目的属性信息编码。
3.如权利要求2所述的方法,其特征是,所述基于二进制的方式对所述项目的属性信息进行编码,得到所述第二编码矩阵,包括:
基于二进制的方式分别对所述项目的每个属性信息进行编码,得到属性编码;
对于每一个所述项目,将所述项目对应的所述属性编码拼接得到属性向量;
将所述属性向量按照项目拼接成所述第二编码矩阵。
4.如权利要求2所述的方法,其特征是,所述基于所述数据集构建加权用户-项目图的第一邻接矩阵和加权用户-用户图的第二邻接矩阵,包括:
基于所述数据集构建所述加权用户-项目图的第一邻接矩阵和参考矩阵,所述第一邻接矩阵用于表征用户和项目的交互显式反馈值;
基于所述参考矩阵构建所述加权用户-用户图的第二邻接矩阵,所述第二邻接矩阵用于表征任意两个用户共同交互过的项目数量。
5.如权利要求1所述的方法,其特征是,所述基于所述用户的最终表示和所述项目的最终表示计算正负样本预测评分对,包括:
对于每一个所述用户,随机抽取一个正样本和一个负样本,所述正样本为与所述用户交互过的项目,所述负样本为与所述用户未交互过的项目;
基于所述用户的最终表示、所述正样本的最终表示和所述负样本的最终表示计算所述正负样本预测评分对。
6.一种基于图卷积网络的协同过滤推荐装置,其特征是,包括:
处理模块,用于对推荐系统领域的数据集中的用户和项目进行编码得到第一编码矩阵和第二编码矩阵,并基于所述数据集构建加权用户-项目图的第一邻接矩阵和加权用户-用户图的第二邻接矩阵,所述第一邻接矩阵用于表征用户和项目的交互显式反馈值,所述第二邻接矩阵用于表征任意两个用户共同交互过的项目数量;
嵌入模块,用于对所述用户和所述项目进行嵌入,得到用户嵌入矩阵和项目嵌入矩阵;
消息传递模块,用于基于所述用户嵌入矩阵、所述第一邻接矩阵、所述第二邻接矩阵和所述项目嵌入矩阵进行消息传递,得到所述用户的最终表示和所述项目的最终表示;
计算模块,用于基于所述用户的最终表示和所述项目的最终表示计算正负样本预测评分对,所述正负样本预测评分对用于训练待训练推荐模型,得到训练好的推荐模型;
推荐模块,用于基于所述训练好的推荐模型进行项目偏好推荐;
其中,所述嵌入模块包括:初始化单元,用于随机初始化第一参数矩阵和第二参数矩阵;嵌入单元,用于使用所述第一参数矩阵和所述第一编码矩阵对所述用户进行嵌入,得到所述用户嵌入矩阵,以及使用所述第二参数矩阵和所述第二编码矩阵对所述项目进行嵌入,得到所述项目嵌入矩阵;
所述消息传递模块包括:第一消息传递单元,用于使用所述用户嵌入矩阵、所述第一邻接矩阵和所述项目嵌入矩阵在所述加权用户-项目图中进行消息传递,得到第一中间结果;第二消息传递单元,用于使用所述用户嵌入矩阵和所述第二邻接矩阵在所述加权用户-用户图中进行消息传递,得到第二中间结果;第一计算单元,用于基于所述第一中间结果和所述第二中间结果计算所述用户的最终表示;激活单元,用于对所述项目嵌入矩阵进行非线性激活,得到所述项目的最终表示。
7.一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的程序;其特征是,所述处理器,用于读取存储器中的程序实现如权利要求1至5中任一项所述的基于图卷积网络的协同过滤推荐方法中的步骤。
8.一种可读存储介质,用于存储程序,其特征是,所述程序被处理器执行时实现如权利要求1至5中任一项所述的基于图卷积网络的协同过滤推荐方法中的步骤。
CN202410613315.7A 2024-05-17 2024-05-17 一种基于图卷积网络的协同过滤推荐方法及装置 Active CN118193858B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410613315.7A CN118193858B (zh) 2024-05-17 2024-05-17 一种基于图卷积网络的协同过滤推荐方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410613315.7A CN118193858B (zh) 2024-05-17 2024-05-17 一种基于图卷积网络的协同过滤推荐方法及装置

Publications (2)

Publication Number Publication Date
CN118193858A CN118193858A (zh) 2024-06-14
CN118193858B true CN118193858B (zh) 2024-08-13

Family

ID=91402089

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410613315.7A Active CN118193858B (zh) 2024-05-17 2024-05-17 一种基于图卷积网络的协同过滤推荐方法及装置

Country Status (1)

Country Link
CN (1) CN118193858B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112905894A (zh) * 2021-03-24 2021-06-04 合肥工业大学 一种基于增强图学习的协同过滤推荐方法
CN112905900A (zh) * 2021-04-02 2021-06-04 辽宁工程技术大学 基于图卷积注意力机制的协同过滤推荐算法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113672811B (zh) * 2021-08-24 2023-04-18 广东工业大学 一种基于拓扑信息嵌入的超图卷积协同过滤推荐方法、系统及计算机可读存储介质
CN114461922B (zh) * 2021-12-22 2025-03-28 南京大学 一种基于图的混合消息传递机制的协同过滤信息推荐系统
CN115408605B (zh) * 2022-08-08 2025-07-15 中国人民解放军网络空间部队信息工程大学 基于边信息和注意力机制的神经网络推荐方法及系统
CN116450954A (zh) * 2023-04-23 2023-07-18 重庆邮电大学 一种基于图卷积网络的协同过滤推荐方法
CN117112921A (zh) * 2023-07-10 2023-11-24 南京邮电大学 图协同过滤推荐模型的预测方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112905894A (zh) * 2021-03-24 2021-06-04 合肥工业大学 一种基于增强图学习的协同过滤推荐方法
CN112905900A (zh) * 2021-04-02 2021-06-04 辽宁工程技术大学 基于图卷积注意力机制的协同过滤推荐算法

Also Published As

Publication number Publication date
CN118193858A (zh) 2024-06-14

Similar Documents

Publication Publication Date Title
CN113256367B (zh) 用户行为历史数据的商品推荐方法、系统、设备及介质
CN107767262B (zh) 信息处理方法、装置和计算机可读存储介质
CN114491150B (zh) 一种视频推荐方法、系统、设备及计算机可读存储介质
CN116049459B (zh) 跨模态互检索的方法、装置、服务器及存储介质
CN105069172A (zh) 兴趣标签生成方法
US20180300336A1 (en) Knowledge point structure-based search apparatus
CN111931054B (zh) 一种基于改进残差结构的序列推荐方法和系统
CN112734519B (zh) 一种基于卷积自编码器网络的商品推荐方法
CN114386513A (zh) 一种集成评论与评分的交互式评分预测方法及系统
CN117251622A (zh) 对象推荐的方法、装置、计算机设备和存储介质
CN117408736A (zh) 基于改进的Stacking融合算法的企业资金需求挖掘方法和介质
CN118279017A (zh) 商品推荐方法、模型训练方法、装置以及设备
CN116308551A (zh) 基于数字金融ai平台的内容推荐方法及系统
CN115760271A (zh) 基于图神经网络的机电商品个性化推荐方法和系统
CN118193858B (zh) 一种基于图卷积网络的协同过滤推荐方法及装置
CN118133220B (zh) 基于事件知识图谱的舆情事件融合方法、装置及设备
CN111310453B (zh) 一种基于深度学习的用户主题向量化表示方法和系统
CN113284027A (zh) 团伙识别模型的训练方法、异常团伙识别方法及装置
CN106294456B (zh) 机器学习的方法和设备
CN118779313A (zh) 数据表信息的选择方法、数据查询方法及其设备
CN118537034A (zh) 一种潜客挖掘方法、装置及计算设备
CN115098684A (zh) 5g用户识别的网络模型建立方法、设备及存储介质
CN118378661A (zh) 时序图表示学习方法、装置、电子设备及可读存储介质
CN114647794B (zh) 协同过滤推荐方法、服务器及存储介质
CN113626720B (zh) 基于动作剪枝的推荐方法、装置、电子设备与存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Yang Xin

Inventor after: Liu Hui

Inventor after: Liu Ye

Inventor after: Shen Die

Inventor after: Su Bingbing

Inventor after: Du Chenhao

Inventor after: Ren Huiling

Inventor before: Yang Xin

Inventor before: Liu Hui

Inventor before: Tian Yuanrong

Inventor before: Liu Ye

Inventor before: Shen Die

Inventor before: Su Bingbing

Inventor before: Du Chenhao

Inventor before: Ren Huiling