一种API序列推荐方法、存储介质、电子设备与流程

allin2025-07-22  28


本发明属于序列推荐,具体涉及一种api序列推荐方法、存储介质、电子设备。


背景技术:

1、序列推荐的目标在于分析用户与物品之间的长期历史交互序列,以建立用户行为和物品在时间上的关系模型,从而能够为用户提供下一步的推荐。相比之下,传统的推荐系统(如协同过滤)通常以静态方式建模用户和商品之间的交互,以捕捉用户的广义偏好。然而,在实际的推荐场景中,用户的意图和偏好会随着时间和上下文的变化而变化,因此将用户与物品的交互建模为动态序列进行推荐更符合真实场景的需求。

2、api(application programming interface,应用程序编程接口)是软件系统中不同组件之间进行通信和交互的桥梁,它定义了组件之间的接口和交互规则。api序列推荐则是指基于某种算法或模型,为开发人员在软件开发过程中选择和使用api提供推荐。

3、在过去的几十年里,随着软件开发的不断发展和复杂化,api的数量和种类不断增加。这使得开发人员在面对大量api选择时感到困惑和无所适从。为了解决这一问题,api序列推荐技术应运而生。

4、api序列推荐技术的发展得益于机器学习、自然语言处理和数据挖掘等领域的进步。通过分析开发人员的编码习惯、项目需求以及api的功能和特性,api序列推荐系统可以为开发人员提供个性化、高效的api使用建议。

5、传统的api推荐方法包括基于规则的推荐和基于统计的推荐。基于规则的方法通常依赖于专家定义的规则集,这些规则描述了api之间的关联关系和使用约束。而基于统计的方法则利用历史数据和统计模型来预测开发人员可能需要的api序列。

6、近年来,随着深度学习和神经网络的发展,基于深度学习的api序列推荐方法逐渐成为研究热点。但是,基于深度学习的api序列推荐方法目前针对用户交互数据稀疏场景下表现欠佳。


技术实现思路

1、本发明的目的在于:为了解决用户交互数据稀疏场景下,现有技术中基于深度学习的推荐方法表现欠佳的问题,本发明提出了一种api序列推荐方法,包括以下步骤:

2、s1、获取用户api交互序列、api项目集合、api流行度排名交互序列、api流行度排名集合,用两种数据增强算子将用户api交互序列进行数据增强,得到两个增强序列;

3、s2、构建api序列推荐模型,所述模型包括六个嵌入层、四个编码器、一个语义融合模块;将s1获取的数据输入所述模型,得到模型输出;

4、s3、构建推荐任务和对比学习任务,基于模型输入和输出,计算推荐任务的预测得分及推荐损失、对比学习任务的对比学习损失;

5、s4、根据推荐损失和对比学习损失,基于多任务学习联合优化模型,并将推荐任务的预测得分较高的k个api项目推荐给用户。

6、进一步地,基于transformer架构的编码器层构建编码器,每个编码器包括l个transformer架构的编码器层,四个编码器结构相同;

7、对每个编码器的第l个编码器层的多头自注意力层的第i个注意力头的输入做线性投影并进行注意力计算,得到:

8、

9、其中,表示第l个编码器层的多头自注意力层的第i个注意力头的输出,表示第l个编码器层的第i个查询的权重矩阵,表示第l个编码器层的第个键的权重矩阵,表示第l个编码器层的第个值的权重矩阵;

10、将第l个编码器层的多头自注意力层的各个头的输出进行拼接,并进行映射,得到第层多头自注意力层的输出:

11、

12、其中,是第l个编码器层的多头自注意力层用于将拼接结果映射为输出的参数,m为多头自注意力层的自注意力头的数量;

13、使用前馈神经网络捕获不同维度之间的相互作用:

14、

15、其中,表示输入为的第l个编码器层的前馈神经网络,、、、是第l个编码器层的前馈神经网络的参数,是第l个编码器层的前馈神经网络的输出,表示激活函数。

16、进一步地,将api项目集合、api流行度排名集合分别输入第一嵌入层和第二嵌入层,得到api项目集合的嵌入矩阵、api流行度排名集合的嵌入矩阵;

17、将api交互序列、api流行度排名交互序列分别输入第三嵌入层和第四嵌入层,得到api交互序列的嵌入矩阵、api流行度排名交互序列的嵌入矩阵;将api交互序列的嵌入矩阵输入第一编码器,得到用户意图表示,将api流行度排名交互序列的嵌入矩阵输入第二编码器,得到用户流行度偏好表示;将用户意图表示和用户流行度偏好表示输入语义融合模块,得到融合了流行度偏好后的意图表示、融合了项目意图后流行度偏好表示;

18、将两个增强序列分别输入第五嵌入层和第六嵌入层,得到两个增强序列的嵌入矩阵,将两个增强序列的嵌入矩阵分别输入第三编码器和第四编码器,得到两个增强序列的用户意图表示。

19、进一步地,在编码器的初始输入增加可学习的位置嵌入,其中,d是向量维度,表示位置的位置嵌入,t为可学习的位置嵌入的序列的长度;

20、

21、其中,为编码器输入的序列中的第i项,是编码器的初始输入的序列中的第i项,表示位置嵌入的序列中的第个位置嵌入。

22、进一步地,将用户意图表示和用户流行度偏好表示利用语义融合模块进行语义融合,得到融合了流行度偏好后的意图表示、融合了项目意图后流行度偏好表示,具体为:

23、基于门控机制,对用户意图表示和用户流行度偏好表示进行合并:

24、

25、

26、其中,是可学习的参数,表示的实数矩阵,、是可学习的参数,为用户u的意图表示,为用户u的流行度偏好表示,为门控机制中的当前输入,为门控机制中前一时刻的输出;

27、基于重置门和更新门进行用户意图表示和用户流行度偏好表示空间的融合:

28、

29、

30、其中,、、、是可学习的参数,为模拟重置操作,用于控制对的影响,为模拟更新操作,用于决定是否忽略的影响;

31、得到融合了流行度偏好后的意图表示、融合了项目意图后流行度偏好表示:

32、

33、

34、

35、

36、其中,是可学习的参数,是融合了流行度偏好后的意图表示,是融合了项目意图后流行度偏好表示。

37、进一步地,计算推荐任务的预测得分及推荐损失具体为:

38、

39、

40、

41、

42、其中,表示用户u的api交互损失,表示用户u的api交互序列,表示的长度,表示时刻用户与api项目交互的似然得分;表示t时刻api项目得分,,表示api项目集合的嵌入矩阵,,表示与api项目关联的api流行度的嵌入矩阵,表示api流行度排名集合的嵌入矩阵,是api项目和api流行度的关联矩阵,m为api项目数量,q为api流行度数量;

43、

44、

45、

46、其中,表示用户u的api流行度损失,表示用户u的api流行度排名交互数目,表示用户u的api流行度排名交互序列,表示时刻用户与api流行度交互的似然得分;表示t时刻api流行度得分,在时间t时用户u的流行度偏好表示;

47、基于api项目得分和api流行度得分,得到推荐任务预测得分y,推荐任务的预测得分表示为:;

48、基于用户api交互损失和api流行度损失,得到推荐任务的推荐损失:

49、

50、其中,表示推荐任务的推荐损失,表示所有用户集合,是l2正则化参数,是模型参数。

51、进一步地,基于两个增强序列的用户意图表示计算对比学习任务的对比学习损失,具体为:

52、随机应用两种数据增强算子和对用户u的api交互序列进行数据增强,得到增强序列;

53、将增强序列和输入意图学习编码器,得到序列的意图表示和序列意图表示;

54、构建意图对比损失:

55、

56、

57、

58、其中,表示意图对比损失,表示基于和之间的相似度,计算之间相似度占比;表示基于和之间相似度,计算之间相似度占比;sim是向量相似度计算函数,表示用于控制相似度计算结果分布的温度超参数,为序列的意图表示,为序列的意图表示,表示负样本的意图表示的集合;表示中的第k个负样本的意图表示,同一个用户的用户api交互序列使用数据增强算子和的两个增强序列为正样本对,其他用户的增强序列形成负样本的集合。

59、进一步地,根据推荐损失和对比学习损失,对模型进行联合调优,具体为:

60、根据推荐损失和对比学习损失构建模型训练损失,其中,是控制对比学习任务影响占比的超参数,根据模型训练损失对模型进行训练调优。

61、本发明还提出一种计算机可读存储介质,计算机可读存储介质上存储有数据处理程序,数据处理程序被处理器执行时实现上述的api序列推荐方法。

62、本发明还提出一种电子设备,包括处理器和存储器,所述处理器与所述存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括计算机可读指令,所述处理器被配置用于调用所述计算机可读指令,执行上述的api序列推荐方法。

63、本发明提供的技术方案带来的有益效果是:

64、本发明的方法针对api项目序列和api流行度序列引入用户意图表示和流行度偏好表示,并进行语义融合,结合意图和流行度偏好进行推荐损失计算和下一项预测;在对比学习任务中应用随机数据增强算子生成项目序列的增强序列,最大化同一用户序列的相似性和不同用户序列的差异性,构造意图级的对比损失;最后基于多任务学习联合优化推荐任务和对比学习任务。该方法能够更好地表征用户api调用序列,具有更好的鲁棒性,进而获得更准确、合理的推荐结果。本发明通过结合对比学习任务,强化用户意图感知,从而提升在用户交互数据稀疏场景下的推荐性能。api序列推荐技术为开发人员提供了在软件开发过程中选择和使用api的有效工具,有助于提高开发效率和软件质量。


技术特征:

1.一种api序列推荐方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种api序列推荐方法,其特征在于,

3.根据权利要求2所述的一种api序列推荐方法,其特征在于,

4.根据权利要求1所述的一种api序列推荐方法,其特征在于,在编码器的初始输入增加可学习的位置嵌入,其中,d是向量维度,表示位置的位置嵌入,t为可学习的位置嵌入的序列的长度;

5.根据权利要求3所述的一种api序列推荐方法,其特征在于,将用户意图表示和用户流行度偏好表示利用语义融合模块进行语义融合,得到融合了流行度偏好后的意图表示、融合了项目意图后流行度偏好表示,具体为:

6.根据权利要求5所述的一种api序列推荐方法,其特征在于,计算推荐任务的预测得分及推荐损失具体为:

7.根据权利要求6所述的一种api序列推荐方法,其特征在于,基于两个增强序列的用户意图表示计算对比学习任务的对比学习损失,具体为:

8.根据权利要求7所述的一种api序列推荐方法,其特征在于,根据推荐损失和对比学习损失,对模型进行联合调优,具体为:

9.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如权利要求1-8任一所述方法的。

10.一种电子设备,其特征在于,包括处理器和存储器,所述处理器与所述存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括计算机可读指令,所述处理器被配置用于调用所述计算机可读指令,执行如权利要求1-8任一项所述的方法。


技术总结
本发明公开了一种API序列推荐方法、存储介质、电子设备,属于序列推荐技术领域,方法包括:获取用户API交互序列、API项目集合、API流行度排名交互序列、API流行度排名集合,将用户API交互序列进行数据增强,得到两个增强序列;构建API序列推荐模型,模型包括两个嵌入层、四个编码器、一个语义融合模块;构建推荐任务和对比学习任务,基于模型输入和输出,计算推荐任务的预测得分及推荐损失、对比学习任务的对比学习损失;多任务学习联合优化模型,并将推荐任务的预测得分较高的k个API项目推荐给用户。本发明能够更好地表征用户API调用序列,获得更准确、合理的推荐结果。

技术研发人员:裴学良,高元新,汪志豪,王健,刘冰倩
受保护的技术使用者:安徽思高智能科技有限公司
技术研发日:
技术公布日:2024/10/31
转载请注明原文地址: https://www.8miu.com/read-23255.html

最新回复(0)