软件开发者在开发过程遇到应用程序编程接口(application programming interface,API)使用问题时,通常希望能够得到有效的API使用模式建议,从而帮助其学习和使用.传统的API推荐方法会挖掘和学习代码库中API的使用知识,然后给开发者推荐与上下文相关的API.然而由于上下文信息表征不够充分,以及推荐列表中冗余项和同质化内容的出现影响了推荐性能.针对这一问题,构建项目和方法与API的API层次调用图(API hierarchy call graph,AHCG)模型以更好地表达API上下文关系,充分利用API结构信息和语义信息来减少冗余项和降低同质化内容被推荐的可能性,进而提出基于上下文感知并面向多样性的API推荐(context-aware based API recommendation with diversity,CAPIRD)方法.该方法中引入相关性度量和关联性度量,最大限度地保留相关结果,同时平衡已选API与候选API的关联性,以尽可能挖掘到合理的初选API列表.最后结合最大边缘相关算法,在标准模式数据集上学习相关性和关联性的最佳权重组合,并进行多样性重排推荐.在2210个项目构成的3类数据集上进行实验并验证推荐性能,实验结果表明,CAPIRD在基于上下文的API推荐场景下能够有效提高推荐性能.在所有数据集的API推荐中,平均精度(mean average precision,MAP)指标平均提升值约9%,在Top-1的推荐中,成功率(success rate)指标平均提升约13%.
在互联网时代,个性化新闻推荐是一种很重要的方法,能够帮助人们在海量的新闻中迅速找到自己感兴趣的内容。新闻推荐过程通常分为“召回”和“排序”两个阶段。召回阶段是从大量的候选新闻中快速筛选出一部分,目标是尽可能多地包含用户真正感兴趣的新闻;排序阶段则是将召回的新闻按用户可能感兴趣的程度从大到小排序,最终将排序最靠前的新闻推荐给用户。在目前大多数新闻推荐方法中,召回阶段通常难以充分挖掘新闻潜在的语义信息导致效果受限,并且容易忽视用户对新闻多样性的需求;排序阶段通常建立一个对历史点击新闻有丰富短期依赖性的顺序推荐任务模型,这会忽视用户对新闻的时间多样性偏好和用户兴趣的动态迁移性。针对以上问题,本文提出了基于深度学习的个性化新闻推荐方法。首先,在推荐召回阶段,本文提出了一种将热度召回、聚类召回和基于预训练语义召回三种模型进行融合的“强化召回”模型。热度召回模型将时间因素考虑在内并依据用户点击量形成热度排行榜进行召回;聚类召回模型根据用户进行聚类,在目标用户所在类和其他类内分别选择与目标用户相似度最大的前几个用户作为最近邻,将这些用户喜欢的新闻推荐给目标用户,可以使新闻推荐结果更具多样性;基于预训练语义召回模型将使用预训练模型Ro BERTa进行新闻和用户建模,将用户行为序列和新闻信息进行充分的融合,可以有效提高召回率。因此,融合了三种召回模型的“强化召回”模型可以在提高推荐准确率的基础上增加推荐列表新闻的多样性。其次,在推荐排序阶段,本文提出了基于会话的注意力机制与时间多样性推荐(Attention Mechanism and Temporal Diversity Recommendation Based on Conversation,AMTR-BC)。在会话内和会话间分别使用自注意力机制和注意力机制,学习用户在会话内的主要阅读兴趣和当前会话与历史会话之间用户兴趣的关联程度,从而捕捉用户兴趣的动态迁移性;构建并计算全局和近期的用户兴趣相关性得分,通过两者的线性组合获得最终的点击得分,这样可以鼓励推荐不同于最近阅读的新闻,满足用户对新闻时间多样性的需求。最后,将本文所提出的个性化新闻推荐算法模型应用在微软公开的新闻数据集MIND上,通过实验调整参数后与常见的推荐模型进行效果对比,实验结果表明本文所提出的方法在推荐效果上优于所对比的方法,证明了其可行性和有效性。
暂无评论