一种众包知识共享社区的资源推荐方法与流程

文档序号:24189481发布日期:2021-03-09 14:41阅读:180来源:国知局
一种众包知识共享社区的资源推荐方法与流程

1.本发明涉及知识图谱技术领域,特别的涉及一种众包知识共享社区的资源推荐方法。


背景技术:

2.众包是指将原本由特定群体(比如雇员或者承包商)完成的任务外包给不特定的社会大众群体完成,由大众群体的力量来完成原来属于少数专业人士的任务。众包是一种参与式的在线网络活动,个人、机构、非营利组织或公司通过公开的渠道,向一群具有不同知识、不同类型的个体,主动提出一项任务。众包可以看作是一种利用大众的知识解决问题的方式。为了接触到大众的知识,不少利用众包这一模式解决问题的组织给众包的参与者提供了进行知识交互与共享的知识共享社区。
3.对众包社区中的知识资源进行管理,可以方便用户对于知识资源的检索,从而提高知识共享效率以及众包的效率。现有的资源管理的方法主要有两种,专家分类法和大众分类法,专家分类法是由领域专家自上而下地建立资源分类体系,用户按照该资源分类体系对资源添加预设的标签;大众分类法是指允许用户对网站上的资源自由添加标签来对资源进行描述,即社会化标注,并与网站上的其他用户分享。相比于严谨的专家分类法,社会化标注过程中产生的标签集构成了一种缺乏结构性的分类体系。
4.由于众包的任务、尤其是复杂开放性任务,很难确定任务的执行过程,因此也难以确定众包过程中会进行共享的知识类别,无法很好地采用专家分类法预先设定标签,并且在众包过程中,会形成一些由参与众包的成员自己创建的知识分类术语。因此,大众分类法是一种更加适合于众包知识共享社区的知识管理方法。
5.随着知识共享社区中知识资源的累积,如何帮助参与众包的人员找到其所需的知识资源是知识共享社区面临的一个重要的挑战。基于一些推荐算法的推荐系统是解决这一问题的主要方案,推荐系统对用户尚未评价过的资源的评价情况进行预测,从而生成推荐列表。其中协同过滤算法是目前应用最为广泛的一种推荐算法。协同过滤算法依据用户对于资源的历史评价矩阵来确定相似用户或是相似资源,并依据相似用户或是相似资源的历史评价记录来实现推荐,并不考虑用户或是资源自身的特性。但是,随着资源数量的增加,用户评价过的资源往往占全部资源的比重较小、尤其是新用户,因此协同过滤算法常常面临用户数据稀疏以及冷启动问题。


技术实现要素:

6.针对上述现有技术的不足,本发明所要解决的技术问题是:如何提供一种能够减少预测误差,提高推荐效率的众包知识共享社区的资源推荐方法。
7.为了解决上述技术问题,本发明采用了如下的技术方案:
8.一种众包知识共享社区的资源推荐方法,其特征在于,推荐前,先获取用户对资源的评分,包括如下步骤:
9.s1、先获取众包知识共享社区的用户对目标资源的社会化标注标签,建立基于共现关系的标签相似度矩阵,根据标签的共现关系建立结构化的标签树;
10.s2、在确定标签树的基础上,根据标签之间基于共现的共现语义相似度以及基于标签树的标签树语义相似度确定目标资源之间的资源语义相似度;
11.s3、用目标资源之间的资源语义相似度对用户的评分矩阵进行填充,根据填充后的用户评分矩阵找寻用户的邻近用户,通过邻近用户对资源的评分预测用户对资源的评分。
12.进一步的,所述步骤s1中,采用如下步骤建立结构化的标签树:
13.s11、对社会化标注标签进行数据预处理:包括对无效标签的清理、相似标签的整合以及对低频标签和非法标签进行过滤,得到构建标签树的标签集合;
14.s12、建立维度为n
×
n的标签共现矩阵o,n为标签集合内的标签个数;引入ochiia系数将标签共现矩阵o转换成反映标签间实质性共现关系的标签相似度矩阵s1nxn,
[0015][0016]
其中s1(a,b)表示标签a和标签b的基于共现的共现语义相似度,o
a,b
代表标签a和标签b的共现频次,n
a
和n
b
表示标签a和标签b的使用频次;
[0017]
s13、采用如下步骤构建标签树:
[0018]
s13a、将标签集合中标注资源数量最多的标签作为根节点;
[0019]
s13b、计算其他标签与当前根节点的共现语义相似度,并将共现语义相似度大于设定阈值且标注资源数量少于当前根节点的标签作为候选子标签集,以候选子标签集中与当前根节点的共现语义相似度最大的标签作为当前根节点的子节点;
[0020]
s13c、将上一步确定的子节点作为当前根节点,重复步骤s13b,直到当前根节点下无子节点。
[0021]
作为优化,所述步骤s13中,还包括如下步骤,s13d、将标签集合中还未加入标签树的所有标签中标注资源数量最多的标签作为对象,计算标签树中各标签与该对象的共现语义相似度,并将共现语义相似度大于设定阈值且标注资源数量大于该对象的标签作为候选父标签集,以候选父标签集中与该对象的共现语义相似度最大的标签作为该对象的父节点,并以该对象为当前根节点,重复步骤s13b,直到当前根节点下无子节点。
[0022]
作为优化,所述步骤s13中,还包括如下步骤,s13e、所述步骤s13d中,若该对象在标签树中无父节点,则以该对象为根节点,重复步骤s13b~s13d构建标签树;建立总根节点,并将所有标签树归入该总根节点下,完成标签树的构建。
[0023]
进一步的,所述步骤s2中,采用如下步骤确定资源之间的资源语义相似度:
[0024]
s21、确定各标签基于标签树的标签树语义相似度:
[0025][0026]
式中,s2(a,b)表示标签a和标签b基于标签树结构的标签树语义相似度,其中c(a)∩c(b)表示标签a和标签b相对标签树的语义重合度,为两个标签从标签树最顶部的根节点出发所共同经过节点在所有经过节点中所占比重;dis(a,b)表示标签a和标签b之间的语义
距离,为标签树中两个标签之间最短路径的有向边的数目;h
a
和h
b
分别为标签a和标签b在标签树上所处的层次深度,λ为调节系数;
[0027]
s22、将标签树语义相似度与共现语义相似度结合,得到综合语义相似度:
[0028]
s(a,b)=α*s1(a,b)+(1-α)*s2(a,b)
[0029]
其中s(a,b)代表标签a和标签b之间的综合语义相似度,s1(a,b)代表标签a和标签b之间基于共现的共现语义相似度,s2(a,b)代表标签a和标签b之间基于标签树结构的标签树语义相似度,α为调节系数;
[0030]
s23、资源分类:将各资源的所有标签中属于标签树且标注次数大于设定阈值的标签组成该资源的分类标签集,将分类标签集内的各标签之间仅处于子节点的标签作为该资源的类;
[0031]
s24、属性语义相似度计算:资源分类后,按照资源的各个属性分别计算资源之间各个属性的属性语义相似度:
[0032][0033]
其中r(e,f)代表资源e和资源f在该属性上的语义相似度,e代表资源e所属的类的集合,f代表资源f所属的类的集合,length(e)表示资源e所属类的集合的长度,length(f)表示资源f所属类的集合的长度;
[0034]
s25、根据各各属性的权重确定资源语义相似度:
[0035]
r(e,f)=w1*r1(e,f)+w2*r2(e,f)+

+w
n
*r
n
(e,f)
[0036]
其中,r(e,f)表示资源e和资源f之间的资源语义相似度,w1、w2、

、w
n
代表各个属性的权重,其中w1+w2+

+w
n
=1。
[0037]
进一步的,所述步骤s3中,还包括如下步骤:
[0038]
s31、确定相似资源:建立用户-资源评价矩阵g,对于资源e和资源f,若二者的资源语义相似度大于设定阈值,则将资源e和资源f确定为相似资源;
[0039]
s32、对于用户尚未评价的资源e,依据用户对于相似资源f的评价情况进行预测,
[0040][0041]
其中e(c,e)代表用户c对于未评价资源e的语义预测评分,c代表用户c评价过的资源集合,e1代表资源e的相似资源集合,g(c,f)代表用户c对于资源f的评分,r(e,f)代表资源e和资源f的资源语义相似度;
[0042]
s33、将预测的用户评分填充进用户-资源评价矩阵g后,计算用户之间的相似度:
[0043][0044]
其中r
c
表示用户c的评价向量,r
d
表示用户d的评价向量,表示用户c的平均评价,表示用户d的平均评价;
[0045]
将与用户相似度最高的k个用户作为用户的最邻近用户集k,通过邻近用户对资源的评分预测用户对资源的评分:
[0046][0047]
其中,p(c,e)代表用户c对于资源e的预测评分,代表用户c、用户d的平均评分,k代表用户c的邻近用户,sim(c,d)代表用户c和用户d的相似度,g(d,e)代表用户d对资源e的评分。
[0048]
综上所述,本发明通过将社会化标注系统的语义挖掘与协同过滤算法相相融合,具有能够减少预测误差,提高推荐效率等优点。
附图说明
[0049]
图1为本发明推荐方法的算法框架图。
[0050]
图2为采用本发明方法构建的标签树示意图。
[0051]
图3为最邻近值k取不同值时各算法mae大小关系图。
[0052]
图4为k=20时的各算法对于所有用户和冷启动用户的mae的比较图。
具体实施方式
[0053]
下面结合实施例对本发明作进一步的详细说明。
[0054]
本发明的推荐方法依据标签共现矩阵以及标注资源的数量建立标签树,结合标签共现矩阵以及标签树结构综合确定标签之间的综合语义相似度,并依据用户对资源添加标签的情况得到资源间的语义相似度。利用资源的语义相似度对稀疏的用户评价矩阵进行填充,然后计算用户之间的相似度,找到用户的邻近用户,从而实现资源的推荐。推荐算法框架如图1所示。
[0055]
1、标签树的构建
[0056]
本实施例依据标签间的相似度以及标签标注的资源数量来实现标签树的构建。标签的相似度计算方法有很多,其中基于标签共现的标签相似度计算是使用的非常多的一种。标签共现是指两个不同标签对于一个相同的资源进行标注,而这种共现关系表明两个标签之间存着某种程度上的语义关系。因此对于标签相似度大于一定阈值的一个标签对,则认为其存在语义关系。在知识分类体系中,父概念比子概念的内涵更抽象,外延更广泛,在标签间树的构建过程中,即认为有语义关系的标签对之间,父标签会比子标签标注更多的资源。基于以上假设,将标签树的构建分为以下几个步骤:先建立基于共现的标签相似度矩阵、建立标签树。
[0057]
1.1、数据预处理及标签筛选
[0058]
由于社会化标注大多是在无监督的情况下进行的,具有不规范性。因此需要对标注数据进行预处理。本实施例在对标签进行数据预处理时,主要包括标签清理、标签整合、低频标签过滤、非法标签过滤。在标签预处理后,筛选出用于构建标签树的标签集合。
[0059]
1.2、建立基于共现的标签相似度矩阵
[0060]
对于筛选出的标签集合,建立维度为n
×
n的标签共现矩阵o,n为筛选出的用于构建标签树的标签的个数。
[0061]
由于两两标签的使用频次会对他们的共现频次产生影响,难以反应两个标签之间
真正的语义关系,为了消除标签的热门程度带来的影响,引入ochiia系数将标签共现矩阵o转换成标签相似度矩阵s1
nxn
,从而反映出标签间的实质性共现关系,计算公式如下:
[0062][0063]
其中s1(a,b)表示标签a和标签b的基于共现的共现语义相似度,o
a,b
代表标签a和标签b的共现频次,n
a
和n
b
表示标签a和标签b的使用频次;
[0064]
1.3、建立标签树
[0065]
一个物体颜色、形状、气味等多属性,在社会化标注过程中,用户也会从不同的属性对资源进行描述。在对标签按其所形容的属性进行分类后,对于每一类标签构成的标签集,按照如下方法构建标签树。
[0066]
1)将标签集中标注资源最多的标签作为根节点。
[0067]
2)在标签集剩余标签中选出与根节点相似度大于阈值且标注资源数少于根节点的标签作为候选标签集,以候选标签集中与根节点相似度最大的标签作为根节点的子节点。
[0068]
3)将子节点作为当前根节点,按第(2)步的方法选出当前跟节点的子节点,重复这个步骤直到没有标签可以作为当前根节点的子节点。
[0069]
4)以还没有加入标签树的标签中标注资源最多的标签为对象,在标签树中选出与该对象相似度大于阈值且标注资源数大于该对象的标签作为候选标签集,以候选标签集中与节点相似度最大的标签作为该对象的父节点,并转到第(2)步;若标签树中没有可以作为该对象父节点的标签,则以该对象为根节点建立新的标签树,并转到第(2)步。
[0070]
5)创建一个总的根节点,将所有标签树纳入该根节点下,组成一个总的标签树。
[0071]
1.4、sci-fi类电影标签树的创建
[0072]
本实施例中,采用movielens中的电影-标签数据集中对于电影类目为sci-fi的电影的社会化标注信息建立标签树,数据集包含1352个用户给755部电影添加的12337条标签。采用上述方法处理后筛选出26个描述电影的标签,包括21对于电影内容的描述,如{aliens}、{zombies}等,以及5对于电影类型的描述,如{action}、{comedy}等,建立的标签树如图2所示。
[0073]
2、资源语义相似度的计算
[0074]
传统基于用户的协同过滤算法通过用户的历史记录来找寻相似用户,其用户相似度计算公式如下:
[0075][0076]
其中r
c
表示用户c的评价向量,r
d
表示用户d的评价向量,表示用户c的平均评价,表示用户d的平均评价。
[0077]
随着资源数量的增加,用户评价过的资源往往只占资源总量的一小部分,尤其是新用户,因此用户矩阵往往面临数据稀疏的问题。
[0078]
本实施例中,通过引入资源间的语义关系,可以对用户未评价过的资源的评价情况进行预测。如图2中若一个用户对{superhero}类型的电影给了较高的评价,那他有很大
的概率会对同属{superhero}类型的电影甚至{marvel}类型的电影给与较高的评价。将资源语义相似度的计算分为以下几个步骤:标签语义相似度的计算、资源分类、资源相似度计算。
[0079]
2.1、标签语义相似度计算
[0080]
在将标签构建成标签树后,标签之间具有了一定的语义结构,可以将标签树看作一个轻型的本体。针对利用本体结构来计算概念间的语义相似度这一问题,已经有了大量的研究,本实施例通过语义相似度计算公式来计算标签树中各标签的语义相似度,计算公式如下:
[0081][0082]
式中,s2(a,b)表示标签a和标签b基于标签树结构的标签树语义相似度,其中c(a)∩c(b)表示标签a和标签b相对标签树的语义重合度,为两个标签从标签树最顶部的根节点出发所共同经过节点在所有经过节点中所占比重;dis(a,b)表示标签a和标签b之间的语义距离,为标签树中两个标签之间最短路径的有向边的数目;h
a
和h
b
分别为标签a和标签b在标签树上所处的层次深度,λ为调节系数;
[0083]
将得到的基于标签树结构的标签树语义相似度与基于共现的共现语义相似度相结合,可以得到标签间的综合语义相似度,计算公式如下:
[0084]
s(a,b)=α*s1(a,b)+(1-α)*s2(a,b)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)
[0085]
其中s(a,b)代表标签a和标签b之间的综合语义相似度,s1(a,b)代表标签a和标签b之间基于共现的共现语义相似度,s2(a,b)代表标签a和标签b之间基于标签树结构的标签树语义相似度,α为调节系数;
[0086]
2.2、资源分类
[0087]
由于资源的标注情况反应了资源的属性,因此可以依据标注于资源的标签来对资源进行分类,分类步骤如下:
[0088]
筛选出标注于资源的标签中属于标签树且标注次数大于阈值的标签,组成该资源的分类标签集。
[0089]
若筛选出的标签在标签树中为父子节点,则选择在标签树中层级最深的标签作为该资源的类,如一个资源筛选出的分类标签集的标签为图2标签树中的{action}、{space}、{space travel},则该资源属于标签树中的{action}节点及{space travel}节点。
[0090]
2.3、资源相似度计算
[0091]
资源分类后,按照资源的各个属性分别计算资源间各个属性的资源间的语义相似度,如图2中1个电影资源有content和genre两个属性,计算公式如下:
[0092][0093]
其中r(e,f)代表资源e和资源f在该属性上的语义相似度,e代表资源e所属的类的集合,f代表资源f所属的类的集合,length(e)表示资源e所属类的集合的长度,length(f)表示资源f所属类的集合的长度。
[0094]
计算出资源间各个属性的语义相似度后再结合各个属性的权重确定资源的语义
相似度,计算公式如下:
[0095]
r(e,f)=w1*r1(e,f)+w2*r2(e,f)+

+w
n
*r
n
(e,f)
[0096]
其中,r(e,f)表示资源e和资源f之间的资源语义相似度,w1、w2、

、w
n
代表各个属性的权重,其中w1+w2+

+w
n
=1。
[0097]
3、基于用户的协同过滤算法
[0098]
首先建立用户-资源评价矩阵g,若资源间的相似度大于一定的阈值,则认为资源e和资源f为相似资源,对于用户尚未评价过的资源,可以依据用户对于其相似资源的评价情况进行预测,计算公式如下:
[0099][0100]
其中e(c,e)代表用户c对于未评价资源e的语义预测评分,c代表用户c评价过的资源集合,e1代表资源e的相似资源集合,g(c,f)代表用户c对于资源f的评分,r(e,f)代表资源e和资源f的资源语义相似度。
[0101]
将预测的用户评分填充进用户-资源评价矩阵g后,通过公式(2)计算用户之间的相似度,将与用户相似度最高的k个用户作为用户的最邻近用户集k。
[0102]
通过邻近用户对资源的评分预测用户对资源的评分,计算公式如下:
[0103][0104]
其中,p(c,e)代表用户c对于资源e的预测评分,代表用户c、用户d的平均评分,k代表用户c的邻近用户,sim(c,d)代表用户c和用户d的相似度,g(d,e)代表用户d对资源e的评分。
[0105]
本实施例采用movielens的电影-评分数据集中用户对于电影类目为sci-fi的电影的评分,由于要通过电影资源的社会化标注信息来对电影资源进行分类,因此筛选出213个被标注次数大于10次的电影资源,并筛选出进行评分次数大于10次的3047个用户。最终实验数据集中包含3047个用户对于213个电影资源的99364条电影评分,评分分数为1~5分。将其中80%的数据用作训练集,20%的数据用作测试集,结合本发明方法建立的sci-fi电影标签树。
[0106]
本实施例采用平均绝对偏差(mean absolute error,mae)作为准确性度量标准。mae通过计算预测的用户评分与实际评分之间的偏差来度量预测的准确性,mae越小,推荐结果的准确度越高。mae计算公式如下:
[0107][0108]
其中n为预测的资源评分集合,p
i
为该资源的预测评分,r
i
为该资源的实际评分,lenth(n)为集合n的长度。
[0109]
为了验证本发明方法的效果,选取传统的基于用户的协同过滤算法(user cf)和仅通过标签语义结构确定标签语义相似度的算法与本文算法进行比较。
[0110]
图3是当最邻近值k取不同值时各算法mae的大小,任意最邻近数k的取值下,本文
的算法的mae值优于其他两个算法2.89%和26.85%。说明本文同时考虑基于标签结构相似度以及共现相似度的算法要优于仅考虑结构相似度的算法,并且都优于传统的user cf算法。随着k值的增加,算法之间的mae值的差距逐渐缩小,说明随着最邻近值k的增加,资源间的语义关系对于算法的改善效果在减少,但k值的增加会增加算法运行所需的计算时间。
[0111]
图4为当最邻近值k=20时,将评价次数少于30次的用户作为冷启动用户,各算法对于所有用户和冷启动用户的mae的比较。传统user cf算法在面对冷启动用户时,其mae值与面对所有用户时的差值较大,差值为10.6%。而本文算法和仅通过标签语义结构确定标签语义相似度的算法由于考虑了资源间的语义关系,在面对冷启动用户和所有用户时的mae的差值不大,仅为0.48%以及1.11%,说明通过引入资源的语义关系这一额外信息,能够有效解决协同过滤算法面临的冷启动问题。
[0112]
以上所述仅为本发明的较佳实施例而已,并不以本发明为限制,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1