CN107808278B - 一种基于稀疏自编码器的Github开源项目推荐方法 - Google Patents

一种基于稀疏自编码器的Github开源项目推荐方法 Download PDF

Info

Publication number
CN107808278B
CN107808278B CN201710940238.6A CN201710940238A CN107808278B CN 107808278 B CN107808278 B CN 107808278B CN 201710940238 A CN201710940238 A CN 201710940238A CN 107808278 B CN107808278 B CN 107808278B
Authority
CN
China
Prior art keywords
matrix
user
project
open source
encoder
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
CN201710940238.6A
Other languages
English (en)
Other versions
CN107808278A (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.)
Hohai University HHU
Original Assignee
Hohai University HHU
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 Hohai University HHU filed Critical Hohai University HHU
Priority to CN201710940238.6A priority Critical patent/CN107808278B/zh
Publication of CN107808278A publication Critical patent/CN107808278A/zh
Application granted granted Critical
Publication of CN107808278B publication Critical patent/CN107808278B/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
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/103Workflow collaboration or project management
    • 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/35Clustering; Classification
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • General Engineering & Computer Science (AREA)
  • Operations Research (AREA)
  • General Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Quality & Reliability (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于稀疏自编码器的Github开源项目推荐方法,分别从项目、用户、项目‑用户三个维度进行数据预处理,得到用户关联度矩阵、项目关联度矩阵、用户‑项目关联度矩阵;对文本信息进行提取,通过分析文本相似度对项目进行聚类。结合协同过滤模型和稀疏自编码器帮助开发者找到合适的开源项目。将数据预处理所得的三个矩阵作为输入,通过神经网络迭代学习,得到两个潜在因子向量,通过潜在因子向量的内积预测出用户‑项目关联度矩阵中的缺失项,根据开源项目的聚类信息,将同一类中分值较高的前N项进行推荐。推荐合适的项目给开发者,节省了开发者在海量开源项目中寻找自己感兴趣的项目的时间,有效地提高了开发者参与开源项目的性能。

Description

一种基于稀疏自编码器的Github开源项目推荐方法
技术领域
本发明涉及一种基于稀疏自编码器的Github开源项目推荐方法,属于软件工程推荐系统及数据挖掘技术领域。
背景技术
Github是当今最大的面向开源及私有软件项目的托管平台,开发者通过它实现了社交化编程。Githhub的开放性与灵活性,使得越来越来的软件开发爱好者加入到这个社区,形成了巨大的软件生产力。在Github开源社区中,开发者可以关注其他开发者,收藏或关注自己感兴趣的开源项目,并且可以克隆项目到本地进行修改和更新。使得在不同时间不同区域也能实现代码的协同合作。随着开源资源的不断增长,为软件开发带来了许多的可复用软件。但同时带来了信息过载问题。因此,如何使开发者兴趣偏好与开源项目技术需求相吻合,成为了涉及软件工程的推荐系统领域中的一个重要问题。
目前,解决上述问题的一种有效途径是量化开发者与开源项目之间的网络关联关系,通过开发者之间的相似度或开源项目之间的相似度进行top-N推荐。但是没有进一步挖掘开发者之间的社交关联,对开发者与开源项目关联的特征属性的考虑也相对单一,没有充分利用用户历史行为数据中有价值的特征。
同时,利用传统的推荐算法来为开发者推荐合适的开源项目并不合适。首先,Github中的数据极度稀疏,就开源项目而言,大部分的开源项目仅仅有个别的开发者参与其中,许多开源项目难以被开发者发现;就开发者而言,由于时间和精力的限制,开发者能参与的开源项目也就非常有限,开发者需要花费大量的时间和精力从海量的开源项目中找到自己感兴趣的项目。其次,Github中的评论及描述等语义信息没有明显的情感倾向,难以通过语义信息来确定用户偏好,所以,单纯地通过语义信息来为开发者推荐开源项目是不可取的。
因此,本发明考虑了用户关联度、项目关联度、用户-项目关联度三个维度的特征属性。结合协同过滤模型和稀疏自编码器(SAE)帮助开发者找到合适的开源项目,一方面对数据进行处理及筛选得到三个维度的矩阵(用户-项目关联度矩阵、用户关联度、项目关联度矩阵);另一方面对文本信息进行提取,通过分析文本相似度对项目进行聚类。为了解决Github社区原始数据的稀疏性,本方法通过利用矩阵分解特性,构建了稀疏自动编码器对原始数据进行降维处理,降低原始数据稀疏性。通过梯度下降法对稀疏自编码器进行优化,得出最优的潜在因子特征向量,提高模型预测的准确率。通过神经网络不断的迭代学习,最后得到两个潜在因子向量,通过潜在因子向量的内积预测出用户-项目关联度矩阵中的缺失项,根据开源项目的聚类信息,将同一类中分值较高的前N项进行推荐。推荐合适的项目给开发者,节省了开发者在海量开源项目中寻找自己感兴趣的项目的时间,有效地提高了开发者参与开源项目的性能。
发明内容
发明目的:针对现有技术中存在的问题,为了提高开源项目推荐的准确率和召回率,考虑用户行为数据中的多维特征属性以及文本信息,提出了一种基于稀疏自编码器的Github开源项目推荐方法。
技术方案:一种基于稀疏自编码器的Github开源项目推荐方法,包括以下步骤:
步骤1:数据收集及数据预处理,构建用户关联度矩阵U、项目关联度矩阵I、用户-项目关联度矩阵R;
步骤2:根据开源项目描述信息,对项目进行聚类;
步骤3:建立基于稀疏自编码器的协同过滤模型;
步骤4:根据训练样本对稀疏自编码器进行训练,确定稀疏自编码器中的权重矩阵;
步骤5:利用稀疏自编码器,学习并提取潜在因子向量,预测矩阵R缺失值;为每一个用户生成推荐列表。
所述步骤1进一步为:
步骤1.1:从Github社交编程网站中首先整体获取该网站的用户历史行为数据,该数据包括针对开发者的关注(follow)信息、针对开源项目的语言类型(language)信息以及开发者对开源项目的关注(watch)、复刻(fork)、提交评论(pull-request comment)、问题评论(issue comment)信息。通过对数据进行分析得到,一些项目信息量较低,受众较少,推荐意义低,若不去除,还会影响模型的拟合速度。因此需要对数据集进行筛选,主要是去除无人涉及或者是较少涉及的项目,筛选标准为:
用户:关注(follow)过5-20个开发者;
项目:拥有3个关注(watch),1个复刻(fork);
通过分析和筛选,将分散的开发历史数据以开发者和开源项目为中心进行聚合。
步骤1.2:根据开发者对项目的watch、fork、pull-request comment、issuecomment等操作构建一个m×n用户-项目关联度矩阵作为主矩阵R。矩阵的行代表用户(开发者),列代表项目,其中m代表开发者的个数,n代表项目的个数,第i行第j列的值rij代表开发者对项目的感兴趣程度。不同的用户行为代表着用户不同的偏好,将用户行为量化标准得到实际评分矩阵。量化标准为:o1(watch)=1、o2(fork)=2、o3(pull-request comment)=3、o4(issue comment)=4,函数即用户对项目的行为的评分之和,主矩阵R中各项的取值为rij=∑oi(i≤4),即开发者对开源项目关注(watch)、复刻(fork)、提交评论(pull-requestcomment)、问题评论(issue comment)的行为所得到的评分之和。
步骤1.3:在社交网络中,通常认为相互关注的用户会具有相似的偏好,因此可以根据开发者的关注(follow)情况得到开发者与某一项目的间接关系,从而构建与步骤1.2得到的主矩阵对应的一个m×n用户关联度矩阵U。矩阵构建进一步为:若用户i与某个项目j存在着间接关系,则矩阵U中的第i行j列项的取值为Ui,j=n(n∈Z)。
步骤1.4:同理,使用相同的编程语言的开发者存在着一定程度上的相同技术偏好,通过项目的编程语言(language)属性找到用户与这些项目编程语言相同的项目,从而构建一个与步骤1.2得到的主矩阵对应的一个m×n项目关联度矩阵I。矩阵构建进一步为:若用户i与项目j存在间接关系,则矩阵U中的第i行j列项的取值为Ui,j=k(k∈Z);合并矩阵U、I。
合并后的附加矩阵M计算公式为:
Mi,j=η*Ui,j+Γ*Iij(其中η、Γ∈(0,1))
Ui,j为矩阵U中第i行j列的值,Ii,j为矩阵I中第i行j列的值,η、Γ为权重参数。
所述步骤2主要是根据开源项目描述信息,对项目进行聚类,具体步骤如下:
步骤2.1:利用开源项目的描述信息,对于Github数据集中的描述信息来说,编程语言例如java、c++等的重要程度和信息量等高于其他词,需要使用TF-IDF将文本特征的重要程度量化,提取重要程度高的、信息量大的特征,这里重要程度高的、信息量大的词主要是指编程语言。
步骤2.2:利用word2vec将提取出来的特征表示成词向量的形式。
步骤2.3:计算词向量之间的余弦相似度,通过K-means算法对文本向量进行聚类。
余弦相似度计算公式为:
Figure GDA0003188837500000041
其中A、B为两个n维的词向量,n为词的长度,i为词的下标。
根据上述得到的矩阵,建立基于稀疏自编码器的协同过滤模型。所述步骤3进一步为:
建立三层结构的SAE神经网络,包括输入层、隐含层和输出层;所述的输入层的输入xt包括用户关联度矩阵U、项目关联度矩阵I、用户-项目关联度矩阵R,将矩阵的一列或一行作为输入;所述隐含层的输出为ht,输出层输出为yt
在模型中,用户-项目关联度矩阵为构建的用户-项目评分矩阵,当矩阵作为输入时,分值缺失项用0补全,即:
Figure GDA0003188837500000042
所述输入层的输入与隐含层的输出之间存在下列函数关系:
hi=sf(Wxi+p)
yi=sg(Phi+q)
其中,xi为输入层的输入,hi为第i层的输出,yi为输出层的输出,W为输入层到隐含层的权重矩阵,P为隐含层到下一个隐含层的权重矩阵,p、q为偏置项。
所述步骤4进一步为:
步骤4.1:随机初始化权重矩阵W、P,用反向传播算法BP训练权重矩阵和偏执项p、q;
步骤4.2:利用梯度下降法对反向传播算法BP训练权重矩阵和偏置值进行更新。检查参数的迭代次数是否达到上限,且目标函数的值是否不再减小(即收敛条件),若均满足,则说明该稀疏自编码器的权重矩阵被确定;若不满足,则进入步骤4.3;
稀疏自编码添加了稀疏性惩罚项,所述目标函数为:
Figure GDA0003188837500000051
其中J(W,b)为损失函数,W为权重矩阵,b为偏置项;
Figure GDA0003188837500000052
为稀疏惩罚项,β为权重参数,s2表示的是隐含层节点的个数,j表示第j个神经元,KL即KL离散(相对熵),
Figure GDA0003188837500000055
代表实际激活度,ρ代表期望激活度。
步骤4.3:根据每一个用户的训练样本对稀疏自编码器进行训练。
通过对稀疏自编码器模型的训练,生成两个不同的潜在因子向量。通过计算预测出矩阵中缺失项的值,所述步骤5进一步为:
步骤5.1:稀疏编码器所生成的两个潜在因子向量u、v满足:
Figure GDA0003188837500000053
其中ui为潜在因子矩阵u的第i行,vi为潜在因子矩阵v的第j列,Rij为用户-项目关联度矩阵R中开发者i对于项目j的值(Rij≠0),
Figure GDA0003188837500000054
新得到的开发者i对于项目j的预测值。
步骤5.2:利用生成的两个潜在因子向量的内积去拟合用户-项目关联度矩阵R中存在的值,直到值达到最优解。否则返回步骤4。
步骤5.3:根据步骤2所得到的聚类值,从同属一类的开源项目中进行top-N推荐。
有益效果:与现有的技术相比,本发明所提供的基于稀疏自编码器的Github开源项目推荐方法。根据Github开源社区上特有的开发者与开源项目特征属性,建立了涉及开发者、开源项目三个维度的特征矩阵,并利用文本信息将项目进行聚类,充分地考虑了用户历史行为数据。通过利用矩阵分解特性,构建了稀疏自动编码器对原始数据进行降维处理,降低原始数据稀疏性。通过梯度下降法对稀疏自编码器进行优化,得出最优的潜在因子特征向量,提高模型预测的准确率。节省了开发者在海量开源项目中寻找自己感兴趣的项目的时间,有效地提高了开发者参与开源项目的性能。
附图说明
图1为本发明提出的基于稀疏自编码器的Github开源项目推荐方法的原理图;
图2为稀疏自编码器SAE结构图;
图3为本发明提出的基于稀疏自编码器的Github开源项目推荐方法流程图。
具体实施方式
下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
如图1所示,一种基于稀疏自编码器的Github开源项目推荐方法,包括以下步骤:
步骤1:数据收集及数据预处理,构建用户关联度矩阵U、项目关联度矩阵I、用户-项目关联度矩阵R;
步骤2:根据开源项目描述信息,对项目进行聚类;
步骤3:建立基于稀疏自编码器的协同过滤模型;
步骤4:根据训练样本对稀疏自编码器进行训练,确定稀疏自编码器中的权重矩阵;
步骤5:利用稀疏自编码器,学习并提取潜在因子向量,预测矩阵R缺失值;为每一个用户生成推荐列表。
具体如图3所示,包括:
步骤101:从Github社交编程网站中首先整体获取该网站的用户历史行为数据,该数据包括针对开发者的关注(follow)信息、针对开源项目的语言类型(language)信息以及开发者对开源项目的关注(watch)、复刻(fork)、提交评论(pull-request comment)、问题评论(issue comment)信息。通过对数据进行分析得到,一些项目信息量较低,受众较少,推荐意义低,若不去除,还会影响模型的拟合速度。因此需要对数据集进行筛选,主要是去除无人涉及或者是较少涉及的项目,筛选标准为:
用户:关注(follow)过5-20个开发者;
项目:拥有3个关注(watch),1个复刻(fork);
通过分析和筛选,将分散的开发历史数据以开发者和开源项目为中心进行聚合。
步骤102:根据开发者对项目的watch、fork、pull-request comment、issuecomment等操作构建一个m×n用户-项目关联度矩阵作为主矩阵R。矩阵的行代表用户(开发者),列代表项目,其中m代表开发者的个数,n代表项目的个数,第i行第j列的值rij代表开发者对项目的感兴趣程度。不同的用户行为代表着用户不同的偏好,将用户行为量化标准得到实际评分矩阵。量化标准为:o1(watch)=1、o2(fork)=2、o3(pull-request comment)=3、o4(issue comment)=4,函数即用户对项目的行为的评分之和,主矩阵R中各项的取值为rij=∑oi(i≤4),即开发者对开源项目关注(watch)、复刻(fork)、提交评论(pull-requestcomment)、问题评论(issue comment)的行为所得到的评分之和。
步骤103:在社交网络中,通常认为相互关注的用户会具有相似的偏好,因此可以根据开发者的关注(follow)情况得到开发者与某一项目的间接关系,从而构建与步骤1.2得到的主矩阵对应的一个m×n用户关联度矩阵U。矩阵构建进一步为:若用户i与某个项目j存在着间接关系,则矩阵U中的第i行j列项的取值为Ui,j=n(n∈Z)。
步骤104:同理,使用相同的编程语言的开发者存在着一定程度上的相同技术偏好,通过项目的编程语言(language)属性找到用户与这些项目编程语言相同的项目,从而构建一个与步骤1.2得到的主矩阵对应的一个m×n项目关联度矩阵I。矩阵构建进一步为:若用户i与项目j存在间接关系,则矩阵U中的第i行j列项的取值为Ui,j=k(k∈Z);合并矩阵U、I。
合并后的附加矩阵M计算公式为:
Mi,j=η*Ui,j+Γ*Iij(其中η、Γ∈(0,1))
Ui,j为矩阵U中第i行j列的值,Ii,j为矩阵I中第i行j列的值,η、Γ为权重参数。
步骤105:利用开源项目的描述信息,对于Github数据集中的描述信息来说,编程语言例如java、c++等的重要程度和信息量等高于其他词,需要使用TF-IDF将文本特征的重要程度量化,提取重要程度高的、信息量大的特征,这里重要程度高的、信息量大的词主要是指编程语言。
步骤106:利用word2vec将提取出来的特征表示成词向量的形式。
步骤107:计算词向量之间的余弦相似度,通过K-means算法对文本向量进行聚类。
余弦相似度计算公式为:
Figure GDA0003188837500000081
其中A、B为两个n维的词向量,n为词的长度,i为词的下标。
步骤108:建立三层结构的SAE神经网络,包括输入层、隐含层和输出层;所述的输入层的输入xt包括用户关联度矩阵U、项目关联度矩阵I、用户-项目关联度矩阵R,将矩阵的一列或一行作为输入;所述隐含层的输出为ht,输出层输出为yt
在模型中,用户-项目关联度矩阵为构建的用户-项目评分矩阵,当矩阵作为输入时,分值缺失项用0补全,即:
Figure GDA0003188837500000082
所述输入层的输入与隐含层的输出之间存在下列函数关系:
hi=sf(Wxi+p)
yi=sg(Phi+q)
其中,xi为输入层的输入,hi为第i层的输出,yi为输出层的输出,W为输入层到隐含层的权重矩阵,P为隐含层到下一个隐含层的权重矩阵,p、q为偏置项。
步骤109:随机初始化权重矩阵W、P,用反向传播算法BP训练权重矩阵和偏执项p、q;
步骤110:利用梯度下降法对反向传播算法BP训练权重矩阵和偏置值进行更新。检查参数的迭代次数是否达到上限,且目标函数的值是否不再减小(即收敛条件),若均满足,则说明该稀疏自编码器的权重矩阵被确定;若不满足,则进入步骤111;
稀疏自编码添加了稀疏性惩罚项,所述目标函数为:
Figure GDA0003188837500000091
其中J(W,b)为损失函数,W为权重矩阵,b为偏置项;
Figure GDA0003188837500000092
为稀疏惩罚项,β为权重参数,s2表示的是隐含层节点的个数,j表示第j个神经元,KL即KL离散(相对熵),
Figure GDA0003188837500000093
代表实际激活度,ρ代表期望激活度。
步骤111:根据每一个用户的训练样本对稀疏自编码器进行训练。
步骤112:稀疏编码器所生成的两个潜在因子向量u、v满足:
Figure GDA0003188837500000094
其中ui为潜在因子矩阵u的第i行,vi为潜在因子矩阵v的第j列,Rij为用户-项目关联度矩阵R中开发者i对于项目j的值(Rij≠0),
Figure GDA0003188837500000095
新得到的开发者i对于项目j的预测值。
步骤113:利用生成的两个潜在因子向量的内积去拟合用户-项目关联度矩阵R中存在的值,直到值达到最优解。否则返回步骤109。
步骤114:根据步骤107所得到的聚类值,从同属一类的开源项目中进行top-N推荐。

Claims (2)

1.一种基于稀疏自编码器的Github开源项目推荐方法,其特征在于,包括以下步骤:
步骤1:数据收集及数据预处理,构建用户关联度矩阵U、项目关联度矩阵I、用户-项目关联度矩阵R;
步骤2:根据开源项目描述信息,对项目进行聚类;
步骤3:建立基于稀疏自编码器的协同过滤模型;
步骤4:根据训练样本对稀疏自编码器进行训练,确定稀疏自编码器中的权重矩阵;
步骤5:利用稀疏自编码器,学习并提取潜在因子向量,预测关联度矩阵R缺失值;为每一个用户生成推荐列表;
所述步骤1进一步为:
步骤1.1:从Github社交编程网站中首先整体获取该网站的用户历史行为数据,将分散的开发历史数据以开发者和开源项目为中心进行聚合;
步骤1.2:根据开发者对项目的watch、fork、pull-request comment、issue comment操作构建一个m×n用户-项目关联度矩阵R作为主矩阵,其中m为用户数量,n为项目数量;
步骤1.3:根据开发者的follow情况计算开发者与其他开发者的相似度,构建与步骤1.2得到的主矩阵对应的一个m×n用户关联度矩阵U;
步骤1.4:根据每个开源项目都具有的language属性找到各项目之间的语义关系,构建一个与步骤1.2得到的主矩阵对应的一个m×n项目关联度矩阵I;合并矩阵U、I;
所述步骤3进一步为:
建立三层结构的SAE神经网络,包括输入层、隐含层和输出层;所述的输入层的输入xt包括用户关联度矩阵U、项目关联度矩阵I、用户-项目关联度矩阵R,将矩阵的一列或一行作为输入;所述隐含层的输出为ht,输出层输出为yt
所述步骤4进一步为:
步骤4.1:随机初始化权重矩阵W、P,用反向传播算法BP训练权重矩阵和偏执项p、q;
步骤4.2:利用梯度下降法对反向传播算法BP训练权重矩阵和偏置值进行更新;检查参数的迭代次数是否达到上限,或目标函数的值是否不再减小,若均满足,则说明该稀疏自编码器的权重矩阵被确定;若不满足,则进入下一步骤;
步骤4.3:根据每一个用户的训练样本对稀疏自编码器进行训练;
所述步骤5进一步为:
步骤5.1:通过对稀疏自编码器模型的训练,生成两个不同的潜在因子向量,用户潜在因子向量和项目潜在因子向量;
步骤5.2:利用生成的两个潜在因子向量的内积去拟合用户-项目关联度矩阵R中存在的值,直到值达到最优解;否则返回步骤4;
步骤5.3:根据步骤2所得到的聚类值,从同属一类的开源项目中进行top-N推荐。
2.如权利要求1所述的基于稀疏自编码器的Github开源项目推荐方法,其特征在于,所述步骤2进一步为:
步骤2.1:利用开源项目的描述信息,使用TF-IDF将文本特征的重要程度量化,提取重要程度高的、信息量大的特征;
步骤2.2:利用word2vec将提取出来的特征表示成词向量的形式;
步骤2.3:计算余弦相似度,通过K-means算法对文本向量进行聚类。
CN201710940238.6A 2017-10-11 2017-10-11 一种基于稀疏自编码器的Github开源项目推荐方法 Active CN107808278B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710940238.6A CN107808278B (zh) 2017-10-11 2017-10-11 一种基于稀疏自编码器的Github开源项目推荐方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710940238.6A CN107808278B (zh) 2017-10-11 2017-10-11 一种基于稀疏自编码器的Github开源项目推荐方法

Publications (2)

Publication Number Publication Date
CN107808278A CN107808278A (zh) 2018-03-16
CN107808278B true CN107808278B (zh) 2021-09-24

Family

ID=61592618

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710940238.6A Active CN107808278B (zh) 2017-10-11 2017-10-11 一种基于稀疏自编码器的Github开源项目推荐方法

Country Status (1)

Country Link
CN (1) CN107808278B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108665311B (zh) * 2018-05-08 2022-02-25 湖南大学 一种基于深度神经网络的电商用户时变特征相似性计算推荐方法
US11200591B2 (en) * 2018-05-30 2021-12-14 Paypal, Inc. Electronic content based on neural networks
US11443231B2 (en) 2018-10-19 2022-09-13 Red Hat, Inc. Automated software selection using a vector-trained deep learning model
CN109658996B (zh) * 2018-11-26 2020-08-18 浙江大学山东工业技术研究院 一种基于边信息的体检数据补全方法、装置及应用
CN109918127B (zh) * 2019-03-07 2022-02-11 扬州大学 一种基于代码修改模式差异的缺陷纠错方法
CN109992674B (zh) * 2019-04-12 2023-04-07 南京工业大学 一种融合自动编码器和知识图谱语义信息的推荐方法
CN111950015B (zh) * 2019-05-14 2024-02-20 北京腾云天下科技有限公司 一种数据开放输出方法、装置和计算设备
CN110795134B (zh) * 2019-10-30 2021-10-15 中南大学 基于开源软件包依赖特征的标签推荐方法、装置及系统
CN111222847B (zh) * 2019-12-29 2023-11-24 东南大学 基于深度学习与非监督聚类的开源社区开发者推荐方法
CN111310029B (zh) * 2020-01-20 2022-11-01 哈尔滨理工大学 一种基于用户商品画像和潜在因子特征提取的混合推荐方法
CN111339435B (zh) * 2020-02-10 2022-09-23 南京邮电大学 一种基于潜在因子的矩阵分解补全混合推荐方法
CN112114795B (zh) * 2020-09-18 2022-02-11 北京航空航天大学 开源社区中辅助工具停用的预测方法及装置
CN114693482B (zh) * 2022-04-14 2024-04-16 湖南智擎科技有限公司 在线编程实验与开源项目贡献转化方法和装置
CN115858942B (zh) * 2023-02-27 2023-05-12 西安电子科技大学 面向用户输入的序列化推荐方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101685458A (zh) * 2008-09-27 2010-03-31 华为技术有限公司 一种基于协同过滤的推荐方法和系统
CN105590088A (zh) * 2015-09-17 2016-05-18 重庆大学 一种基于稀疏自编码和稀疏表示进行交通标志识别的方法
CN105913323A (zh) * 2016-05-06 2016-08-31 浙江大学 一种GitHub开源社区的PullRequest评审者推荐方法
CN106201465A (zh) * 2016-06-23 2016-12-07 扬州大学 面向开源社区的软件项目个性化推荐方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101685458A (zh) * 2008-09-27 2010-03-31 华为技术有限公司 一种基于协同过滤的推荐方法和系统
CN105590088A (zh) * 2015-09-17 2016-05-18 重庆大学 一种基于稀疏自编码和稀疏表示进行交通标志识别的方法
CN105913323A (zh) * 2016-05-06 2016-08-31 浙江大学 一种GitHub开源社区的PullRequest评审者推荐方法
CN106201465A (zh) * 2016-06-23 2016-12-07 扬州大学 面向开源社区的软件项目个性化推荐方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"基于分类的推荐系统优化方法研究";朱洪青;《中国优秀硕士学位论文全文数据库 信息科技辑》;20161215;第I138-382页 *
"基于多维特征的开源项目个性化推荐方法";杨程等;《软件学报》;20170220;第13571372页 *
"稀疏自动编码器在文本分类中的应用研究";秦胜君等;《科学技术与工程》;20131108;第9422-9426页 *

Also Published As

Publication number Publication date
CN107808278A (zh) 2018-03-16

Similar Documents

Publication Publication Date Title
CN107808278B (zh) 一种基于稀疏自编码器的Github开源项目推荐方法
CN110717098B (zh) 基于元路径的上下文感知用户建模方法、序列推荐方法
Jiang et al. A multi-objective PSO approach of mining association rules for affective design based on online customer reviews
CN111242310B (zh) 特征有效性评估方法、装置、电子设备及存储介质
Gu et al. Learning global term weights for content-based recommender systems
TW201822098A (zh) 用於預測商品的市場需求的計算機裝置與方法
CN105893609A (zh) 一种基于加权混合的移动app推荐方法
Kang et al. Neural and attentional factorization machine-based Web API recommendation for mashup development
Ziarani et al. Deep neural network approach for a serendipity-oriented recommendation system
CN113051468B (zh) 一种基于知识图谱和强化学习的电影推荐方法及系统
Hsieh et al. A keyword-aware recommender system using implicit feedback on Hadoop
CN115618101A (zh) 基于负反馈的流媒体内容推荐方法、装置及电子设备
CN114077661A (zh) 信息处理装置、信息处理方法和计算机可读介质
CN114817692A (zh) 确定推荐对象的方法、装置和设备及计算机存储介质
Tounsi et al. Credit scoring in the age of big data–A state-of-the-art
CN116757747A (zh) 基于行为序列和特征重要性的点击率预测方法
Saeed et al. A framework to predict early news popularity using deep temporal propagation patterns
Shen et al. User review analysis of dating apps based on text mining
Song et al. Effective automated feature derivation via reinforcement learning for microcredit default prediction
Liu Python Machine Learning By Example: Implement machine learning algorithms and techniques to build intelligent systems
Ojha et al. Data science and big data analytics
Vasumathi et al. A comparative study on traditional data mining and big data mining classification algorithms
Cheriyan et al. Web page prediction using Markov model and Bayesian statistics
Ribeiro et al. Black Box Model Explanations and the Human Interpretability Expectations--An Analysis in the Context of Homicide Prediction
Odendaal News, sentiment and the real economy

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