CN115858942B - 面向用户输入的序列化推荐方法及装置 - Google Patents
面向用户输入的序列化推荐方法及装置 Download PDFInfo
- Publication number
- CN115858942B CN115858942B CN202310168596.5A CN202310168596A CN115858942B CN 115858942 B CN115858942 B CN 115858942B CN 202310168596 A CN202310168596 A CN 202310168596A CN 115858942 B CN115858942 B CN 115858942B
- Authority
- CN
- China
- Prior art keywords
- layer
- output
- convolution
- text description
- sequence
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 230000007246 mechanism Effects 0.000 claims abstract description 49
- 238000013528 artificial neural network Methods 0.000 claims abstract description 37
- 230000008569 process Effects 0.000 claims abstract description 12
- 238000013527 convolutional neural network Methods 0.000 claims abstract description 9
- 239000011159 matrix material Substances 0.000 claims description 46
- 230000006399 behavior Effects 0.000 claims description 19
- 238000011176 pooling Methods 0.000 claims description 13
- 238000012545 processing Methods 0.000 claims description 12
- 238000012935 Averaging Methods 0.000 claims description 5
- 238000000605 extraction Methods 0.000 claims description 5
- 230000009466 transformation Effects 0.000 claims description 5
- 238000013507 mapping Methods 0.000 claims description 4
- 101100522751 Xenorhabdus nematophila (strain ATCC 19061 / DSM 3370 / CCUG 14189 / LMG 1036 / NCIMB 9965 / AN6) pvcA gene Proteins 0.000 claims description 3
- 230000003993 interaction Effects 0.000 description 7
- 238000013135 deep learning Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 6
- 238000005065 mining Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000001914 filtration Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000007774 longterm Effects 0.000 description 5
- 239000012141 concentrate Substances 0.000 description 4
- 230000004913 activation Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000002474 experimental method Methods 0.000 description 3
- 230000000306 recurrent effect Effects 0.000 description 3
- 239000013598 vector Substances 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000008033 biological extinction Effects 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 238000004880 explosion Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 241000764238 Isis Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Landscapes
- Machine Translation (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明公开了一种面向用户输入的序列化推荐方法及装置,属于软件工程技术领域,包括步骤:对用户的对象序列和对象的文本描述分别进行如下处理:对对象序列,使用卷积神经网络捕获联合级和点级序列特征,在卷积层中额外添加自注意力机制,用于在卷积之后提取特征;对对象的文本描述,采用神经网络和自注意力机制来捕获对象本身的特征;将捕获的特征进行神经网络运算,得到最终的预测输出,根据预测输出确定面向用户输入的对象推荐。本发明提高了项目推荐的精确性。
Description
技术领域
本发明涉及软件工程技术领域,更为具体的,涉及一种面向用户输入的序列化推荐方法及装置。
背景技术
将代码软件开源是20世纪最重要的组织创新之一,许许多多的用户在GitHub上分享他们自己的项目,GitHub因此储存了大量的开源代码库。同时也有不少用户在GitHub上寻找自己感兴趣的项目,然而在GitHub的浩如烟海的项目资源库中,用户在做出最终决定之前逐一浏览项目是非常耗时和浪费精力的。在项目推荐方面主要分为两大类算法,一类是传统推荐算法,另一类是基于深度学习的推荐算法。传统算法主要包括基于内容的推荐和基于协同过滤的推荐,基于内容的推荐建立在项目的内容信息之上提出建议,并与项目定义相关特征,系统在此基础上学习用户的兴趣并计算其特征之间的匹配程度用户和项目进行推荐。基于协作过滤的推荐一般使用最近邻技术,它计算用户使用他们的历史偏好之间的距离信息,然后使用目标用户的首选项最近的邻居进行推荐。传统的推荐方法容易出现数据稀疏、冷启动等问题,难以应对用户偏好的变化以及用户与物品之间关系随时间的变化。
随着近些年来深度学习的发展,深度学习在推荐系统中也得到了广泛的运用,并发挥着重要的作用。深度学习通过结合低层特征形成更密集的高层语义信息,从而发现数据的分布式特征表示,相比传统算法而言可以在大规模数据中提取出有效地信息,从而完成对用户更好的项目推荐。但是,现有基于深度学习的推荐技术方案普遍存在精确性有待提高的技术问题。
需要说明的是,不至于上述技术方案中面向Github开源社区的软件项目的推荐方法存在精确性有待提高的技术问题,凡是技术方案中通过数据类型如用户-商品、用户-用户输入来实现用户-商品、用户-用户的推荐输出等这种不改变数据输入输出模式的操作,均存在精确性有待提高的技术问题。
有助于理解本发明相关背景技术的现有技术文献:
[1]中国专利“一种基于GitHub的软件资产推荐的方法及系统”(专利号CN201910120018.8)
[2]中国专利申请“一种基于图神经网络挖掘用户长短期兴趣的序列推荐方法”(申请号CN202210160090.5)
[3]中国专利“CNN-LSTM开发者项目推荐方法”(专利号CN202010229547.4)
[4]J. Tang and K. Wang, “Personalized top-nsequential recommendationvia convolutional sequence embedding,” in Proceedingsof the eleventh ACMinternational conference on web search and data mining,2018, pp. 565–573.
[5]B. Hidasi, A. Karatzoglou, L. Baltrunas, and D.Tikk, “Sessionbasedrecommend-dations with recurrent neural networks,” arXivpreprintarXiv:1511.06939, 2015.
[6]T. Donkers, B. Loepp, and J. Ziegler,“Sequential user-basedrecurrent neural network recommendations,” inProceedings of the eleventh ACMconference on recommender systems, 2017, pp.152–160.
[7]W.-C. Kang and J. McAuley, “Self-attentivesequentialrecommendation,” in 2018 IEEE International Conference on DataMining (ICDM).IEEE, 2018, pp. 197–206.
[8]F. Sun, J. Liu, J. Wu, C. Pei, X. Lin, W. Ou,and P. Jiang,“Bert4rec: Sequential recommendation with bidirectionalencoderrepresentations from transformer,” in Proceedings ofthe 28th ACMinternationalconference on information and know-ledge management, 2019, pp.1441–1450.
[9]Y. Zhou, J. Wu, and Y. Sun, “Ghtrec: Apersonalized service torecommend github trending repositories for developers,”in 2021 IEEEInternational Confer-ence on Web Services (ICWS). IEEE, 2021,pp.314–323.
[10]J. Kim, J. Wi, and Y. Kim, “Sequentialrecommendations on githubrepository,” Applied Sciences, vol. 11, no. 4, p.1585, 2021.
[11]A. Vaswani, N. Shazeer, N. Parmar, J. Uszkoreit,L. Jones, A. N.Gomez, Ł. Kaiser, and I. Polosukhin, “Attention is all youneed,” Advances inneural infor-mation processing systems, vol. 30, 2017.
[12]D. P. Kingma and J. Ba, “Adam: A method forstochasticoptimization,” arXiv preprint arXiv:1412.6980, 2014.
[13]S. P. Chatzis, P. Christodoulou, and A. S.Andreou, “Recurrentlatent vari-able networks for session-basedrecommendation,” in Proceedings ofthe 2nd Workshop on Deep Learning forRecommender Systems, 2017,pp. 38–45。
发明内容
本发明的目的在于克服现有技术的不足,提供一种面向用户输入的序列化推荐方法及装置,提高了项目推荐的精确性等。
本发明的目的是通过以下方案实现的:
一种面向用户输入的序列化推荐方法,包括步骤:
对用户的对象序列和对象的文本描述分别进行如下处理:对对象序列,使用卷积神经网络捕获联合级和点级序列特征,在卷积层中添加自注意力机制,用于在卷积之后提取特征;对对象的文本描述,采用神经网络和自注意力机制来捕获对象本身的特征;
将捕获的特征进行神经网络运算,得到最终的预测输出,根据预测输出确定面向用户输入的对象推荐。
进一步地,所述对象包括项目、商品和用户中的任一种。
一种面向用户输入的序列化推荐装置,包括处理器和存储器,在存储器上存储有程序,程序由处理器加载运行如上所述的方法,以及程序由处理器加载运行一种序列化推荐模型;所述一种序列化推荐模型的结构框架包括嵌入层、文本描述层、卷积层和全连接层;
所述嵌入层,用于将对象和对象的文本描述嵌入到高维空间,得到对象和对象的文本描述的嵌入矩阵;
所述文本描述层,用于将组成文本描述的单词通过编码后,通过嵌入矩阵映射到高维语义空间,再通过神经网络和自注意力机制来提取特征;
所述卷积层,用于在得到对象序列的嵌入矩阵之后,利用卷积滤波器抽取对象序列的序列化特征,再利用自注意力机制来进行特征增强;
所述全连接层,用于在得到卷积层和文本描述层的输出后,将卷积层的输出与文本描述层的输出连接到一起,并将它们输入到线性神经网络以获得更深层次的抽象特征。
进一步地,在嵌入层中,除了对象和对象的文本描述的嵌入矩阵以外,还包括使用用户的嵌入矩阵来代表用户在高维语义空间的潜在特征。
进一步地,在文本描述层中,所述神经网络包括GRU、LSTM和RNN中的任一种。
进一步地,所述卷积层包括水平卷积层和垂直卷积层,且所述卷积滤波器包括水平卷积滤波器和垂直卷积滤波器,所述水平卷积滤波器用于捕获序列的联合级特征,所述垂直卷积滤波器用于捕获序列的点级特征。
进一步地,在所述全连接层中,还包括将用户的嵌入矩阵和获得的更深层次的抽象特征连接起来,同时为了捕捉之前
L个对象和之后
T个对象的联系,还包括将之后
T个对象的嵌入矩阵和相应的文本描述层的输出连接起来,最后进行最终的运算;其中,
L表示历史行为序列的长度,
T表示目标序列的长度。
进一步地,在嵌入层中,所述将对象和对象的文本描述嵌入到高维空间,具体为将前
L个对象输入到卷积层来提取对象的序列信息,对于对象的文本描述,将它们的每个单词先进行编码,然后映射到高维语义空间,L表示历史行为序列的长度。
进一步地,所述神经网络为GRU时,整个GRU层由多个GRU单元组成,并且GRU单元的数量由对象的文本描述的长度决定;所述通过神经网络和自注意力机制来提取特征具体为使用自注意力机制来处理经过GRU层后的序列数据,自注意力操作将GRU层的输出作为输入,然后通过线性投影将其转换为多个矩阵,并将多个矩阵输入到注意力层;再根据GRU层的输出、线性变换和层标准化处理应用残差连接,得到残差连接后的输出后,应用池化处理来进行数据降维,去除冗余数据中的冗余信息;经过均值池化后得到了文本描述层的最终输出,该最终输出高度浓缩了对象的文本描述的所有特征信息。
进一步地,所述水平卷积滤波器为
n个水平卷积滤波器,所述垂直卷积滤波器为
n个水平卷积滤波器,n为正整数;
在水平卷积层中,在输入嵌入矩阵之后,对象序列的联合级特征由
n个水平卷积滤波器提取,每个水平卷积过滤器都有不同的形状,不同的形状将提取不同的联合特征;
n个水平滤波器的所有输出都要应用池化处理,最后将结果连接起来得到水平卷积层的最终输出;
在垂直卷积层,在输入嵌入矩阵之后,每个垂直滤波器的形状都是相同的,每个垂直滤波器的输出也是相同的,垂直卷积层的输出由
n个垂直滤波器的输出连在一起所组成;
在得到水平卷积层的输出和垂直卷积层的输出后,将它们连接在一起,再利用自注意力机制进行特征提取,然后再应用残差连接,最后得到卷积层的最终输出,该最终输出高度浓缩了对象的序列信息。
本发明的有益效果包括:
本发明的技术方案,使用卷积神经网络和自注意力机制处理用户的互动序列,能够有效地提取了用户的动态偏好特征,并通过使用门控循环单元和自注意力机制对用户的互动项目序列中每个项目的文本描述信息进行了处理,最后将用户的信息和项目的信息进行交互后通过分类器进行推荐,充分地利用了项目的信息,提高了项目推荐的精确性。
本发明实施例的技术方案为GitHub中的项目推荐提出了一个序列化推荐模型,并使用深度学习模型将项目的文本信息融合到了用户的历史互动序列之中,提高了项目推荐的准确性。
本发明实施例的技术方案,公开了一种使用基于深度学习的推荐系统对在线社区的广泛用户数据进行建模的方法,为开源软件项目平台提供了一个对用户推荐可能感兴趣的项目的推荐方法。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中的SRDS的结构框架;
图2为本发明实施例中的GRU单元的内部结构;
图3为本发明实施例中的GRU层的输入与输出;
图4为本发明实施例中的水平卷积示意图;
图5为本发明实施例中的垂直卷积示意图;
图6为本发明实施例在实验过程中通过改变
L或
T的值,而其他超参数不变,得到的结果,其中X轴是
L的值,Y轴是Precision@10的值。
图7为本发明实施例在实验过程中通过改变
L或
T的值,而其他超参数不变,得到的结果,其中X轴是L的值,Y轴是Recall@10的值;
图8为本发明实施例在实验过程中通过改变
L或
T的值,而其他超参数不变,得到的结果,其中X轴是
L的值,Y轴是MAP的值。
具体实施方式
本说明书中所有实施例公开的所有特征,或隐含公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合和/或扩展、替换。
为了解决背景中的技术问题,本发明的发明人对现有技术进行了检索和深入分析思考,进一步发现接近的现有技术存在如下技术问题:
①上海海事大学的专利“一种基于GitHub的软件资产推荐的方法及系统”(专利号CN201910120018.8),它是一种基于GitHub的软件资产推荐的方法,包含:步骤1:获取GitHub平台的软件资产信息;步骤2:建立开发者信息模型
A,以记录不同开发者对软件资产的行为信息;所述行为信息包括:查找、浏览、下载、编辑、提交;步骤3:建立软件资产信息模型B,以记录开发者对软件资产的不同行为的总次数;步骤4:GitHub中收集开发者对软件资产的行为信息,建立开发者-行为矩阵模型
C,用来根据行为相似性分析最相似开发者,并提供最符合要求的软件资产;步骤5:对每一个开发者对软件资产的行为信息加入不同的权值
k;步骤6:利用基于代码开发人员相似性度量技术和开发者行为预测技术的协同过滤推荐技术,为开发者推荐出符合需求的前Top-n个软件资产;本发明的发明人对其进行分析后,认为该方法的缺点是:未充分利用数据信息如软件资产的文本描述信息,且使用协同过滤推荐技术难以应对开发人员偏好的变化以及开发人员与软件资产之间随时间变化的关系。
②哈尔滨工程大学的专利申请“一种基于图神经网络挖掘用户长短期兴趣的序列推荐方法”(申请号CN202210160090.5),是一种基于图神经网络挖掘用户长短期兴趣的序列推荐方法,包括:步骤1:获得用户个人信息和用户交互序列数据集,将数据集进行预处理并分为训练集和测试集;步骤2:构建基于图神经网络挖掘用户长短期兴趣的序列推荐模型;步骤3:对步骤2所述基于图神经网络挖掘用户长短期兴趣的序列推荐模型进行训练;步骤4:将待推荐用户的个人信息和交互序列输入到步骤3中训练后的基于图神经网络挖掘用户长短期兴趣的序列推荐模型,计算待推荐项目相对于该用户的推荐得分,根据推荐得分将项目推荐给用户。本发明的发明人对其进行分析后,认为该方法的缺点是:未充分利用项目的信息,只有用户的历史行为信息,而没有用户互动项目的信息,如项目的标题、描述,过于依赖连续项目序列提取出的信息。
③中南大学的专利“CNN-LSTM开发者项目推荐方法”(专利号CN202010229547.4),是一种CNN-LSTM开发者项目推荐方法,包括:步骤1,收集敏捷开发者项目数据,进行敏捷开发者项目数据清洗与筛选,将敏捷开发者项目数据按照时间序列进行排序得到的开发者项目集作为整个模型的输入;步骤2,将获取的敏捷开发者项目数据通过Word2Vec模型确定敏捷开发者项目数据在项目空间中的位置,并将敏捷开发者项目数据转换为向量的形式,从而将输入的开发者项目集转换为开发者项目集矩阵的形式;步骤3,将得到的开发者项目集矩阵输入CNN模型,通过卷积核卷积、池化操作得到敏捷开发者项目集空间特征矩阵;步骤4,将得到的敏捷开发者项目集空间特征矩阵作为LSTM模型的输入,通过LSTM模型获取基于上下文的开发者项目特征;步骤5,通过
softmax函数将得到的开发者项目特征与开发者项目集进行比较,根据预测结果给开发者推荐
top-k个项目,根据推荐准确率调整模型参数,不断优化模型直至推荐效果最佳。本发明的发明人对其进行分析后,认为该方法的缺点是:无法提取出用户随时间变化的偏好信息,没有使用到用户互动项目序列的时间信息。
鉴于上述技术问题,进一步的,本发明提出如下发明构思:使用卷积神经网络和自注意力机制处理用户的互动序列,有效地提取了用户的动态偏好特征,并通过使用门控循环单元和自注意力机制对用户的互动项目序列中每个项目的文本描述信息进行了处理,最后将用户的信息和项目的信息进行交互后通过分类器进行推荐,充分地利用了项目的信息,提高了项目推荐的精确性。
更进一步的发明构思中,提出的新推荐模型,以用户的项目序列和项目的文字描述为输入,并且分别进行处理,整个模型的结构如图1所示,图1中代表矩阵乘法。
对于用户的项目序列,使用卷积神经网络(CNN)捕获联合级和点级序列模式,对于项目的文本描述,采用门控循环单元(GRU)和自注意力机制来捕获项目本身的特征。最后,将从卷积层和描述处理层提取的特征输入到全连接层进行神经网络运算,得到最终的预测输出。接下来将详细描述本发明提出的模型,使用到的关键符号的阐述如表1所示。
表1 关键符号的含义
本发明的推荐模型结构框架(SRDS,SRDS为自命令术语)包括嵌入层、文本描述层、卷积层和全连接层。
(1)嵌入层
嵌入层的作用主要是将项目和项目的文本描述嵌入(Embedding)到高维空间,简单来说,Embedding就是用一个低维向量来表示一个对象,可以是一个词,也可以是一个产品,也可以是一部电影等。Embedding的本质是,与靠近的向量对应的对象具有相似的含义。例如,Embedding(橘子)和Embedding(橘子汁)之间的距离会很接近,但是Embedding(香蕉)和Embedding(橘子汁)之间的距离就会较远。项目
i的嵌入表示为,文本单词
i的嵌入表示为。本发明构思中,SRDS通过将前
L个项目输入到卷积层来提取项目的序列信息,而对于项目的文本描述,它们的每个单词先由One-Hot进行编码,然后输入到嵌入层将它们映射到高维语义空间,最后输入到神经网络以捕获项目之间的联系。嵌入层嵌入之前的
L个项目和
L个项目文本描述并将它们堆叠到一起,得到用户
u在时间戳
t的历史行为项目的嵌入矩阵,同时也得到了项目
p的文本描述嵌入矩阵,表示为:
除了项目和项目的文本描述的嵌入矩阵外,本发明构思中,也使用了用户的嵌入矩阵来代表用户在高维语义空间的潜在特征。这样不仅捕捉了项目自身的深层次信息,同时也捕获了用户自身的潜在信息。
(2)文本描述层
项目的文本描述是一个项目至关重要的特征,这是显而易见的,对于大部分开发者而言,他们在选择一个项目是否是其感兴趣的项目前必定会阅读一遍项目的文本描述。为了从项目
p的文本描述抽取到有用的特征,本发明构思中,将组成文本描述的每个单词通过One-Hot编码后再通过嵌入矩阵
D映射到高维语义空间,得到结果,再通过门控循环单元(GRU)和自注意力机制来进一步处理。接下来将详细描述文本描述层的处理细节。
①GRU 层
门控循环单元(GateRecurrent Unit)是循环神经网络(Recurrent NeuralNetwork)的一种变种,它与RNN一样擅长于处理序列数据。不同的是,随着序列长度的增加,RNN容易出现梯度消失和梯度爆炸的现象,GRU通过更新门和复位门的机制有效解决再反向传播过程中的梯度消失和梯度爆炸这一问题,其内部结构如图2所示。
图中代表哈达玛积(Hadamard Product),代表矩阵加法。GRU的输入结构与RNN的输入结构相同,都由当前输入的和之前结点输出的隐藏状态决定,包含了之前节点的信息。在时间
t复位门随着和输入,得到输出为:
并且更新门的输出为:
是激活函数,然后使用更新门的输出和当前的输入得到输出:
然后最后一步是GRU最关键的一步,称为“更新记忆”的一步,在这一步实现了“遗忘”和“记忆”。得到最终的输出为:
门控信号的取值范围是0到1,门控信号越接近于1,越多的信息被“记忆”,越接近于0,越多的信息则被“遗忘”。
整个GRU层由许许多多的GRU单元组成,并且GRU单元的数量由项目
p的文本描述的长度决定。GRU层的输入输出结构如图3所示,定义GRU层的输出为,表示为:
②自注意力层
自注意力机制(Attention)擅长处理具有连续性的数据,如机器翻译和文本分类这种类型的任务。因此,本发明构思中使用自注意力机制(Self-Attention)来进一步处理经过GRU后的序列数据。从本质上讲,注意力是指从大量信息中过滤出少量重要信息的过程,使模型具有从海量信息中区分和找到关键点的能力。本发明构思中,项目的文本信息经过GRU处理后任然有大量的特征信息,其中不乏有不少无用的噪声,本发明利用注意力机制可以有效地从海量的信息中提取出重要的信息。缩放点积注意力(scaled dot-productattention)定义为:
其中
Q代表查询(queries),
K代表键(keys),
V代表值(values)。注意力机制首先根据查询和键计算权重,然后根据权重对数值进行加权求和。比例因子是为了避免内积的数值过大,特别是维数较高的时候。自注意力机制是注意力机制的一种变体,不依赖外部信息,更善于捕捉数据或特征的内部相关性。本发明构思中,自注意力操作将GRU层的输出作为输入,然后通过线性投影将其转换为三个矩阵,并将它们输入到注意力层进行下一步操作,它可以描述为:
其中是GRU层的输出,为变换矩阵。
③残差连接
虽然随着网络深度的增加,网络提取的特征更加抽象和语义化,但也会导致模型出现过拟合和退化的现象。为了保留深层网络的深度,同时又具有浅层网络的优势来避免退化问题,本发明构思中,采取残差连接的方法来解决这个问题:
f代表线性变换,
S是自注意力层的输出,是自注意力层的输入。
LayerNorm是层标准化(Layer Normalization),它可以保证数据特征分布的稳定性,同时也能加速模型的收敛,其定义为:
和分别代表
S的均值和方差,是哈达玛积(Hadamard product),和分别是学习率和偏置。再得到残差连接后的输出后,接下来应用均值池化(avg pooling)来降低数据的维度,并去除冗余数据中的冗余信息。经过均值池化后得到了文本描述层的最终输出,它高度浓缩了项目
p的文本描述的所有特征信息。由于文本描述层有两个输入,因此其输出也有两个。为了分辨这两个输出,本发明构思中,定义输入为之前
L个项目的文本描述的输出为,输入为之后
T个项目的文本描述的输出为。
(3)卷积层
正如图1中所描述的卷积层,本发明构思中,在得到项目序列的嵌入矩阵之后,“水平卷积滤波器”和“垂直卷积滤波器”被用来抽取项目序列的序列化特征。水平滤波器用于捕获序列的联合级特征,而垂直过滤器用于捕获序列的点级特征。然后,本发明构思中利用自注意力机制来进行特征增强。卷积层中额外添加了自注意力机制在卷积之后来提取有用的特征。
①水平卷积层
输入嵌入矩阵之后,项目序列的联合级特征由
n个水平滤波器提取。这
n个水平滤波器的形状为,它们会在嵌入矩阵上进行从上到下的滑动并进行相关卷积计算。每个过滤器都有不同的形状,不同的形状将提取不同的联合特征,例如:形状为的水平过滤器可以按顺序提取项目连续长度为3的特征,如图4所示。
在经过卷积操作后可以得到3个值,因此一个形状为的水平滤波器经过卷积后可以得到个值,其可表示为:
其中是水平滤波器的输出,是每一次滑动所产生的卷积值,它可以表示为:
是水平卷积层的激活函数,是内积操作。为了获得每个水平滤波器所提取出的最为显著的特征,本发明构思中,
n个水平滤波器的所有输出都会应用最大池化(max pooling),最后将结果连接起来得到水平卷积层的最终输出:
②垂直卷积层
与水平卷积层类似,垂直卷积层也有相应的垂直滤波器。除了每个垂直滤波器的形状为,以及每个垂直滤波器对嵌入矩阵的处理过程是从左向右滑动的,如图5所示。
同理,垂直滤波器的输出为:
与水平卷积层相似,代表所有垂直滤波器的输出,并且代表每一步滑动所产生的卷积值,其可以表示为:
因为每个垂直滤波器的形状是相同的,因此每个垂直滤波器的输出也是相同的。最后,垂直卷积层的输出由
n个垂直滤波器的输出连在一起所组成,表示为:
在得到水平卷积层的输出和垂直卷积层的输出后,本发明构思中再将它们连接在一起:
再对结果进行最终一步处理:
代表自注意力机制和残差连接,与文本描述层类似,将输入到自注意力机制层来进一步进行特征提取,然后再应用残差连接。最后得到卷积层的最终输出,它高度浓缩了项目的序列信息。
(4)全连接层
在得到卷积层和文本描述层的输出后,本发明构思中将卷积层的输出与文本描述层的输出连接到一起,并将它们输入到线性神经网络以获得更深层次的抽象特征:
是激活函数,是将输入转换到
d维隐藏层的权重矩阵,是偏置项。
z包含之前的
L个项目所有的序列特征以及每个项目的文本特征。为了捕捉用户偏好,将用户的嵌入矩阵和连接起来,同时为了捕捉之前
L个项目和之后
T个项目的联系,也将之后
T个项目的嵌入矩阵和相应的文本描述层的输出连接起来,最后进行最终的运算:
代表权重矩阵,是输入矩阵,是偏置项。最终得到输出,并且代表用户
u在时间戳
t的情形下会与项目
i互动的可能性。然后通过sigmod函数来将转换为概率值,其可定义为:
将接下来的
T个项目,,作为待预测的项目,同时对每个项采取了负采样,损失函数
binary cross-entropy被用作目标函数:
本发明通过梯度下降反向传播的方法来不断减少损失函数的值从而来达到模型不断优化的效果,最终根据公式(20)、公式(21)来对所有项目进行预测推荐,将其中最高的概率值得项目推荐给用户。
验证本发明的技术效果:
SRDS为本发明的推荐模型,为了研究
L和
T的值对模型的影响,在实验过程中通过改变
L或
T的值,而其他超参数不变,得到的结果如图6,图7,图8所示。SRDS-1,SRDS-2,SRDS-3代表SRDS模型
T的取值分别为1,2,3,通过改变
T的值来研究跳跃行为的影响。可以看出
L的取值对模型的影响较小且在的情形下模型的表现最好,且的情况下模型表现明显比和要差。这个结果是合理的,当
L增加到一个确定的水平的时候,这时已包含用户的行为信息,因此再增加
L的值对模型的影响便会不是那么明显。而T的大小则决定了用户的跳跃行为信息的大小,只有
T大于1的情况下,才会有用户的跳跃行为信息。
同时为了验证SRDS模型的有效性,我们将其与经典的序列推荐模型来做对比,其比较结果如表2所示,可以看出,通过与经典序列模型
GRU4Rec,
GRU4Rec+,
SASRec,
Caser,SRDS有着更高的准确性,可以为用户提供更加准确的推荐。
表2效果比较
在SRDS中,自注意力机制不仅应用于文本描述层中的GRU之后,而且应用于卷积层的水平卷积和垂直卷积之后。为了研究自注意力机制是否在模型中有那么的有效果,将SRDS的文本描述层和卷积层的自注意力机制模块移除,并将移除之后的模型命名为SRDS-NS,通过对比SRDS和SRDS-NS的实验结果来验证自注意力机制模块的有效性。比较结果如表3所示。可以看出在移除自注意力机制之后,模型的表现大大下降了。这是预料之中的结果,因为自注意力机制可以有效地从大量信息中通过动态权重分配来抽取出真正有用的那部分信息,而在移除自注意力机制之后,所有信息随着固定的权重都被输入到全连接层,这些信息中不仅包含着有用的信息,而且包含着大量无用的信息,这使得模型无法很好地从海量信息之中学习到真正该注意到的那部分信息。
表3 去除自注意力机制的前后结果比较
根据以上分析,可以得出结论:不同的
L和
T的取值会对模型的性能有不同的影响。
T取值过短会导致模型对用户信息的提取不够准确,适当长度的
T能包含更多的信息,使得模型更加准确。同时针对项目的文本信息而言,由于文本信息数量之多,本发明采取门控循环单元和自注意力机制用来在这海量信息之中提取有效地信息,同时实验也证明了自注意力机制能够有效地从这些信息之中提取出真正有用的那部分信息,这对模型性能的提高有很大的意义。通过与其余序列模型对比也证明了我们提出的模型对于用户的项目推荐有着更高的准确性。
需要说明的是,在本发明权利要求书中所限定的保护范围内,以下实施例均可以从上述具体实施方式中,例如公开的技术原理,公开的技术特征或隐含公开的技术特征等,以合乎逻辑的任何方式进行组合和/或扩展、替换。
实施例1
一种面向用户输入的序列化推荐方法,包括步骤:
对用户的对象序列和对象的文本描述分别进行如下处理:对对象序列,使用卷积神经网络捕获联合级和点级序列特征,在卷积层中添加自注意力机制,用于在卷积之后提取特征;对对象的文本描述,采用神经网络和自注意力机制来捕获对象本身的特征;
将捕获的特征进行神经网络运算,得到最终的预测输出,根据预测输出确定面向用户输入的对象推荐。
实施例2
在实施例1的基础上,所述对象为项目、商品和用户中的任一种。
实施例3
一种面向用户输入的序列化推荐装置,包括处理器和存储器,在存储器上存储有程序,程序由处理器加载运行如实施例2所述的方法,以及程序由处理器加载运行一种序列化推荐模型;所述一种序列化推荐模型的结构框架包括嵌入层、文本描述层、卷积层和全连接层;
所述嵌入层,用于将对象和对象的文本描述嵌入到高维空间,得到对象和对象的文本描述的嵌入矩阵;
所述文本描述层,用于将组成文本描述的单词通过编码后,通过嵌入矩阵映射到高维语义空间,再通过神经网络和自注意力机制来提取特征;
所述卷积层,用于在得到对象序列的嵌入矩阵之后,利用卷积滤波器抽取对象序列的序列化特征,再利用自注意力机制来进行特征增强;
所述全连接层,用于在得到卷积层和文本描述层的输出后,将卷积层的输出与文本描述层的输出连接到一起,并将它们输入到线性神经网络以获得更深层次的抽象特征。
实施例4
在实施例3的基础上,在嵌入层中,除了对象和对象的文本描述的嵌入矩阵以外,还包括使用用户的嵌入矩阵来代表用户在高维语义空间的潜在特征。
实施例5
在实施例3的基础上,在文本描述层中,所述神经网络包括GRU、LSTM和RNN中的任一种。
实施例6
在实施例3的基础上,所述卷积层包括水平卷积层和垂直卷积层,且所述卷积滤波器包括水平卷积滤波器和垂直卷积滤波器,所述水平卷积滤波器用于捕获序列的联合级特征,所述垂直卷积滤波器用于捕获序列的点级特征。
实施例7
在实施例4的基础上,在所述全连接层中,还包括将用户的嵌入矩阵和获得的更深层次的抽象特征连接起来,同时为了捕捉之前
L个对象和之后
T个对象的联系,还包括将之后
T个对象的嵌入矩阵和相应的文本描述层的输出连接起来,最后进行最终的运算;其中,
L表示历史行为序列的长度,
T表示目标序列的长度。
实施例8
在实施例3或实施例4的基础上,在嵌入层中,所述将对象和对象的文本描述嵌入到高维空间,具体为将前
L个对象输入到卷积层来提取对象的序列信息,对于对象的文本描述,将它们的每个单词先进行编码,然后映射到高维语义空间,L表示历史行为序列的长度。
实施例9
在实施例5的基础上,所述神经网络为GRU时,整个GRU层由多个GRU单元组成,并且GRU单元的数量由对象的文本描述的长度决定;所述通过神经网络和自注意力机制来提取特征具体为使用自注意力机制来处理经过GRU层后的序列数据,自注意力操作将GRU层的输出作为输入,然后通过线性投影将其转换为多个矩阵,并将多个矩阵输入到注意力层;再根据GRU层的输出、线性变换和层标准化处理应用残差连接,得到残差连接后的输出后,应用池化处理来进行数据降维,去除冗余数据中的冗余信息;经过均值池化后得到了文本描述层的最终输出,该最终输出高度浓缩了对象的文本描述的所有特征信息。
实施例10
在实施例6的基础上,所述水平卷积滤波器为
n个水平卷积滤波器,所述垂直卷积滤波器为
n个水平卷积滤波器,n为正整数;
在水平卷积层中,在输入嵌入矩阵之后,对象序列的联合级特征由
n个水平卷积滤波器提取,每个水平卷积过滤器都有不同的形状,不同的形状将提取不同的联合特征;
n个水平滤波器的所有输出都要应用池化处理,最后将结果连接起来得到水平卷积层的最终输出;
在垂直卷积层,在输入嵌入矩阵之后,每个垂直滤波器的形状都是相同的,每个垂直滤波器的输出也是相同的,垂直卷积层的输出由
n个垂直滤波器的输出连在一起所组成;
在得到水平卷积层的输出和垂直卷积层的输出后,将它们连接在一起,再利用自注意力机制进行特征提取,然后再应用残差连接,最后得到卷积层的最终输出,该最终输出高度浓缩了对象的序列信息。
描述于本发明实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中提供的方法。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现上述实施例中所述的方法。本发明未涉及部分均与现有技术相同或可采用现有技术加以实现。
Claims (9)
1.一种面向用户输入的序列化推荐方法,其特征在于,包括步骤:
对用户的对象序列和对象的文本描述分别进行如下处理:对对象序列,使用卷积神经网络捕获联合级和点级序列特征,且所述卷积神经网络包括卷积层,用于在得到对象序列的嵌入矩阵之后,利用卷积滤波器抽取对象序列的序列化特征,所述卷积层包括水平卷积层和垂直卷积层,且所述卷积滤波器包括水平卷积滤波器和垂直卷积滤波器,所述水平卷积滤波器用于捕获序列的联合级特征,所述垂直卷积滤波器用于捕获序列的点级特征;在所述卷积层中添加自注意力机制,用于在卷积之后提取特征,利用所述自注意力机制来进行特征增强;对对象的文本描述,将对象和对象的文本描述嵌入到高维空间,得到对象和对象的文本描述的嵌入矩阵,采用GRU神经网络和自注意力机制来捕获对象本身的特征;
将捕获的特征进行神经网络运算,具体为在得到卷积层和文本描述层的输出后,将卷积层的输出与文本描述层的输出连接到一起,并将它们输入到线性神经网络以获得更深层次的抽象特征,得到最终的预测输出,根据预测输出确定面向用户输入的对象推荐。
2.根据权利要求1所述的面向用户输入的序列化推荐方法,其特征在于,所述对象包括项目、商品和用户中的任一种。
3.一种面向用户输入的序列化推荐装置,其特征在于,包括处理器和存储器,在存储器上存储有程序,程序由处理器加载运行如权利要求2所述的方法,以及程序由处理器加载运行一种序列化推荐模型;所述一种序列化推荐模型的结构框架包括嵌入层、文本描述层、卷积层和全连接层;
所述嵌入层,用于将对象和对象的文本描述嵌入到高维空间,得到对象和对象的文本描述的嵌入矩阵;
所述文本描述层,用于将组成文本描述的单词通过编码后,通过嵌入矩阵映射到高维语义空间,再通过神经网络和自注意力机制来提取特征;
所述卷积层,用于在得到对象序列的嵌入矩阵之后,利用卷积滤波器抽取对象序列的序列化特征,再利用自注意力机制来进行特征增强;
所述全连接层,用于在得到卷积层和文本描述层的输出后,将卷积层的输出与文本描述层的输出连接到一起,并将它们输入到线性神经网络以获得更深层次的抽象特征。
4.根据权利要求3所述的面向用户输入的序列化推荐装置,其特征在于,在嵌入层中,除了对象和对象的文本描述的嵌入矩阵以外,还包括使用用户的嵌入矩阵来代表用户在高维语义空间的潜在特征。
5.根据权利要求3所述的面向用户输入的序列化推荐装置,其特征在于,在文本描述层中,所述神经网络包括GRU、LSTM和RNN中的任一种。
6.根据权利要求4所述的面向用户输入的序列化推荐装置,其特征在于,在所述全连接层中,还包括将用户的嵌入矩阵和获得的更深层次的抽象特征连接起来,同时为了捕捉之前L个对象和之后T个对象的联系,还包括将之后T个对象的嵌入矩阵和相应的文本描述层的输出连接起来,最后进行最终的运算;其中,L表示历史行为序列的长度,T表示目标序列的长度。
7.根据权利要求3或4所述的面向用户输入的序列化推荐装置,其特征在于,在嵌入层中,所述将对象和对象的文本描述嵌入到高维空间,具体为将前L个对象输入到卷积层来提取对象的序列信息,对于对象的文本描述,将它们的每个单词先进行编码,然后映射到高维语义空间,L表示历史行为序列的长度。
8.根据权利要求5所述的面向用户输入的序列化推荐装置,其特征在于,所述神经网络为GRU时,整个GRU层由多个GRU单元组成,并且GRU单元的数量由对象的文本描述的长度决定;所述通过神经网络和自注意力机制来提取特征具体为使用自注意力机制来处理经过GRU层后的序列数据,自注意力操作将GRU层的输出作为输入,然后通过线性投影将其转换为多个矩阵,并将多个矩阵输入到注意力层;再根据GRU层的输出、线性变换和层标准化处理应用残差连接,得到残差连接后的输出后,应用池化处理来进行数据降维,去除冗余数据中的冗余信息;经过均值池化后得到了文本描述层的最终输出。
9.根据权利要求3所述的面向用户输入的序列化推荐装置,其特征在于,所述水平卷积滤波器为n个水平卷积滤波器,所述垂直卷积滤波器为n个水平卷积滤波器,n为正整数;
在水平卷积层中,在输入嵌入矩阵之后,对象序列的联合级特征由n个水平卷积滤波器提取,每个水平卷积过滤器都有不同的形状,不同的形状将提取不同的联合特征;n个水平滤波器的所有输出都要应用池化处理,最后将结果连接起来得到水平卷积层的最终输出;
在垂直卷积层,在输入嵌入矩阵之后,每个垂直滤波器的形状都是相同的,每个垂直滤波器的输出也是相同的,垂直卷积层的输出由n个垂直滤波器的输出连在一起所组成;
在得到水平卷积层的输出和垂直卷积层的输出后,将它们连接在一起,再利用自注意力机制进行特征提取,然后再应用残差连接,最后得到卷积层的最终输出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310168596.5A CN115858942B (zh) | 2023-02-27 | 2023-02-27 | 面向用户输入的序列化推荐方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310168596.5A CN115858942B (zh) | 2023-02-27 | 2023-02-27 | 面向用户输入的序列化推荐方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115858942A CN115858942A (zh) | 2023-03-28 |
CN115858942B true CN115858942B (zh) | 2023-05-12 |
Family
ID=85659055
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310168596.5A Active CN115858942B (zh) | 2023-02-27 | 2023-02-27 | 面向用户输入的序列化推荐方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115858942B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107506414A (zh) * | 2017-08-11 | 2017-12-22 | 武汉大学 | 一种基于长短期记忆网络的代码推荐方法 |
US11482048B1 (en) * | 2022-05-10 | 2022-10-25 | INSEER Inc. | Methods and apparatus for human pose estimation from images using dynamic multi-headed convolutional attention |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107808278B (zh) * | 2017-10-11 | 2021-09-24 | 河海大学 | 一种基于稀疏自编码器的Github开源项目推荐方法 |
CN111291534A (zh) * | 2020-02-03 | 2020-06-16 | 苏州科技大学 | 面向中文长文本自动摘要的全局编码方法 |
CN111522962B (zh) * | 2020-04-09 | 2023-05-02 | 苏州大学 | 序列推荐方法、装置及计算机可读存储介质 |
CN111737458B (zh) * | 2020-05-21 | 2024-05-21 | 深圳赛安特技术服务有限公司 | 基于注意力机制的意图识别方法、装置、设备及存储介质 |
CN112559682B (zh) * | 2020-12-03 | 2023-09-29 | 上海海事大学 | 基于GitHub软件仓库数据集的开源项目个性化检索推荐方法 |
CN113297487A (zh) * | 2021-05-24 | 2021-08-24 | 中南大学 | 一种基于注意力机制增强门控循环单元的序列推荐系统及方法 |
-
2023
- 2023-02-27 CN CN202310168596.5A patent/CN115858942B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107506414A (zh) * | 2017-08-11 | 2017-12-22 | 武汉大学 | 一种基于长短期记忆网络的代码推荐方法 |
US11482048B1 (en) * | 2022-05-10 | 2022-10-25 | INSEER Inc. | Methods and apparatus for human pose estimation from images using dynamic multi-headed convolutional attention |
Also Published As
Publication number | Publication date |
---|---|
CN115858942A (zh) | 2023-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Huang et al. | User-ranking video summarization with multi-stage spatio–temporal representation | |
Yi et al. | Topic modeling for short texts via word embedding and document correlation | |
Zhang et al. | Personalized recommendation of social images by constructing a user interest tree with deep features and tag trees | |
CN112417313A (zh) | 一种基于知识图卷积网络的模型混合推荐方法 | |
Yu et al. | Research on automatic music recommendation algorithm based on facial micro-expression recognition | |
Xia et al. | A regularized optimization framework for tag completion and image retrieval | |
Cong | Personalized recommendation of film and television culture based on an intelligent classification algorithm | |
Li et al. | SDE: A novel clustering framework based on sparsity-density entropy | |
Liu | A survey of deep learning approaches for recommendation systems | |
Halevy et al. | Discovering structure in the universe of attribute names | |
Li et al. | A general framework for deep supervised discrete hashing | |
CN113918833A (zh) | 通过社交网络关系的图卷积协同过滤实现的产品推荐方法 | |
Liu et al. | Spline regression hashing for fast image search | |
Weng et al. | Learning label-specific features with global and local label correlation for multi-label classification | |
Dai et al. | Low-rank and sparse matrix factorization for scientific paper recommendation in heterogeneous network | |
Zhou et al. | Multi-label graph node classification with label attentive neighborhood convolution | |
Zeng et al. | Pyramid hybrid pooling quantization for efficient fine-grained image retrieval | |
Meng et al. | Concept-concept association information integration and multi-model collaboration for multimedia semantic concept detection | |
Zhao et al. | Learning relevance restricted Boltzmann machine for unstructured group activity and event understanding | |
Qi et al. | Cross-media similarity metric learning with unified deep networks | |
Li et al. | Capsule neural tensor networks with multi-aspect information for Few-shot Knowledge Graph Completion | |
CN115858942B (zh) | 面向用户输入的序列化推荐方法及装置 | |
Zhang et al. | Ontology-based clustering algorithm with feature weights | |
Xia et al. | Content-irrelevant tag cleansing via bi-layer clustering and peer cooperation | |
Ahmed et al. | Clustering research papers using genetic algorithm optimized self-organizing maps |
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 |