基于图神经网络的软件系统中关键类识别方法研究
这是一篇关于软件网络,关键类,网络嵌入,图神经网络,排序学习的论文, 主要内容为随着软件系统规模的不断增大,其复杂性也随之剧增,软件工程师的开发与维护工作量也明显加重。近年来一系列研究表明,软件系统中存在一些关键度较高的类,即关键类。这些类通常位于软件系统拓扑结构的核心位置,如果关键类出现失效的情况,将对软件系统拓扑网络的连通性能造成较大破坏,因此关键类上存在的缺陷将对系统带来极大安全隐患,另外识别软件系统的关键类对工程师理解或维护一个不熟悉的软件系统同样至关重要。复杂网络理论的兴起,为研究大型软件系统的特性开辟了一条新的途径,其中复杂网络中节点重要性排序方法也为软件系统中关键类的识别提供了一个新视角,并已提出了许多相关方法。现有的基于软件网络的关键类识别方法,一部分聚焦在改进软件网络建模策略,另一部分则是从网络功能(如抗毁性、传播影响力)和拓扑结构(如聚类系数、度相关性、中心性)等方面改进节点重要性度量指标(手工的度量指标)。近年来,深度学习范式(如卷积神经网络(CNN)、长短期记忆(LSTM)和自动编码器)彻底改变了依赖手工的特征工程来提取信息特征的局面。图神经网络也因此被启发用于自动处理图数据,并成功应用于社交网络、信息网络,也存在将图神经网络应用于商品评价网络或知识图谱的关键节点识别任务的研究。然而迄今为止,笔者暂未发现有利用图神经网络来识别软件系统关键类的研究。为此,本文尝试在软件网络上利用图神经网络进行节点的重要性学习,实现软件系统中关键类的识别。本文参考应用于其它领域的图神经网络框架并对其进行改进使其适用于软件系统关键类识别任务。首先通过对软件系统源代码进行解析,抽取类之间的依赖关系和依赖强度,构建加权软件网络模型。其次利用网络嵌入学习将软件网络中节点映射为一个低维表征向量;然后构建一个基于图自编码器的排序模型,以得到的节点低维表征向量作为编码器输入,将每个节点进一步编码为一个特征向量,再在一个多层感知机上使用成对排序(pairwise ranking)损失函数训练模型,将每个节点解码为一个评估值。最后,从网络鲁棒性角度利用三个指标评价关键类的识别准确性。通过在人工的复杂网络上进行模型训练,再在4个实际的面向对象Java开源软件上进行验证,并与常用的5种度量方法和3个已有工作进行对比分析。实验结果显示:从网络鲁棒性角度评价,与常用的介数中心性、K-core、接近中心性、节点收缩法和Page Rank方法相比,本文所提方法在识别软件系统中关键类的效果上更好;另外,在已有公开标注数据集上,本文方法前15%的关键节点的召回率和准确率效果更好,其中召回率和准确率提高幅度均在10%以上,最大可达80%。研究成果可以应用于指导软件开发过程中的关键类查找,为软件工程师提供一个类的排序列表,作为代码理解过程的起点和维护依据。
基于图谱实体表示与排序学习的文本检索方法研究
这是一篇关于深度学习,知识图谱,文本检索,实体表示,排序学习的论文, 主要内容为在高速发展的互联网时代,检索成为了人们查找并获取知识重要手段,其便利的使用方法可以帮助人们快速获取想要的信息。文本检索作为最基本的检索方式之一,虽然在过去的几十年中通过传统的布尔模型,词袋模型和一些经典的排序算法有了极大的提高,但是仍然存在很多问题。一方面是算法在自然语言的理解上的不足。传统的方法大部分基于词频的统计匹配而并非是在语义上理解文章和问题给出答案,导致很多答案没有准确理解搜索语义而被排除掉。另一方面传统的排序模型也存在着学习能力不足,学习效果严重依赖于人工特征选择和提取等问题。在过去的几年中深度学习模型和知识图谱表示推理有了很大的进展,并在各个领域取得了重要突破。深度学习网络因为其端到端的优秀提取特征能力,以及层数的叠加带来的计算收益在很多方面超越了传统的机器学习算法,在深度学习模型上发展的词向量和文本表示模型已经广泛的应用在自然语言的各种分支中。知识图谱可以描述实体的概念和实体之间关系,并构成巨大的网络关系图,其中的概念经过人工审核准确而可靠。通过知识图谱,可以准确的存储有关实体的知识,在问答和检索,实体连接等任务上都有可靠的表现。借助现有的知识图谱表示方法和深度学习排序学习模型,本文提出了新的文本检索模型(AttentionKernel Entity Similarity Ranking,AKESR),新模型可以增强单词多层面的语义理解,并且实现端到端的特征提取与排序打分,和以往的深度学习检索模型相比可以使用更少的数据达到满意的效果。本文提出的基于图谱实体表示和深度学习网络的文本检索模型包含创新点如下:1.在深度学习排序学习模型中引入基于知识图谱的多关系实体嵌入。不同于传统网络中把词向量作为输入,本文中的输入主要基于知识图谱中训练的多关系实体向量。根据已有的知识图谱库以及文本库中的文献自建适合该任务的知识图谱,并通过知识图谱实体表示方法提取出多种关系的向量字典。2.采用多维度相似度矩阵作为网络输入,保留多维度实体匹配相关信息。提取出数据集中的检索问题和文章中的实体,在相同关系的维度上进行对应位置两两相似度匹配从而得到多维的相似度矩阵。3.在原有模型网络中引入改进的多头自注意力机制。将检索问题中词向量的自注意力分配与实体网络特征提取的结果相结合,以提取检索问题中词汇之间的相互依赖关系。将多维相似度矩阵输入网络,经过高斯核卷积和自注意力机制相结合的方法进行特征提取并通过全连接层训练。最后本文通过Pairwise为损失的训练方法得到最终的训练网络,从多个角度对比传统检索方法和现有的深度学习检索算法,实验证明该网络可以在引入实体的背景关系并且有效降低训练所需数据量的同时,提供较高的准确率。
基于协同过滤的个性化混合推荐算法及模型研究
这是一篇关于协同过滤,个性化推荐,上下文感知,矩阵分解,排序学习的论文, 主要内容为随着信息科学技术的发展,人们开始逐渐从IT(Information Technology)时代向DT(Data Technology)时代迈进,在海量信息化的时代里,如何有效的解决信息过载难题成为了热门研究内容之一。传统的基于协同过滤的个性化推荐算法在一定程度上缓解了上述问题,然而其存在着数据稀疏性问题、冷启动问题,并且使用单一的推荐算法难以有效提高个性化推荐系统的推荐精度。针对上述存在的问题,本文主要做出了如下的工作:首先,本文提出了一种基于用户上下文感知的推荐算法。该算法引入设备日志中的上下文信息,将原有的用户信息、项目信息与对应的上下文信息融合,提取用户、项目以及上下文信息的表示特征,并在其基础上挖掘用户信息、项目信息、上下文信息三者间的潜在关联。仿真结果表明,相对于主流的上下文推荐算法,本文提出的算法有效地解决了推荐过程中的数据稀疏性问题,取得了更好的推荐效果。其次,本文提出了一种基于用户和项目辅助信息的矩阵分解推荐算法。针对传统的矩阵分解推荐模型中未考虑到用户和项目辅助信息的缺陷,该算法将用户和项目辅助信息有效的融入矩阵分解模型。在用户辅助信息和项目辅助信息的基础上,结合矩阵分解技术,对原始评分矩阵进行有效的信息补偿,并使用最小二乘法求解模型最优解。仿真结果表明,相较于主流的矩阵分解推荐算法,该算法有效地解决了个性化推荐过程中的冷启动问题,取得了更高的推荐精度。最后,本文提出了一种基于排序学习的个性化混合推荐模型。由于传统单一推荐算法往往存在一定程度上不足,例如基于内容的推荐算法推荐精度不高,基于协同过滤的推荐算法存在冷启动问题。并且不同类型的推荐算法之间难以有效融合来弥补自身不足。因此,本文提出了一种新型的个性化混合推荐模型,使用排序学习方法有效地将多种推荐算法融合起来,自适应学习并分配不同算法间的最佳融合权重。仿真结果表明,该混合个性化推荐模型可以有效弥补单一推荐算法精度不足的缺陷,解决了推荐过程中多种推荐算法间融合困难的问题,提高了推荐的准确度。
基于排序学习的跨项目软件缺陷预测方法研究
这是一篇关于缺陷预测,相关性,重采样,排序学习,精化排序的论文, 主要内容为近年来,在有关软件缺陷预测(Software Defect Prediction,SDP)的研究中,基于跨项目的缺陷预测问题逐渐成为研究的重心。大多数缺陷预测的研究都将该问题作为二分类问题或回归问题进行讨论。事实上,在缺陷预测的现实场景中,开发者在大多数情况下并不需要每一个软件实体的具体预测结果,而是让自动缺陷预测工具找出项目中可能具有高风险的文件,对其进行定位修复即可。本文借鉴推荐系统中经典的排序学习算法,设计了一种基于跨项目缺陷预测的排序学习框架,这种框架能够匹配缺陷预测的数据集,对其进行标签转化、重采样等预处理,最后选择合适的排序学习算法及排序结果优化方法训练出最优的模型,推荐top-k高风险文档反馈给开发者。为了验证针对本框架的有效性,本文主要从四个方面设计了实验:(1)对于数据构造不匹配的问题,本文首先设定了“找出高风险文件”的单查询场景。针对该场景的问题,对数据集中缺陷个数标签进行了统计。使用折叠高斯分布拟合数据集中缺陷分布情况,并依据3σ原则进行相关度划分。(2)对缺陷预测中常常会出现的数据不平衡问题,本文设计了一种混合采样方法SMOTE-PENN。实验对比了随机上采样,等六种经典重采样方法,本文提出的算法能够在各项评价指标中取得最高的得分。同时,本文讨论了重采样计算距离所需的7种度量方法,实验发现标准化欧氏距离在软件缺陷预测场景下的度量效果最优。(3)在排序学习方法的选择上,本文选择了Rank Net等5种排序学习的经典方法,详细讨论了每种方法的特点,并在NDCG指标下对每种模型的性能进行评价。实发现,List Net和Rank Net在本文的框架下相较于其他方法能够取得更好的结果。同时,我们还对评价指标中k值的变化及排序学习场景进行了讨论。(4)在排序结果优化的问题上,本文设计了一种独立于粗排序场景的精化排序方法,对粗排序中具有并列排名的结果进一步细化排序。实验发现,该方法在推荐样本个数较多时,能够显著提高模型的性能。下一步,我们将会对数据集进行扩充,更加全面地验证模型效果;选择更多的排序学习算法或设计新的排序学习算法并制定多查询场景以提升模型的健壮性;考虑参数搜索等方法进一步提高模型性能。
融合标签迁移的跨领域推荐技术研究
这是一篇关于跨领域推荐,迁移学习,排序学习,项目标签,项目偏序对的论文, 主要内容为身处移动互联网时代,用户获取信息的渠道与日俱增,因此很难迅速对内容做出有效判断。信息过载等问题的出现使得推荐系统应运而生,并在各个领域展开了丰富的运用。但是,推荐系统面临的数据稀疏、冷启动等问题依然难以被有效地解决。因此,越来越多的机器学习技术开始运用于改进推荐算法。迁移学习技术能够通过迁移其他领域的知识至目标领域,为推荐结果增加可学习数据、强化推荐模型,缓解目标领域的数据稀疏和冷启动问题。因而本文开展了基于知识迁移的跨领域推荐模型和算法的研究,完成的主要工作如下:(1)大多数跨领域推荐算法常采用迁移学习技术,然而现有的迁移学习方法大多基于单一的评分模式迁移,在领域不相关的场景下,往往会导致负迁移、推荐结果不佳等问题。本文将评分知识与行为知识相结合,共同辅助目标领域的学习任务。在行为数据中,项目标签与用户的真实偏好相关,能够从另一个侧面反映用户或项目的隐式特征。为了缓解负迁移,考虑将辅助领域和目标领域的标签进行聚合,共同获得可迁移的知识。在此基础上,提出了融合标签的跨领域迁移推荐算法ITTCF(Item-based Tag Transfer Collaborative Filtering)。算法摒弃了仅对评分模式进行迁移的单一辅助方式,结合了用户评分和项目标签这两种异构知识,并融合了目标领域的标签,在一定程度上改善了目标领域数据的稀疏性和负迁移问题。(2)在现实场景中,用户更关心的是推荐的结果而不是评分,通过预测评分进行推荐并不能准确地捕获用户的偏好。基于此,进一步提出了面向对级排序的知识迁移推荐算法 RBT(Ranking-oriented Behavioral knowledge Transfer recommendation)。将算法的推荐目标从评分预测转向排名预测。通过迁移包括评分、标签在内的领域信息,得到更多的项目偏好,从而能够构建更为丰富的项目偏序对,用以训练排序模型,最终为目标用户生成候选推荐列表。(3)选取了豆瓣电影、豆瓣图书、MovieLens等数据集开展上述算法的对比实验。实验结果表明,ITTCF在RMSE和MAE上较对比算法分别提升了 1.61%-6.67%和1.97%-8.83%。通过排序学习,RBT在准确率、召回率、NDCG等面向排序的推荐评价指标上也均得到提升。
基于图神经网络的软件系统中关键类识别方法研究
这是一篇关于软件网络,关键类,网络嵌入,图神经网络,排序学习的论文, 主要内容为随着软件系统规模的不断增大,其复杂性也随之剧增,软件工程师的开发与维护工作量也明显加重。近年来一系列研究表明,软件系统中存在一些关键度较高的类,即关键类。这些类通常位于软件系统拓扑结构的核心位置,如果关键类出现失效的情况,将对软件系统拓扑网络的连通性能造成较大破坏,因此关键类上存在的缺陷将对系统带来极大安全隐患,另外识别软件系统的关键类对工程师理解或维护一个不熟悉的软件系统同样至关重要。复杂网络理论的兴起,为研究大型软件系统的特性开辟了一条新的途径,其中复杂网络中节点重要性排序方法也为软件系统中关键类的识别提供了一个新视角,并已提出了许多相关方法。现有的基于软件网络的关键类识别方法,一部分聚焦在改进软件网络建模策略,另一部分则是从网络功能(如抗毁性、传播影响力)和拓扑结构(如聚类系数、度相关性、中心性)等方面改进节点重要性度量指标(手工的度量指标)。近年来,深度学习范式(如卷积神经网络(CNN)、长短期记忆(LSTM)和自动编码器)彻底改变了依赖手工的特征工程来提取信息特征的局面。图神经网络也因此被启发用于自动处理图数据,并成功应用于社交网络、信息网络,也存在将图神经网络应用于商品评价网络或知识图谱的关键节点识别任务的研究。然而迄今为止,笔者暂未发现有利用图神经网络来识别软件系统关键类的研究。为此,本文尝试在软件网络上利用图神经网络进行节点的重要性学习,实现软件系统中关键类的识别。本文参考应用于其它领域的图神经网络框架并对其进行改进使其适用于软件系统关键类识别任务。首先通过对软件系统源代码进行解析,抽取类之间的依赖关系和依赖强度,构建加权软件网络模型。其次利用网络嵌入学习将软件网络中节点映射为一个低维表征向量;然后构建一个基于图自编码器的排序模型,以得到的节点低维表征向量作为编码器输入,将每个节点进一步编码为一个特征向量,再在一个多层感知机上使用成对排序(pairwise ranking)损失函数训练模型,将每个节点解码为一个评估值。最后,从网络鲁棒性角度利用三个指标评价关键类的识别准确性。通过在人工的复杂网络上进行模型训练,再在4个实际的面向对象Java开源软件上进行验证,并与常用的5种度量方法和3个已有工作进行对比分析。实验结果显示:从网络鲁棒性角度评价,与常用的介数中心性、K-core、接近中心性、节点收缩法和Page Rank方法相比,本文所提方法在识别软件系统中关键类的效果上更好;另外,在已有公开标注数据集上,本文方法前15%的关键节点的召回率和准确率效果更好,其中召回率和准确率提高幅度均在10%以上,最大可达80%。研究成果可以应用于指导软件开发过程中的关键类查找,为软件工程师提供一个类的排序列表,作为代码理解过程的起点和维护依据。
基于排序学习的音乐推荐系统设计与实现
这是一篇关于音乐推荐,排序学习,RankBoost,推荐系统的论文, 主要内容为音乐是人们娱乐生活的重要组成部分,也是放松休闲的重要途径。随着互联网的快速发展,音乐制作技术的提高、创作周期的加快以及压缩技术的成熟,人们可以方便的将自己的音乐作品发布到网上,使得网络上出现了越来越多的音乐作品。互联网作为获取资源的重要媒介,能为用户提供多样化的服务,使得人们获取音乐的渠道越来越广,接触到的音乐信息越来越多。但是这也带来了“信息过载”问题,用户要从海量的音乐中找到自己喜欢的音乐,往往需要付出更多的时间和精力。音乐推荐系统可以根据交互记录发现个人偏好,然后从海量的音乐作品中为用户推荐可能喜欢的歌曲,可以有效缓解“信息过载”问题。基于内容的推荐算法和协同过滤推荐算法是推荐系统中两种常用的推荐方法。音乐作品不同于文本信息,很难从音乐本身的内容去做推荐;在使用协同过滤推荐算法时,由于很少有用户对歌曲进行直接评分,因此需要将用户的历史行为进行评分制转换,这往往会丢失许多有用信息。为提高音乐推荐排名的准确性,本文研究了基于排序学习的音乐推荐方法,并设计了一个基于排序学习的音乐推荐系统。系统从用户对音乐下载、收藏、或多次进行收听行为中分析用户对于音乐作品的偏好。根据用户对产品的偏好关系和相关度为用户给出一个排序的产品列表。本文的主要工作包括以下几点内容:(1)研究了常用的几种推荐算法和排序学习算法,比较了基于内容的推荐算法、协同过滤推荐算法和混合推荐算法的优缺点,以及点级、对级和列表级三种排序学习方法的应用场景,探索将排序学习方法应用到推荐系统中的方法和流程。(2)本文使用“时间黑客数据挖掘赛”提供的阿里音乐数据集为实验数据集,对基于排序学习的推荐算法进行了实验,同时以基于用户的协同过滤算法、基于产品的协同过滤算法和没有加权的排序学习方法三种算法作为对比实验,对实验结果进行了评估和比较。(3)设计和实现基于排序学习的音乐推荐系统,本系统基于MVC框架,根据系统的功能分为推荐模块、登录注册模块、记录收集模块和歌曲搜索模块四个模块进行设计,并对系统的运行效果进行了测试。
本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:毕设助手 ,原文地址:https://m.bishedaima.com/lunwen/48804.html