CN113610610B - 基于图神经网络和评论相似度的会话推荐方法和系统 - Google Patents

基于图神经网络和评论相似度的会话推荐方法和系统 Download PDF

Info

Publication number
CN113610610B
CN113610610B CN202110993117.4A CN202110993117A CN113610610B CN 113610610 B CN113610610 B CN 113610610B CN 202110993117 A CN202110993117 A CN 202110993117A CN 113610610 B CN113610610 B CN 113610610B
Authority
CN
China
Prior art keywords
commodity
representation
graph
conversation
neighbor
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
CN202110993117.4A
Other languages
English (en)
Other versions
CN113610610A (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.)
China Southern Power Grid Internet Service Co ltd
Jingchuang United (Beijing) Intellectual Property Service Co.,Ltd.
Original Assignee
Qilu University of Technology
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 Qilu University of Technology filed Critical Qilu University of Technology
Priority to CN202110993117.4A priority Critical patent/CN113610610B/zh
Publication of CN113610610A publication Critical patent/CN113610610A/zh
Application granted granted Critical
Publication of CN113610610B publication Critical patent/CN113610610B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0631Item recommendations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/335Filtering based on additional data, e.g. user or group profiles
    • 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/9535Search customisation based on user profiles and personalisation
    • 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/045Combinations of networks
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Business, Economics & Management (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Accounting & Taxation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Finance (AREA)
  • Evolutionary Computation (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Development Economics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了基于图神经网络和评论相似度的会话推荐方法和系统,根据会话中的商品序列以及评论信息,为当前会话的用户推荐目标商品。本发明将评论信息融入到图神经网络模型中,同时考虑会话中蕴含的商品间依赖关系和文本空间中商品间相似关系。本会话推荐方法主要由四个模块组成:基于评论相似度的全局图模块,根据商品的评论文档得到商品在文本空间的相似度,并依据此相似度构建基于评论的商品全局图;局部图模块,根据当前会话的商品序列,得到在会话中的商品局部图;会话生成模块,结合商品在前两个模块分别得到的商品全局图和商品局部图表示,生成最终会话表示;候选商品预测模块,根据会话表示,预测各个候选商品的得分,推荐目标商品。

Description

基于图神经网络和评论相似度的会话推荐方法和系统
技术领域
本发明涉及人工智能、推荐系统技术领域,具体地说是一种基于图神经网络和评论相似度的会话推荐方法和系统。
背景技术
随着电子商务的快速发展,商品数量急剧增加,原有的搜索引擎方式很难帮助用户在海量候选商品中找到最心仪的目标商品,造成了信息超载的问题。推荐系统是解决该问题的一种重要方法,它可以在海量候选商品中准确找到目标商品并推荐给用户。目前,很多在线商业平台弱化了搜索功能,而主要依赖推荐功能,极大地降低了用户使用门槛,例如,淘宝、京东等。推荐系统不仅能为用户提供更多便利,也能为公司带来了巨大的商业价值。然而,由于技术和隐私的原因,在很多现实商业推荐场景中,无法获得足够的历史数据和用户资料;即便解决了技术和隐私问题,在电子商务网站中,用户的行为往往表现出基于会话的特征。这严重限制了传统的推荐系统的应用,其难以做出准确的预测。在这种情况下,人们迫切需要推荐系统能够在短暂的用户会话中准确地捕捉到用户的意图,从而做出正确的商品推荐。
在本发明中,会话是指一次购物事件中用户交互的商品序列。在对商品序列进行切分以构建会话时,通常以用户行为之间的时间间隔进行划分;另外,也可以将一段时间(一天、几天或者一周内)的交互行为看作一个会话。会话的定义方式使得会话推荐系统既可以捕捉用户的短期兴趣,又可以捕捉会话中商品之间的依赖关系。
近年来,许多神经网络模型被应用于会话推荐系统,其中基于循环神经网络和图神经网络的方法表现出良好的性能。基于循环神经网络的会话推荐将会话数据视为时间维度上的单向序列,然而这种假设是不严谨的。例如,在电影购物场景中,用户购买的大部分电影没有时间上的依赖性;主要的演员、导演和电影类型往往主导着用户的购买意向。而基于图神经网络的方法在定义商品关系时只基于商品共同出现的频率或转移概率,借力于图结构的灵活性,其缓解了循环神经网络会话推荐的严格时间顺序依赖问题;但是,其没有考虑到在现实购物场景中,一个会话可能包含多种用户意图。这使得现有的方法无法准确捕捉会话中商品之间的复杂依赖关系。综上所述,现有的方法无法对商品之间的关系以及用户偏好准确建模,难以取得令人满意的推荐效果。
发明内容
针对现有的会话推荐方法的不足,本发明提出基于图神经网络和评论相似度的会话推荐方法和系统。该方法和系统实现了一种融合评论信息的图注意力网络结构,评论信息可以帮助模型从用户视角和文本空间共同捕捉商品的深层特征,而图神经网络可以帮助模型聚合相关程度高的邻居商品,消除无关商品的干扰。本发明提出了融合评论信息的图注意力网络;该结构可以利用购买过程中产生的评论信息,来构造全局视角下商品之间的依赖关系,挖掘文本空间中商品之间的相似度关系;其核心思想是通过余弦相似度和商品的评论文档,计算商品在文本空间的相似度,依据该相似度在商品之间构建关联边,得到商品在文本空间中依赖关系的图结构;随着网络中跳数的增加,该结构可以捕捉更深层次的商品特征,优化商品之间关联边的权重。本发明为每个会话建立一个会话图,定义了四种商品之间的关联边,更加精准地从局部视角捕捉会话内部之间商品的转移关系,从而提高模型的整体性能。
本发明的技术任务是按以下方式实现的,基于图神经网络和评论相似度的会话推荐方法,该方法具体如下:
构建基于评论相似度的全局图模块根据商品的评论文档得到商品在文本空间的相似度,并依据此相似度构建基于评论的商品全局图;
构建局部图模块,根据当前会话的商品序列,得到在会话中的商品局部图;
构建会话生成模块,结合商品在前两个模块分别得到的商品全局图和商品局部图表示,生成最终会话表示;
构建候选商品预测模块,根据会话表示,预测各个候选商品的得分,为用户推荐合适的目标商品。
作为优选,基于评论相似度的全局图模块的构建过程如下:
区分邻居重要性:以商品的初始表示以及预处理获得的全局图信息,即邻居及其相应关联边权重,作为输入;通过全局图信息检索出商品所对应的邻居商品初始表示,对邻居商品初始表示和邻居商品对应的关联边权重进行点乘;最后送入ReLU激活函数得到邻居商品的更新表示,具体公式如下:
Figure BDA0003233052580000031
Figure BDA0003233052580000032
其中,eij为商品vi与邻居商品vj之间的关联边权重;
Figure BDA0003233052580000033
为归一化后的关联边权重;exp()是以e为底的指数函数;
Figure BDA0003233052580000034
为商品vi在全局图中的邻居商品vj的初始表示;
Figure BDA0003233052580000035
为全局图中邻居商品vj的更新表示;
Figure BDA0003233052580000036
为商品vi在全局图中的邻居商品集合,商品vk属于此邻居集合与商品vi的并集;
获取新权重:获得邻居商品的更新表示后,使用余弦相似度的方式计算商品与每个邻居商品的新权重;利用权重矩阵Wdim来学习商品向量中不同维度的区别;最后以加权求和的方式输出全局图中每个商品的邻居商品复合表示,具体公式如下:
Figure BDA0003233052580000037
Figure BDA0003233052580000038
Figure BDA0003233052580000039
其中
Figure BDA00032330525800000310
为会话中的商品vi的表示;
Figure BDA00032330525800000311
为商品vi在全局图中的邻居商品vj的更新表示,来自于公式(2);cosine()为余弦相似度;π(vi,vj)为商品vi与邻居商品vj之间的余弦相似度;exp()是以e为底的指数函数;
Figure BDA00032330525800000312
为归一化后的相似度;
Figure BDA00032330525800000313
为全局图中商品vi的邻居商品复合表示,其中
Figure BDA00032330525800000314
与公式(1)中的定义相同;
获得全局图中商品的最终表示:以会话中的本地商品的初始表示和全局图中邻居商品的复合表示为输入,利用软注意力的方式获得全局图中商品的最终表示,即全局图商品表示,具体公式如下:
Figure BDA00032330525800000315
Figure BDA00032330525800000316
其中,
Figure BDA00032330525800000317
为本地商品vi的初始表示;
Figure BDA00032330525800000318
为可学习的权重矩阵;σ为sigmoid激活函数;
Figure BDA0003233052580000041
为全局图中商品vi的邻居商品复合表示;ReLU为激活函数;
Figure BDA0003233052580000042
为商品vi在基于评论相似度的全局图模块的输出,即全局图商品表示。
更优地,所述局部图模块的构建过程具体如下:
学习邻居权重矩阵:以会话内部的本地商品的初始表示以及局部图关联边信息为输入;首先定义四种不同的权重矩阵,以学习定义局部图中所输出的四种有向边,并利用点乘的方式得到不同邻居商品对本地商品的重要性,得到融合局部图关联边信息的邻居权重矩阵,具体公式如下:
Figure BDA0003233052580000043
其中,
Figure BDA0003233052580000044
为本地商品vi的初始表示;
Figure BDA0003233052580000045
为局部图中商品vi的邻居商品vj的初始表示;⊙表示点乘;
Figure BDA0003233052580000046
代表商品vi与商品vj之间关联边的权重向量,对应着局部图中四种不同的边,即包含ain、aout、ain-out和aself
Figure BDA0003233052580000047
同理;
LeakyReLU为激活函数;
Figure BDA0003233052580000048
为商品vi在局部图中的邻居集合,商品vk属于此邻居集合与商品vi的并集;exp()是以e为底的指数函数;αij表示邻居商品vj对本地商品vi的重要性;
获得局部图的商品表示:以会话内部的本地商品的初始表示以及公式(8)学习的邻居权重矩阵为输入;通过加权求和来获得局部图商品表示,具体公式如下:
Figure BDA0003233052580000049
其中
Figure BDA00032330525800000410
同公式(8);αij为公式(8)的输出;
Figure BDA00032330525800000411
同公式(8);
Figure BDA00032330525800000412
为商品vi在局部图模块的输出,即局部图商品表示。
更优地,所述会话生成模块的构建过程具体如下:
以基于评论相似度的全局图模块获得的全局图商品表示
Figure BDA00032330525800000413
以及局部图模块获得的局部图商品表示
Figure BDA00032330525800000414
为输入;利用通道注意力得到融合商品表示;根据学习到的融合商品表示,利用软注意力的方式生成融合位置信息的会话表示;具体如下:
融合商品表示:以基于评论相似度的全局图模块获得的全局图商品表示
Figure BDA0003233052580000051
以及局部图模块获得的局部图商品表示
Figure BDA0003233052580000052
为输入;通过通道注意力机制对全局图商品表示和局部图商品表示计算权重,最终得到融合商品表示;具体公式如下:
Figure BDA0003233052580000053
Figure BDA0003233052580000054
Figure BDA0003233052580000055
Figure BDA0003233052580000056
Figure BDA0003233052580000057
其中
Figure BDA0003233052580000058
为基于评论相似度的全局图模块获得的全局图商品表示,来自公式(7);
Figure BDA0003233052580000059
为局部图模块获得的局部图商品表示,来自公式(9);dropout()表示dropout函数,随机丢掉某些特征;||表示两个矩阵在新的维度上进行拼接;
Figure BDA00032330525800000510
为定义的多通道商品表示;ReLU()为激活函数;
Figure BDA00032330525800000511
为可学习的权重矩阵;σ为sigmoid激活函数;
Figure BDA00032330525800000512
为全局和局部两个通道的可学习权重;
Figure BDA00032330525800000513
为通道注意力机制输出的融合商品表示;
生成会话表示:以上一步的融合商品表示为输入;为了体现不同商品对下一次预测的不同重要性,设置一个可学习的位置表示矩阵P=[p1,p2,...,pl],其中
Figure BDA00032330525800000514
是位置i的位置向量,而l是当前会话的长度;通过平均池化得到均值会话表示;通过软注意力来学习融入位置信息的商品表示对于当前会话的重要性,最后加权求和得到最终会话表示;具体公式如下:
Figure BDA00032330525800000515
Figure BDA00032330525800000516
Figure BDA00032330525800000517
Figure BDA00032330525800000518
其中,
Figure BDA00032330525800000519
为公式(14)输出的商品vi的融合商品表示;pl-i-1为商品vi反向的位置向量;
Figure BDA00032330525800000520
b1为偏置值;tanh为激活函数;l是当前会话的长度;
Figure BDA00032330525800000521
为商品vi的融入位置信息的商品表示;savg为均值会话表示;
Figure BDA00032330525800000522
Figure BDA0003233052580000061
为可学习的权重矩阵;b2为偏置值;σ为sigmoid激活函数;βi为学习到的商品vi对于当前会话的重要性;s为生成的最终会话表示。
更优地,所述候选商品预测模块的构建过程具体如下:
以所有候选商品表示以及会话生成模块所得到的会话表示作为本模块的输入;对候选商品表示和当前会话表示进行点积运算,应用Softmax函数来获得每个候选商品的推荐得分:
Figure BDA0003233052580000062
其中s表示最终会话表示,来自公式(18);
Figure BDA0003233052580000063
为候选商品vi的初始表示,
Figure BDA0003233052580000064
为候选商品vi的推荐得分,将打分为top-N的商品推荐给当前会话的用户。
本方法模型尚未进行充分训练时,需要在训练数据集上进行训练,以优化模型参数;当模型训练完毕时,候选商品预测模块可预测每个候选商品的推荐得分,根据得分,推荐合适的商品给当前会话的用户。
更优地,所述全局图信息的构建过程具体如下:
下载网络上已经公开的电子商务网站数据集,将其作为构建会话序列的原始数据;
预处理用于构建会话序列的原始数据,将会话的时间跨度设定为某一时间段,构建满足条件的训练集和测试集会话序列;
生成评论文档:将构建好的会话序列中的商品评论分别放入对应商品的评论文档,然后使用正则表达式清洗评论文档;
训练评论文档:将清洗好的评论文档送入Doc2Vec工具进行训练,将评论文档转化为向量化表示,即商品在文本空间中的向量化表示;
获取全局图信息:载入训练评论文档后得到的商品在文本空间中的向量化表示,利用Doc2Vec工具中的相似度模块计算商品之间的相似度;对于每一个商品,取与其相似度最高的前N个商品,保存其所对应的邻居列表及其它们之间的相似度,即得该商品的全局图信息;邻居商品将作为全局图中的边的顶点,邻居商品的相似度将作为相应边的权重;
构建商品向量映射层:商品的集合V={v1,v2,...,vm}中的每一个商品在图中均对应一个节点,将每一个商品ID映射为商品的初始表示;同时,设置一个可学习的位置表示矩阵,以考虑会话序列中商品的顺序关系;
所述的会话推荐模型构建完成后通过训练数据集进行会话推荐模型的训练与优化,具体如下:
构建交叉熵损失函数:由构建候选商品预测模块过程可知,
Figure BDA0003233052580000071
时经过会话推荐模型处理得到的每个候选商品的推荐得分,y是真实值,代表该会话下一次点击是否是目标商品,公式如下:
Figure BDA0003233052580000072
优化模型训练:使用Adam作为优化算法,学习率设置为0.001,L2正则化设置为1e-5,学习率衰减后的步数设置为3,学习率更新设置为0.1;在训练数据集上,对会话推荐模型进行优化训练
一种基于图神经网络和评论相似度的会话推荐系统,该系统包括,
训练集和测试集的会话序列构建单元,首先需要获得用户在电子商务网站的交互记录,随后对其进行预处理操作,从而得到符合训练要求的会话序列;训练集和测试集的会话序列构建单元包括,
原始数据获取单元,负责下载网络上已经公开的电子商务网站数据集,将其作为构建会话序列的原始数据;
原始数据预处理单元,负责将会话的时间跨度设定为某一时间段,构建满足条件的训练集和测试集会话序列,从而构建训练集和测试集的会话序列;
商品的评论表示生成单元,收集预处理得到的训练集中每一个商品所对应的所有评论,生成当前商品的评论文档;利用Doc2Vec工具包处理评论文档,得到商品在文本空间中的向量化表示;计算商品在文本空间的相似度,为每个商品找到最相似的N个邻居;商品的评论表示生成单元包括,
评论文档生成单元,将构建好的会话序列中的商品评论分别放入对应商品的文档,然后利用正则表达式的方式清洗评论文档;
评论文档训练单元,将清洗好的评论文档送入Doc2Vec训练,最终得到商品在文本空间中的向量化表示;
全局图信息获取单元,载入评论文档训练单元得到的商品在文本空间中的向量化表示,利用Doc2Vec中的相似度模块计算商品之间的相似度,出于对计算效率的考虑,只保留相似度最高的前12个商品;最终得到每个商品所对应的邻居列表及其它们之间的相似度,即边的权重;
会话推荐系统模型构建单元,用于载入训练集、测试集以及全局图信息、构建商品向量映射层、构建基于评论相似度的全局图模块、构建局部图模块、构建会话生成模块以及构建候选商品预测模块,会话推荐系统模型构建单元包括,
训练集、测试集以及全局图信息载入单元,负责加载训练集、测试集以及全局图信息;对于每个会话序列,根据全局图信息查找到会话中每个商品所对应的邻居列表及其它们之间的相似度,即边的权重;
商品向量映射层构建单元,负责定义所有的商品向量表示以及位置向量,并对二者初始化;
基于评论相似度的全局图模块构建单元,负责构建基于图注意力神经网络的全局图,根据每个连接的重要性生成注意力权重;全局图构建完成后,通过图注意力神经网络的方式对图中的节点,即会话中的商品进行更新学习;
局部图模块构建单元,负责学习局部图中商品的邻居的不同重要性,定义了四种不同的边,之后对局部图中商品之间的有权边进行计算,最终通过加权求和来获得每个商品的输出特征;
会话生成模块构建单元,负责结合全局图和局部图的输出来获得其表示;利用通道注意力机制,分别从评论信息的全局视角和商品转移关系的局部视角来捕捉商品的特征表示;之后需要根据学习到的商品表示,学习会话中的每个商品对于预测的贡献,结合注意力机制以及位置向量来生成最终会话表示;
候选商品预测模块构建单元,负责将会话生成模块构建单元所得到的会话表示将作为本单元的输入,每个候选商品的最终推荐得分基于它们的向量表示以及当前会话表示,首先对候选商品表示和当前会话表示进行点积运算,然后应用Softmax函数来获得每个候选商品的推荐得分;
会话推荐模型训练单元,用于构建模型训练过程中所需要的损失函数,并完成模型的优化训练;会话推荐模型训练单元包括,
交叉熵损失函数构建单元,负责计算预测的候选商品与真实的目标商品之间的误差;
模型训练优化单元,负责训练并调整模型训练中的参数,减小预测误差。
一种存储介质,其中存储有多条指令,其特征在于,所述指令由处理器加载,执行上述的基于图神经网络和评论相似度的会话推荐方法的步骤。
一种电子设备,其特征在于,所述电子设备包括:
上述的存储介质;以及
处理器,用于执行所述存储介质中的指令。
本发明的基于图神经网络和评论相似度的会话推荐方法具有以下优点:
(一)通过引入商品的评论信息,可以更加直观地捕捉商品之间的依赖关系,增加推荐结果的可解释性。
(二)通过全局图注意力神经网络,可以更加灵活地学习商品之间的依赖关系,优化关联边的权重,从全局视角生成更加准确的商品表示。
(三)通过局部图注意力神经网络,可以准确地学习会话内商品之间的转移关系,捕捉当前会话的意图,从局部视角生成融合会话信息的商品表示,从而提高会话表示的准确性。
(四)通过通道注意力机制,可以有效过滤会话中的无效信息,增强有效信息,使得最终会话表示更加准确,从而提高推荐候选商品的准确度。
附图说明
下面结合附图对本发明进一步说明。
附图1为单个会话构建局部图的示例;
附图2为基于图神经网络和评论相似度的会话推荐方法的流程框图;
问题定义以及符号定义
问题定义:本发明的问题定义为基于用户会话的商品序列以及用户对商品的评论信息,预测用户对候选商品的点击率。会话是指一次购物事件中用户交互的商品序列。在对商品序列进行切分以构建会话时,通常以用户行为之间的时间间隔进行划分;另外,也可以将一段时间(一天、几天或者一周内)的交互行为看作一个会话。在推荐系统领域中,一般将所有用户定义为U={u1,u2,...,un},总计n个用户;所有商品的集合表示为V={v1,v2,...,vm},总计m个商品。任何一个会话可以表示为s={v1,v2,...,vl},其中vl∈V,l表示在一个会话内第l次点击的商品。
Figure BDA0003233052580000091
Figure BDA0003233052580000101
定义局部图:每个会话被转换为一个局部图,以通过图神经网络GNN学习当前会话中商品的向量表示。其定义如下:给定一个会话s={v1,v2,...,vl},令Gs=(Vs,Es)表示对应的会话图,其中
Figure BDA0003233052580000102
是会话s中交互的商品集合;
Figure BDA0003233052580000103
为关联边的集合,其中每条边连接会话中的两个相邻商品
Figure BDA0003233052580000104
局部图有四种类型的关联边,取决于商品i和商品j之间的关系,表示为rin,rout,rin-out和rself。对于边
Figure BDA0003233052580000105
的类型,rin代表只存在从商品
Figure BDA0003233052580000106
到商品
Figure BDA0003233052580000107
的转移关系;rout代表只存在从商品
Figure BDA0003233052580000108
到商品
Figure BDA0003233052580000109
的转移关系;rin-out代表同时存在从商品
Figure BDA00032330525800001010
到商品
Figure BDA00032330525800001011
以及从商品
Figure BDA00032330525800001012
到商品
Figure BDA00032330525800001013
的转移关系;rself代表着商品自身的转移关系。
定义全局图:为了建立基于评论的全局图,需要计算商品之间的评论相似度。为此,分别收集每个商品的评论信息,来生成商品评论的向量表示。本发明采用已经广泛使用的自然语言处理处理工具Doc2Vec,作为评论文档的向量表示的生成工具。详细的生成过程如下:(1)在训练集中,对于商品vi,收集vi的所有评论Ci*,存入文档di;(2)过滤掉商品vi的评论文档di中的停用词和标点符号;(3)最后利用Doc2Vec将评论文档di转换成商品的评论文档向量VCi
构建全局图:为了考虑全局图中商品与商品之间的关系,将每个商品作为节点;根据商品对(vi,vj)来建立全局图的边;计算商品vi和商品vj之间的边的权重eij,即二者的评论相似度,作为边的权重,公式为eij=sim(VCi,VCj),其中sim(VCi,VCj)是VCi和VCj的余弦相似度。出于计算效率的考虑,只在商品vi和其相似度最高的前ε个邻居商品建立边,本发明中ε设置为12。对于每一对商品vi,vj∈V,全局视角的商品转移关系可以定义为
Figure BDA00032330525800001014
与局部图不同的是,全局图是一个无向图,故不需要区分商品在全局视角下转移信息的方向。
具体实施方式
参照说明书附图和具体实施例对本发明的一种基于图神经网络和评论相似度的会话推荐方法和系统作以下详细地说明。
实施例1:
本发明的总体模型框架如图2所示。由图2可知,本发明的主要框架结构包含基于评论相似度的全局图模块、局部图模块、会话生成模块以及候选商品预测模块。其中,基于评论相似度的全局图模块,首先利用图注意力网络的思想,根据每个连接的重要性生成注意力权重;基于评论相似度的全局图是通过预处理后得到的全局图邻居信息以及邻边权重来构建的;全局图构建完成后,通过图注意力神经网络的方式对图中的节点,即会话中的商品,进行更新学习,最终加权求和得到全局图商品表示。局部图模块,利用当前会话中的成对的商品转移信息,得到局部图商品表示;如图1所示,局部图定义了四种不同的边,故需要训练四个权重向量,分别是:ain、aout、ain-out和aself;之后对局部图中商品之间的有权边进行计算,利用注意力机制来学习不同商品之间的权重,最终加权求和得到局部图商品表示。会话生成模块,结合全局图商品表示和局部图商品表示而生成会话表示;该模块首先通过通道注意力机制,从评论信息的全局视角和商品转移关系的局部视角得到融合商品表示;之后以生成的融合商品表示为输入,结合了反向位置信息和会话信息来生成更加准确的会话表示。预测候选商品预测模块,将会话表示和候选商品表示作为输入,通过点积运算生成每个候选商品的得分,然后应用Softmax函数来获得每个候选商品的最终推荐得分,取得分最大的前n个候选商品推荐给当前会话。以上所述为本模型发明的结构简介。
实施例2:
本发明的基于图神经网络和评论相似度的会话推荐方法,具体步骤如下:
S1、建立训练集和测试集所需要的会话序列:首先需要获得用户在电子商务网站的交互记录,随后对其进行预处理操作,从而得到符合训练要求的会话序列。具体步骤如下所述:
S101、下载网络上已经公开的电子商务网站数据集,将其作为构建会话序列的原始数据。
举例说明:网络上有许多已经公开的面向推荐系统的用户行为历史数据集,例如Amazon的Pet Supplies数据集。
Pet Supplies数据集中数据格式如下所示:
Figure BDA0003233052580000121
其中reviewerID为用户ID;asin为商品ID;reviewerName为用户昵称;reviewText为商品的评论;overall为商品的打分;unixReviewTime为评论时间(unix时间)。
S102、预处理用于构建会话序列的原始数据,将会话的时间跨度设定为某一时间段,构建满足条件的训练集和测试集会话序列。
举例说明:若设定时间跨度为1天,则构建会话序列的具体步骤描述为:首先将每个用户在一天之内交互的商品构建成序列;然后删除长度小于2的序列;最后为了避免数据稀疏的问题,过滤掉在所有序列中出现次数小于5的商品。在Pet Supplies数据集中,将最近一年的会话作为测试集,更早的历史会话作为训练集。为了避免冷启动的问题,删除了测试集中不在训练集出现的商品。
S2、生成商品的评论表示:收集步骤S1得到的训练集中每一个商品所对应的所有评论,生成当前商品的评论文档;利用Doc2Vec工具包处理评论文档,得到商品在文本空间中的向量化表示;计算商品在文本空间的相似度,为每个商品找到最相似的N个邻居。具体步骤如下:
S201、生成评论文档:将构建好的会话序列中的商品评论分别放入对应商品的评论文档,然后使用正则表达式清洗评论文档。
举例:
对某一商品的所有评论合并后,得以其初始的评论文档如下:
("I love Littermaid products.I have 2large male Meezers,so I bought areconditioned LM900 Mega box about 3years ago.I’ve never had a day’s troublewith it over the 3years,even though both cats use the same box.One cat isvery timid and I was afraid he wouldn’t use it because of the cleaningmechanism,which is a bit noisy,but he loves the box and so does hisbrother.")
对初始的评论文档,使用正则表达式清洗(删除标点符号、数字、其他不符合语法标准的词语以及大写字母转换成小写字母)后,得到评论文档如下:
(’i’,’love’,’littermaid’,’products’,’i’,’have’,’large’,’male’,’meezers’,’so’,’i’,’bought’,’a’,’reconditioned’,’lm’,'mega',’box','about','years','ago’,'i','ve’,’never’,'had',’a’,’day’,’s’,’trouble’,’with’,’it’,’over’,’the’,’years’,’even','though’,’both','cats','use','the','same’,’box’,'one','cat','is','very','timid','and','i','was','afraid','he','wouldn','t','use','it','because','of','the','cleaning',’mechanism','which','is','a','bit','noisy','but','he','loves','the','box','and','so','does','his','brother')
S202、训练评论文档:将清洗好的评论文档送入Doc2Vec工具进行训练,将评论文档转化为向量化表示,即商品在文本空间中的向量化表示。
S203、获取全局图信息:载入步骤S202得到的商品在文本空间中的向量化表示,利用Doc2Vec工具中的相似度模块计算商品之间的相似度;对于每一个商品,取与其相似度最高的前N个商品,保存其所对应的邻居列表及其它们之间的相似度;邻居商品将作为全局图中的边的顶点,邻居商品的相似度将作为相应边的权重。
举例说明:发明中,将N设置为12。
S3、构建会话推荐系统模型:主要操作包括载入训练集、测试集以及全局图信息、构建商品向量映射层、构建基于评论相似度的全局图模块、构建局部图模块、构建会话生成模块以及构建候选商品预测模块。具体步骤如下:
S301、载入训练集、测试集以及全局图信息:训练集、测试集数据加载后,对于每个会话序列,首先根据步骤S203得到的全局图信息,查找到会话中每个商品所对应的邻居列表及其它们之间的相似度。
举例说明:在Pytorch中,对于上面描述的代码实现如下所示:
train_data=pickle.load(open('datasets/'+opt.dataset+'/train.txt','rb'))
test_data=pickle.load(open('datasets/'+opt.dataset+'/test.txt','rb'))
sim_adj=pickle.load(open('datasets/'+opt.dataset+'/sim_adj_12'+'.pkl','rb'))
sim_weight=pickle.load(open('datasets/'+opt.dataset+'/sim_weight_12'+'.pkl','rb'))
sim_adj,sim_weight=handle_sim_adj(sim_adj,num_node,opt.n_sample_all,sim_weight)
其中,train_data为训练集数据;test_data为测试集数据;sim_adj存放会话中每个商品所对应的邻居;sim_weight存放商品与每个邻居的关联边的权重。
S302、构建商品向量映射层:商品的集合V={v1,v2,...,vm}中的每一个商品在图中均对应一个节点,将每一个商品ID映射为商品的初始表示,即步骤S306所输入的候选商品表示;同时,设置一个可学习的位置表示矩阵,以考虑会话序列中商品的顺序关系;
举例说明:
在Pytorch中,对于上面描述的代码实现如下所示:
self.node_embedding=nn.Embedding(num_node,self.dim)
self.pos_embedding=nn.Embedding(200,self.dim)
其中num_node为所有节点的数量,即商品集合V的大小;self.dim是模型训练商品表示的维度;在本发明中,self.pos_embedding的大小设定为200,因为会话序列的长度不会超过200。
S303、构建基于评论相似度的全局图模块:以会话中的商品向量以及步骤S203获得的全局图信息,即邻居商品及其相应关联边权重,作为输入;首先使用点乘的方式区分邻居商品的不同重要性;使用余弦相似度的方式计算商品与每个邻居商品的新权重,以加权求和的方式整合所有邻居商品的更新表示;最后结合本地商品初始表示及其邻居商品更新表示来获得全局图商品表示,其中“本地商品”即为会话中的商品自身,下文皆用“本地商品”来表示;具体如下:
S30301、区分邻居重要性:以步骤S302获得的商品的初始表示以及步骤S203获得的全局图信息,即邻居及其相应关联边权重,作为输入;通过全局图信息检索出商品所对应的邻居商品初始表示,对邻居商品初始表示和邻居商品对应的关联边权重进行点乘;最后送入ReLU激活函数得到邻居商品的更新表示,具体公式如下:
Figure BDA0003233052580000151
Figure BDA0003233052580000152
其中,eij为商品vi与邻居商品vj之间的关联边权重;
Figure BDA0003233052580000153
为归一化后的关联边权重;exp()是以e为底的指数函数;
Figure BDA0003233052580000154
为商品vi在全局图中的邻居商品vj的初始表示;
Figure BDA0003233052580000155
为全局图中邻居商品vj的更新表示;
Figure BDA0003233052580000156
为商品vi在全局图中的邻居商品集合,商品vk属于此邻居集合与商品vi的并集;
S30302、获取新权重:从步骤S30301获得邻居商品的更新表示后,使用余弦相似度的方式计算商品与每个邻居商品的新权重;利用权重矩阵Wdim来学习商品向量中不同维度的区别;最后以加权求和的方式输出全局图中每个商品的邻居商品复合表示,具体公式如下:
Figure BDA0003233052580000157
Figure BDA0003233052580000158
Figure BDA0003233052580000159
其中
Figure BDA00032330525800001510
为会话中的商品vi的表示;
Figure BDA00032330525800001511
为商品vi在全局图中的邻居商品vj的更新表示,来自于公式(2);cosine()为余弦相似度;π(vi,vj)为商品vi与邻居商品vj之间的余弦相似度;exp()是以e为底的指数函数;
Figure BDA00032330525800001512
为归一化后的相似度;
Figure BDA00032330525800001513
为全局图中商品vi的邻居商品复合表示,其中
Figure BDA00032330525800001514
与公式(1)中的定义相同;
S30303、获得全局图中商品的最终表示:以会话中的本地商品的初始表示和步骤S30302获得全局图中邻居商品的复合表示为输入,利用软注意力的方式获得全局图中商品的最终表示,即全局图商品表示,具体公式如下:
Figure BDA0003233052580000161
Figure BDA0003233052580000162
其中,
Figure BDA0003233052580000163
为本地商品vi的初始表示;
Figure BDA0003233052580000164
为可学习的权重矩阵;σ为sigmoid激活函数;
Figure BDA0003233052580000165
为全局图中商品vi的邻居商品复合表示;ReLU为激活函数;
Figure BDA0003233052580000166
为商品vi在基于评论相似度的全局图模块的输出,即全局图商品表示;
举例说明:在Pytorch中,对于上面描述的代码实现如下所示:
neighbor_weight=torch.softmax(neighbor_weight,-1).unsqueeze(-1)
neighbor_vector=torch.relu(neighbor_vector*neighbor_weight)
self_vectors=torch.matmul(self_vectors,self.w_dim)
neighbor_vector=torch.matmul(neighbor_vector,self.w_dim)
e_ij=torch.cosine_similarity(self_vectors.unsqueeze(2).repeat(1,1,neighbor_vector.shape[2],1),neighbor_vector,dim=-1)
e_ij=torch.softmax(e_ij,dim=-1).unsqueeze(-1)
neighbor_vector=torch.sum(e_ij*torch.matmul(neighbor_vector,self.w_dim),dim=-2)
g=torch.sigmoid(torch.matmul(self_vectors,self.w))
self_vectors=(1-g)*neighbor_vector+g*self_vectors
self_vectors=self.act(output)
其中,neighbor_weight为模块输入的关联边权重;neighbor_vector为邻居输入的邻居商品向量表示;self_vectors为本地商品表示;self.w_dim对应公式(3)中的Wdim维度为(100,100);self.w对应公式(6)中的Wλ,维度为(100,1)。
S304、构建局部图模块:以会话内部的本地商品表示以及局部图关联边信息为输入;定义四种不同的权重矩阵,得到融合局部图关联边信息的邻居权重矩阵;使用加权求和的方式得到局部图商品表示;具体如下:
S30401、学习邻居权重矩阵:以会话内部的本地商品的初始表示以及局部图关联边信息为输入;首先定义四种不同的权重矩阵,以学习定义局部图中所输出的四种有向边,并利用点乘的方式得到不同邻居商品对本地商品的重要性,得到融合局部图关联边信息的邻居权重矩阵,具体公式如下:
Figure BDA0003233052580000171
其中,hvi为本地商品vi的初始表示;
Figure BDA0003233052580000172
为局部图中商品vi的邻居商品vj的初始表示;⊙表示点乘;
Figure BDA0003233052580000173
代表商品vi与商品vj之间关联边的权重向量,对应着局部图中四种不同的边,即包含ain、aout、ain-out和aself
Figure BDA0003233052580000174
同理;LeakyReLU为激活函数;
Figure BDA0003233052580000175
为商品vi在局部图中的邻居集合,商品vk属于此邻居集合与商品vi的并集;exp()是以e为底的指数函数;αij表示邻居商品vj对本地商品vi的重要性;
S30402、获得局部图的商品表示:以会话内部的商品向量表示以及公式(8)学习的邻居权重矩阵为输入;通过加权求和来获得局部图商品表示,具体公式如下:
Figure BDA0003233052580000176
其中
Figure BDA0003233052580000177
同公式(8);αij为公式(8)的输出;
Figure BDA0003233052580000178
同公式(8);
Figure BDA0003233052580000179
为商品vi在局部图模块的输出,即局部图商品表示;
举例说明:在Pytorch中,对于上面描述的代码实现如下所示:
a_input=(h.repeat(1,1,N).view(batch_size,N*N,self.dim)*h.repeat(1,N,1)).view(batch_size,N,N,self.dim)
e_0=torch.matmul(a_input,self.a_0)
e_1=torch.matmul(a_input,self.a_1)
e_2=torch.matmul(a_input,self.a_2)
e_3=torch.matmul(a_input,self.a_3)
e_0=self.leakyrelu(e_0).squeeze(-1).view(batch_size,N,N)
e_1=self.leakyrelu(e_1).squeeze(-1).view(batch_size,N,N)
e_2=self.leakyrelu(e_2).squeeze(-1).view(batch_size,N,N)
e_3=self.leakyrelu(e_3).squeeze(-1).view(batch_size,N,N)
mask=-9e15*torch.ones_like(e_0)
alpha=torch.where(adj.eq(1),e_0,mask)
alpha=torch.where(adj.eq(2),e_1,alpha)
alpha=torch.where(adj.eq(3),e_2,alpha)
alpha=torch.where(adj.eq(4),e_3,alpha)
alpha=torch.softmax(alpha,dim=-1)
output=torch.matmul(alpha,h)
其中,a_input表示本地商品初始表示和邻居商品初始表示的点乘结果;e_0、e_1、e_2以及e_3分别表示ain、aout、ain-out和aself四种不同边的权重向量;alpha为所有公式(8)中αij的矩阵;output表示公式(9)中的
Figure BDA0003233052580000181
S305、构建会话生成模块:以步骤S303获得的全局图商品表示
Figure BDA0003233052580000182
以及步骤S304获得的局部图商品表示
Figure BDA0003233052580000183
为输入;利用通道注意力得到融合商品表示;根据学习到的融合商品表示,利用软注意力的方式生成融合位置信息的会话表示;具体如下:
S30501、融合商品表示:以基于评论相似度的全局图模块获得的全局图商品表示
Figure BDA0003233052580000184
以及局部图模块获得的局部图商品表示
Figure BDA0003233052580000185
为输入;通过通道注意力机制对全局图商品表示和局部图商品表示计算权重,最终得到融合商品表示;具体公式如下:
Figure BDA0003233052580000186
Figure BDA0003233052580000187
Figure BDA0003233052580000188
Figure BDA0003233052580000191
Figure BDA0003233052580000192
其中
Figure BDA0003233052580000193
为基于评论相似度的全局图模块获得的全局图商品表示,来自公式(7);
Figure BDA0003233052580000194
为局部图模块获得的局部图商品表示,来自公式(9);dropout()表示dropout函数,随机丢掉某些特征;||表示两个矩阵在新的维度上进行拼接;
Figure BDA0003233052580000195
为定义的多通道商品表示;ReLU()为激活函数;
Figure BDA0003233052580000196
为可学习的权重矩阵;σ为sigmoid激活函数;
Figure BDA0003233052580000197
为全局和局部两个通道的可学习权重;
Figure BDA0003233052580000198
为通道注意力机制输出的融合商品表示;
S30502、生成会话表示:以步骤S30501生成的融合商品表示为输入;为了体现不同商品对下一次预测的不同重要性,设置一个可学习的位置表示矩阵P=[p1,p2,...,pl],其中
Figure BDA0003233052580000199
是位置i的位置向量,而l是当前会话的长度;通过平均池化得到均值会话表示;通过软注意力来学习融入位置信息的商品表示对于当前会话的重要性,最后加权求和得到最终会话表示;具体公式如下:
Figure BDA00032330525800001910
Figure BDA00032330525800001911
Figure BDA00032330525800001912
Figure BDA00032330525800001913
其中,
Figure BDA00032330525800001914
为公式(14)输出的商品vi的融合商品表示;pl-i-1为商品vi反向的位置向量;
Figure BDA00032330525800001915
b1为偏置值;tanh为激活函数;l是当前会话的长度;
Figure BDA00032330525800001916
为商品vi的融入位置信息的商品表示;savg为均值会话表示;
Figure BDA00032330525800001917
Figure BDA00032330525800001918
为可学习的权重矩阵;b2为偏置值;σ为sigmoid激活函数;βi为学习到的商品vi对于当前会话的重要性;s为生成的最终会话表示。
举例说明:在Pytorch中,对于上面描述的代码实现如下所示:
pos_emb=self.pos_embedding.weight[:len]
pos_emb=pos_emb.unsqueeze(0).repeat(batch_size,1,1)
hs=torch.sum(hidden*mask,-2)/torch.sum(mask,1)
hs=hs.unsqueeze(-2).repeat(1,len,1)
nh=torch.matmul(torch.cat([pos_emb,hidden],-1),self.w_2)
nh=torch.tanh(nh)
nh=torch.sigmoid(torch.matmul(nh,self.w_4)+torch.matmul(hs,self.w_5))
beta=torch.matmul(nh,self.w_3)
beta=beta*mask
session=torch.sum(beta*hidden,1)
其中,len表示会话序列的长度;batch_size为数据的批次大小;mask表示会话的实际长度,因为为了计算的统一性,默认会将会话序列进行统一长度的补齐;len即为补齐后的长度;hs表示公式(16)的savg;nh表示公式(15)的
Figure BDA0003233052580000201
beta表示公式(17)中软注意力机制得到的每个商品对于会话的权重βi;self.w_2对应公式(15)的
Figure BDA0003233052580000202
实现时dim设置为100;self.w_3对应公式(17)的
Figure BDA0003233052580000203
self.w_4对应公式(17)的
Figure BDA0003233052580000204
self.w_5对应公式(17)的
Figure BDA0003233052580000205
实现时dim设置为100;session为最终加权求和得到的会话表示s。
S306、构建候选商品预测模块:以步骤S302得到的所有候选商品表示以及步骤S305所得到的会话表示作为本模块的输入;对候选商品表示和当前会话表示进行点积运算,应用Softmax函数来获得每个候选商品的推荐得分:
Figure BDA0003233052580000206
其中s表示最终会话表示,来自公式(18);
Figure BDA0003233052580000207
为候选商品vi的初始表示,
Figure BDA0003233052580000208
为候选商品vi的推荐得分,将打分为top-N的商品推荐给当前会话的用户。
本方法模型尚未进行充分训练时,需要进一步执行步骤S4进行训练,以优化模型参数;当该模型训练完毕时,由步骤S306可预测每个候选商品的推荐得分,根据得分,推荐合适的商品给当前会话的用户。
举例说明:在Pytorch中,对于上面描述的代码实现如下所示:
b=self.node_embedding.weight[1:]
scores=torch.matmul(select,b.transpose(1,0))
S4、训练会话推荐模型:在步骤S2得到的训练数据集上对步骤S3构建的会话推荐模型进行训练,以优化模型参数,具体如下:
S401、构建交叉熵损失函数:由构建候选商品预测模块过程可知,
Figure BDA0003233052580000211
时经过会话推荐模型处理得到的每个候选商品的推荐得分,y是真实值,代表该会话下一次点击是否是目标商品,公式如下:
Figure BDA0003233052580000212
举例说明:上面描述的损失函数在Pytorch中的代码实现为:
targets,scores=forward(model,data)
targets=trans_to_cuda(targets).long()
loss=nn.CrossEntropyLoss(scores,targets-1)
S402、优化模型训练:使用Adam作为优化算法,学习率设置为0.001,L2正则化设置为1e-5,学习率衰减后的步数设置为3,学习率更新设置为0.1;在训练数据集上,对会话推荐模型进行优化训练;
举例说明:上面描述的优化函数及其设置在Pytorch中的代码实现为:
self.optimizer=torch.optim.Adam(self.parameters(),lr=0.001,weight_decay=1e-5)
self.scheduler=torch.optim.lr_scheduler.StepLR(self.optimizer,step_size=3,gamma=0.1)
其中lr即为学习率,weight_decay为权重衰减(L2正则化),step_size为学习率衰减后的步数,gamma为学习率更新。
本发明所提出的模型在Pet Supplies数据集上取得了优于当前先进模型的结果,实验的对比具体见下表。
Figure BDA0003233052580000213
Figure BDA0003233052580000221
本发明模型和现有模型进行了比较,实验结果显示本发明方法有了很大的提升。其中,前三行是现有技术的模型的实验结果,最后一行是本发明模型的实验结果,由此可知本发明比现有模型有了较大提升。
实施例3:
基于实施例2的基于图神经网络和评论相似度的会话推荐系统,该系统包括:
训练集和测试集的会话序列构建单元,首先需要获得用户在电子商务网站的交互记录,随后对其进行预处理操作,从而得到符合训练要求的会话序列;训练集和测试集的会话序列构建单元包括,
原始数据获取单元,负责下载网络上已经公开的电子商务网站数据集,将其作为构建会话序列的原始数据;
原始数据预处理单元,负责将会话的时间跨度设定为某一时间段,构建满足条件的训练集和测试集会话序列,从而构建训练集和测试集的会话序列;
商品的评论表示生成单元,收集预处理得到的训练集中每一个商品所对应的所有评论,生成当前商品的评论文档;利用Doc2Vec工具包处理评论文档,得到商品在文本空间中的向量化表示;计算商品在文本空间的相似度,为每个商品找到最相似的N个邻居;商品的评论表示生成单元包括,
评论文档生成单元,将构建好的会话序列中的商品评论分别放入对应商品的文档,然后利用正则表达式的方式清洗评论文档;
评论文档训练单元,将清洗好的评论文档送入Doc2Vec训练,最终得到商品在文本空间中的向量化表示;
全局图信息获取单元,载入评论文档训练单元得到的商品在文本空间中的向量化表示,利用Doc2Vec中的相似度模块计算商品之间的相似度,出于对计算效率的考虑,只保留相似度最高的前12个商品;最终得到每个商品所对应的邻居列表及其它们之间的相似度,即边的权重;
会话推荐系统模型构建单元,用于载入训练集、测试集以及全局图信息、构建商品向量映射层、构建基于评论相似度的全局图模块、构建局部图模块、构建会话生成模块以及构建候选商品预测模块,会话推荐系统模型构建单元包括,
训练集、测试集以及全局图信息载入单元,负责加载训练集、测试集以及全局图信息;对于每个会话序列,根据全局图信息查找到会话中每个商品所对应的邻居列表及其它们之间的相似度,即边的权重;
商品向量映射层构建单元,负责定义所有的商品向量表示以及位置向量,并对二者初始化;
基于评论相似度的全局图模块构建单元,负责构建基于图注意力神经网络的全局图,根据每个连接的重要性生成注意力权重;全局图构建完成后,通过图注意力神经网络的方式对图中的节点,即会话中的商品进行更新学习;
局部图模块构建单元,负责学习局部图中商品的邻居的不同重要性,定义了四种不同的边,之后对局部图中商品之间的有权边进行计算,最终通过加权求和来获得每个商品的输出特征;
会话生成模块构建单元,负责结合全局图和局部图的输出来获得其表示;利用通道注意力机制,分别从评论信息的全局视角和商品转移关系的局部视角来捕捉商品的特征表示;之后需要根据学习到的商品表示,学习会话中的每个商品对于预测的贡献,结合注意力机制以及位置向量来生成最终会话表示;
候选商品预测模块构建单元,负责将会话生成模块构建单元所得到的会话表示将作为本单元的输入,每个候选商品的最终推荐得分基于它们的向量表示以及当前会话表示,首先对候选商品表示和当前会话表示进行点积运算,然后应用Softmax函数来获得每个候选商品的推荐得分;
会话推荐模型训练单元,用于构建模型训练过程中所需要的损失函数,并完成模型的优化训练;会话推荐模型训练单元包括,
交叉熵损失函数构建单元,负责计算预测的候选商品与真实的目标商品之间的误差;
模型训练优化单元,负责训练并调整模型训练中的参数,减小预测误差。
实施例4:
基于实施例2的存储介质,其中存储有多条指令,指令有处理器加载,执行实施例2的基于图神经网络和评论相似度的会话推荐方法的步骤。
实施例5:
基于实施例4的电子设备,电子设备包括:实施例4的存储介质;以及处理器,用于执行实施例4的存储介质中的指令。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (8)

1.一种基于图神经网络和评论相似度的会话推荐方法,其特征在于,该方法具体如下:
构建基于评论相似度的全局图模块,根据商品的评论文档得到商品在文本空间的相似度,并依据此相似度构建基于评论的商品全局图;
构建局部图模块,根据当前会话的商品序列,得到在会话中的商品局部图;
构建会话生成模块,结合商品在前两个模块分别得到的商品全局图和商品局部图表示,生成最终会话表示;
构建候选商品预测模块,根据会话表示,预测各个候选商品的得分,为用户推荐合适的目标商品;
所述基于评论相似度的全局图模块的构建过程具体如下:
区分邻居重要性:以商品的初始表示以及预处理获得的全局图信息,即邻居及其相应关联边权重,作为输入;通过全局图信息检索出商品所对应的邻居商品初始表示,对邻居商品初始表示和邻居商品对应的关联边权重进行点乘;最后送入ReLU激活函数得到邻居商品的更新表示,具体公式如下:
Figure FDA0003663294620000011
Figure FDA0003663294620000012
其中,eij为商品vi与邻居商品vj之间的关联边权重;
Figure FDA0003663294620000013
为归一化后的关联边权重;exp()是以e为底的指数函数;
Figure FDA0003663294620000014
为商品vi在全局图中的邻居商品vj的初始表示;
Figure FDA0003663294620000015
为全局图中邻居商品vj的更新表示;
Figure FDA0003663294620000016
为商品vi在全局图中的邻居商品集合,商品vk属于此邻居集合与商品vi的并集;
获取新权重:获得邻居商品的更新表示后,使用余弦相似度的方式计算商品与每个邻居商品的新权重;利用权重矩阵Wdim来学习商品向量中不同维度的区别;最后以加权求和的方式输出全局图中每个商品的邻居商品复合表示,具体公式如下:
Figure FDA0003663294620000021
Figure FDA0003663294620000022
Figure FDA0003663294620000023
其中
Figure FDA0003663294620000024
为会话中的商品vi的表示;
Figure FDA0003663294620000025
为商品vi在全局图中的邻居商品vj的更新表示,来自于公式(2);cosine()为余弦相似度;π(vi,vj)为商品vi与邻居商品vj之间的余弦相似度;exp()是以e为底的指数函数;π(vi,vj)为归一化后的相似度;
Figure FDA0003663294620000026
为全局图中商品vi的邻居商品复合表示,其中
Figure FDA0003663294620000027
与公式(1)中的定义相同;
获得全局图中商品的最终表示:以会话中的本地商品的初始表示和全局图中邻居商品的复合表示为输入,利用软注意力的方式获得全局图中商品的最终表示,即全局图商品表示,具体公式如下:
Figure FDA0003663294620000028
Figure FDA0003663294620000029
其中,
Figure FDA00036632946200000210
为本地商品vi的初始表示;
Figure FDA00036632946200000211
为可学习的权重矩阵;σ为sigmoid激活函数;
Figure FDA00036632946200000212
为全局图中商品vi的邻居商品复合表示;ReLU为激活函数;
Figure FDA00036632946200000213
为商品vi在基于评论相似度的全局图模块的输出,即全局图商品表示。
2.根据权利要求1所述的基于图神经网络和评论相似度的会话推荐方法,其特征在于,所述局部图模块的构建过程具体如下:
学习邻居权重矩阵:以会话内部的本地商品的初始表示以及局部图关联边信息为输入;首先定义四种不同的权重矩阵,以学习定义局部图中所输出的四种有向边,并利用点乘的方式得到不同邻居商品对本地商品的重要性,得到融合局部图关联边信息的邻居权重矩阵,具体公式如下:
Figure FDA0003663294620000031
其中,
Figure FDA0003663294620000032
为本地商品vi的初始表示;
Figure FDA0003663294620000033
为局部图中商品vi的邻居商品vj的初始表示;⊙表示点乘;
Figure FDA0003663294620000034
代表商品vi与商品vj之间关联边的权重向量,对应着局部图中四种不同的边,即包含ain、aout、ain-out和aself
Figure FDA0003663294620000035
同理;LeakyReLU为激活函数;
Figure FDA0003663294620000036
为商品vi在局部图中的邻居集合,商品vk属于此邻居集合与商品vi的并集;exp()是以e为底的指数函数;αij表示邻居商品vj对本地商品vi的重要性;
获得局部图的商品表示:以会话内部的本地商品的初始表示以及公式(8)学习的邻居权重矩阵为输入;通过加权求和来获得局部图商品表示,具体公式如下:
Figure FDA0003663294620000037
其中
Figure FDA0003663294620000038
同公式(8);αij为公式(8)的输出;
Figure FDA0003663294620000039
同公式(8);
Figure FDA00036632946200000310
为商品vi在局部图模块的输出,即局部图商品表示。
3.根据权利要求2所述的基于图神经网络和评论相似度的会话推荐方法,其特征在于,所述会话生成模块的构建过程具体如下:
以基于评论相似度的全局图模块获得的全局图商品表示
Figure FDA0003663294620000041
以及局部图模块获得的局部图商品表示
Figure FDA0003663294620000042
为输入;利用通道注意力得到融合商品表示;根据学习到的融合商品表示,利用软注意力的方式生成融合位置信息的会话表示;具体如下:
融合商品表示:以基于评论相似度的全局图模块获得的全局图商品表示
Figure FDA0003663294620000043
以及局部图模块获得的局部图商品表示
Figure FDA0003663294620000044
为输入;通过通道注意力机制对全局图商品表示和局部图商品表示计算权重,最终得到融合商品表示;具体公式如下:
Figure FDA0003663294620000045
Figure FDA0003663294620000046
Figure FDA0003663294620000047
Figure FDA0003663294620000048
Figure FDA0003663294620000049
其中
Figure FDA00036632946200000410
为基于评论相似度的全局图模块获得的全局图商品表示,来自公式(7);
Figure FDA00036632946200000411
为局部图模块获得的局部图商品表示,来自公式(9);dropout()表示dropout函数,随机丢掉某些特征;||表示两个矩阵在新的维度上进行拼接;
Figure FDA00036632946200000412
为定义的多通道商品表示;ReLU()为激活函数;
Figure FDA00036632946200000413
为可学习的权重矩阵;σ为sigmoid激活函数;
Figure FDA00036632946200000414
为全局和局部两个通道的可学习权重;
Figure FDA00036632946200000415
为通道注意力机制输出的融合商品表示;
生成会话表示:以上一步的融合商品表示为输入;为了体现不同商品对下一次预测的不同重要性,设置一个可学习的位置表示矩阵P=[p1,p2,...,pl],其中
Figure FDA0003663294620000051
是位置i的位置向量,而l是当前会话的长度;通过平均池化得到均值会话表示;通过软注意力来学习融入位置信息的商品表示对于当前会话的重要性,最后加权求和得到最终会话表示;具体公式如下:
Figure FDA0003663294620000052
Figure FDA0003663294620000053
Figure FDA0003663294620000054
Figure FDA0003663294620000055
其中,
Figure FDA0003663294620000056
为公式(14)输出的商品vi的融合商品表示;pl-i-1为商品vi反向的位置向量;
Figure FDA0003663294620000057
b1为偏置值;tanh为激活函数;l是当前会话的长度;
Figure FDA0003663294620000058
为商品vi的融入位置信息的商品表示;savg为均值会话表示;
Figure FDA0003663294620000059
Figure FDA00036632946200000510
为可学习的权重矩阵;b2为偏置值;σ为sigmoid激活函数;βi为学习到的商品vi对于当前会话的重要性;s为生成的最终会话表示。
4.根据权利要求3所述的基于图神经网络和评论相似度的会话推荐方法,其特征在于,所述候选商品预测模块的构建过程具体如下:
以所有候选商品表示以及会话生成模块所得到的会话表示作为本模块的输入;对候选商品表示和当前会话表示进行点积运算,应用Softmax函数来获得每个候选商品的推荐得分:
Figure FDA00036632946200000511
其中s表示最终会话表示,来自公式(18);
Figure FDA0003663294620000061
为候选商品vi的初始表示,
Figure FDA0003663294620000062
为候选商品vi的推荐得分,将打分为top-N的商品推荐给当前会话的用户;
本方法模型尚未进行充分训练时,需要在训练数据集上进行训练,以优化模型参数;当模型训练完毕时,候选商品预测模块可预测每个候选商品的推荐得分,根据得分,推荐合适的商品给当前会话的用户。
5.根据权利要求1所述的基于图神经网络和评论相似度的会话推荐方法,其特征在于,所述全局图信息的构建过程具体如下:
下载网络上已经公开的电子商务网站数据集,将其作为构建会话序列的原始数据;
预处理用于构建会话序列的原始数据,将会话的时间跨度设定为某一时间段,构建满足条件的训练集和测试集会话序列;
生成评论文档:将构建好的会话序列中的商品评论分别放入对应商品的评论文档,然后使用正则表达式清洗评论文档;
训练评论文档:将清洗好的评论文档送入Doc2Vec工具进行训练,将评论文档转化为向量化表示,即商品在文本空间中的向量化表示;
获取全局图信息:载入训练评论文档后得到的商品在文本空间中的向量化表示,利用Doc2Vec工具中的相似度模块计算商品之间的相似度;对于每一个商品,取与其相似度最高的前N个商品,保存其所对应的邻居列表及其它们之间的相似度,即得该商品的全局图信息;邻居商品将作为全局图中的边的顶点,邻居商品的相似度将作为相应边的权重;
构建商品向量映射层:商品的集合V={v1,v2,...,vm}中的每一个商品在图中均对应一个节点,将每一个商品ID映射为商品的初始表示;同时,设置一个可学习的位置表示矩阵,以考虑会话序列中商品的顺序关系;
所述的会话推荐模型构建完成后通过训练数据集进行会话推荐模型的训练与优化,具体如下:
构建交叉熵损失函数:由构建候选商品预测模块过程可知,
Figure FDA0003663294620000071
是经过会话推荐模型处理得到的每个候选商品的推荐得分,yi是真实值,代表该会话下一次点击是否是目标商品,公式如下:
Figure FDA0003663294620000072
优化模型训练:使用Adam作为优化算法,学习率设置为0.001,L2正则化设置为1e-5,学习率衰减后的步数设置为3,学习率更新设置为0.1;在训练数据集上,对会话推荐模型进行优化训练。
6.一种基于图神经网络和评论相似度的会话推荐系统,其实现如权利要求1所述一种基于图神经网络和评论相似度的会话推荐方法,其特征在于,该系统包括:
训练集和测试集的会话序列构建单元,首先需要获得用户在电子商务网站的交互记录,随后对其进行预处理操作,从而得到符合训练要求的会话序列;训练集和测试集的会话序列构建单元包括,
原始数据获取单元,负责下载网络上已经公开的电子商务网站数据集,将其作为构建会话序列的原始数据;
原始数据预处理单元,负责将会话的时间跨度设定为某一时间段,构建满足条件的训练集和测试集会话序列,从而构建训练集和测试集的会话序列;
商品的评论表示生成单元,收集预处理得到的训练集中每一个商品所对应的所有评论,生成当前商品的评论文档;利用Doc2Vec工具包处理评论文档,得到商品在文本空间中的向量化表示;计算商品在文本空间的相似度,为每个商品找到最相似的N个邻居;商品的评论表示生成单元包括,
评论文档生成单元,将构建好的会话序列中的商品评论分别放入对应商品的文档,然后利用正则表达式的方式清洗评论文档;
评论文档训练单元,将清洗好的评论文档送入Doc2Vec训练,最终得到商品在文本空间中的向量化表示;
全局图信息获取单元,载入评论文档训练单元得到的商品在文本空间中的向量化表示,利用Doc2Vec中的相似度模块计算商品之间的相似度,出于对计算效率的考虑,只保留相似度最高的前12个商品;最终得到每个商品所对应的邻居列表及其它们之间的相似度,即边的权重;
会话推荐系统模型构建单元,用于载入训练集、测试集以及全局图信息、构建商品向量映射层、构建基于评论相似度的全局图模块、构建局部图模块、构建会话生成模块以及构建候选商品预测模块,会话推荐系统模型构建单元包括,
训练集、测试集以及全局图信息载入单元,负责加载训练集、测试集以及全局图信息;对于每个会话序列,根据全局图信息查找到会话中每个商品所对应的邻居列表及其它们之间的相似度,即边的权重;
商品向量映射层构建单元,负责定义所有的商品向量表示以及位置向量,并对二者初始化;
基于评论相似度的全局图模块构建单元,负责构建基于图注意力神经网络的全局图,根据每个连接的重要性生成注意力权重;全局图构建完成后,通过图注意力神经网络的方式对图中的节点,即会话中的商品进行更新学习;
局部图模块构建单元,负责学习局部图中商品的邻居的不同重要性,定义了四种不同的边,之后对局部图中商品之间的有权边进行计算,最终通过加权求和来获得每个商品的输出特征;
会话生成模块构建单元,负责结合全局图和局部图的输出来获得其表示;利用通道注意力机制,分别从评论信息的全局视角和商品转移关系的局部视角来捕捉商品的特征表示;之后需要根据学习到的商品表示,学习会话中的每个商品对于预测的贡献,结合注意力机制以及位置向量来生成最终会话表示;
候选商品预测模块构建单元,负责将会话生成模块构建单元所得到的会话表示将作为本单元的输入,每个候选商品的最终推荐得分基于它们的向量表示以及当前会话表示,首先对候选商品表示和当前会话表示进行点积运算,然后应用Softmax函数来获得每个候选商品的推荐得分;
会话推荐模型训练单元,用于构建模型训练过程中所需要的损失函数,并完成模型的优化训练;会话推荐模型训练单元包括,
交叉熵损失函数构建单元,负责计算预测的候选商品与真实的目标商品之间的误差;
模型训练优化单元,负责训练并调整模型训练中的参数,减小预测误差。
7.一种存储介质,其中存储有多条指令,其特征在于,所述指令由处理器加载,执行权利要求1-5中任一项所述的基于图神经网络和评论相似度的会话推荐方法的步骤。
8.一种电子设备,其特征在于,所述电子设备包括:
权利要求7所述的存储介质;以及
处理器,用于执行所述存储介质中的指令。
CN202110993117.4A 2021-08-27 2021-08-27 基于图神经网络和评论相似度的会话推荐方法和系统 Active CN113610610B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110993117.4A CN113610610B (zh) 2021-08-27 2021-08-27 基于图神经网络和评论相似度的会话推荐方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110993117.4A CN113610610B (zh) 2021-08-27 2021-08-27 基于图神经网络和评论相似度的会话推荐方法和系统

Publications (2)

Publication Number Publication Date
CN113610610A CN113610610A (zh) 2021-11-05
CN113610610B true CN113610610B (zh) 2022-07-05

Family

ID=78342136

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110993117.4A Active CN113610610B (zh) 2021-08-27 2021-08-27 基于图神经网络和评论相似度的会话推荐方法和系统

Country Status (1)

Country Link
CN (1) CN113610610B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113961816B (zh) * 2021-11-26 2022-07-01 重庆理工大学 一种基于结构增强的图卷积神经网络会话推荐方法
CN115659063B (zh) * 2022-11-08 2023-07-25 黑龙江大学 针对用户兴趣漂移的关联性信息增强推荐方法、计算机设备、存储介质和程序产品

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112084407A (zh) * 2020-09-08 2020-12-15 辽宁工程技术大学 一种融合图神经网络和注意力机制的协同过滤推荐方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160188734A1 (en) * 2014-12-30 2016-06-30 Socialtopias, Llc Method and apparatus for programmatically synthesizing multiple sources of data for providing a recommendation
CN111046257B (zh) * 2019-12-09 2023-07-04 北京百度网讯科技有限公司 一种会话推荐方法、装置以及电子设备
CN112364976B (zh) * 2020-10-14 2023-04-07 南开大学 基于会话推荐系统的用户偏好预测方法
CN112650933B (zh) * 2021-01-06 2024-05-07 大连理工大学 一种基于高阶聚合的图卷积融合多头注意力机制的会话推荐方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112084407A (zh) * 2020-09-08 2020-12-15 辽宁工程技术大学 一种融合图神经网络和注意力机制的协同过滤推荐方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于近邻用户评论的推荐辅助网络;冯兴杰等;《计算机应用研究》;20191025;第37卷(第10期);第2956-2960页 *

Also Published As

Publication number Publication date
CN113610610A (zh) 2021-11-05

Similar Documents

Publication Publication Date Title
CN108648049B (zh) 一种基于用户行为区别建模的序列推荐方法
CN111080400B (zh) 一种基于门控图卷积网络的商品推荐方法及系统、存储介质
CN112364976B (zh) 基于会话推荐系统的用户偏好预测方法
EP4242955A1 (en) User profile-based object recommendation method and device
CN113256367B (zh) 用户行为历史数据的商品推荐方法、系统、设备及介质
CN113610610B (zh) 基于图神经网络和评论相似度的会话推荐方法和系统
CN111506820B (zh) 推荐模型、方法、装置、设备及存储介质
CN112508256B (zh) 一种基于众包的用户需求主动预测方法及系统
CN116010684A (zh) 物品推荐方法、装置及存储介质
CN113918832B (zh) 基于社交关系的图卷积协同过滤推荐系统
CN112528110A (zh) 确定实体业务属性的方法及装置
CN113918834B (zh) 融合社交关系的图卷积协同过滤推荐方法
Wang ZeroMat: Solving cold-start problem of recommender system with no input data
CN113641811B (zh) 促进购买行为的会话推荐方法、系统、设备及存储介质
CN112580789B (zh) 训练图编码网络、预测交互事件的方法及装置
CN110717116B (zh) 关系网络的链接预测方法及系统、设备、存储介质
CN113763095B (zh) 信息推荐方法、装置和模型训练方法、装置
CN113592593A (zh) 序列推荐模型的训练及应用方法、装置、设备及存储介质
CN116975686A (zh) 训练学生模型的方法、行为预测方法和装置
Meng et al. Variational Bayesian context-aware representation for grocery recommendation
CN114841765A (zh) 一种基于元路径邻域目标泛化的序列推荐方法
CN114519600A (zh) 一种融合相邻节点方差的图神经网络ctr预估算法
CN115618079A (zh) 会话推荐方法、装置、电子设备及存储介质
CN115238191A (zh) 对象推荐方法以及装置
US20220253688A1 (en) Recommendation system with adaptive weighted baysian personalized ranking loss

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
TR01 Transfer of patent right

Effective date of registration: 20221222

Address after: Room 606-609, Compound Office Complex Building, No. 757, Dongfeng East Road, Yuexiu District, Guangzhou, Guangdong Province, 510699

Patentee after: China Southern Power Grid Internet Service Co.,Ltd.

Address before: Room 02A-084, Building C (Second Floor), No. 28, Xinxi Road, Haidian District, Beijing 100085

Patentee before: Jingchuang United (Beijing) Intellectual Property Service Co.,Ltd.

Effective date of registration: 20221222

Address after: Room 02A-084, Building C (Second Floor), No. 28, Xinxi Road, Haidian District, Beijing 100085

Patentee after: Jingchuang United (Beijing) Intellectual Property Service Co.,Ltd.

Address before: 250353 University Road, Changqing District, Ji'nan, Shandong Province, No. 3501

Patentee before: Qilu University of Technology

TR01 Transfer of patent right