本发明涉及用于生成对用户的推荐的方法和设备,更具体地,涉及基于关联开放数据(linkedopendata,lod)生成推荐的方法和设备。
背景技术:
高速发展的因特网为人们提供了极其丰富的信息资源,但是用户从海量信息中查找出自己感兴趣的信息却变得越来越难。如何从大量信息中挖掘出用户感兴趣的信息并推荐给用户,从而指导用户进行决策,成为了一个热门的研究课题。已知的推荐方法例如包括基于内容的推荐、基于协同过滤的推荐、基于网络结构的推荐和混合推荐等方法。
lod云是一个全球分布的数据网络,用户可以使用该网络中已有的数据,也可以发布自己拥有的数据,并被其他用户发现和重用。关联数据(linkeddata)提供了更丰富的语义信息和更加结构化的数据,使得网络中的信息对于机器而言更加易于理解。因此,基于lod的推荐系统有很大的应用价值。
技术实现要素:
本发明提出了一种基于lod的推荐方法。根据本发明的一个方面,提供了一种生成对用户的推荐的方法,包括:通过将多个项目分别链接到lod网络中的多个实体来形成图,所述图包括作为节点的所述多个项目、所述多个实体以及多个用户;计算所述图中的路径集合,所述路径集合包括所述图中任意两个节点之间的路径;以及针对所述多个用户中的特定用户和所述多个项目中的特定项目执行以下处理:计算针对所述特定用户和所述特定项目的第一特征向量,所述第一特征向量的每个分量与所述路径集合中的一个路径相对应,并且所述第一特征向量的每个分量表示:在相对应的路径中连接所述特定用户和所述特定项目的子路径的长度与在所述路径集合的所有路径中连接所述特定用户和所述特定项目的子路径的长度之和的比率;基于所述第一特征向量和相关函数计算所述特定用户和所述特定项目之间的相关度;基于所述相关度来确定是否向所述特定用户推荐所述特定项目;在确定向所述特定用户推荐所述特定项目的情况下,以所述特定用户能够感知的方式推荐所述特定项目。
根据本发明的另一个方面,提供了一种用于生成对用户的推荐的设备,所述设备包括:存储器;以及处理器,所述处理器被配置为执行如上所述的用于生成对用户的推荐的方法。
根据本发明的又一个方面,提供了一种存储有程序的记录介质,所述程序在被计算机执行时,使得计算机实现如上所述的用于生成对用户的推荐的方法。
附图说明
图1是示出了将项目链接到lod网络以形成图g的示意图。
图2是根据本发明的生成推荐的方法的总体流程图。
图3示出了图g中的一条路径的具体示例。
图4示出了图2中的步骤s230的处理。
图5示出了图2中的步骤s240的处理。
图6示出了图2中的步骤s250的处理的一个示例。
图7示出了图2中的步骤s250的处理的另一个示例。
图8是根据本发明的训练相关函数的方法的流程图。
图9示出了实现本发明的计算机硬件的示例性配置框图。
具体实施方式
图1示意性地示出了通过将数据中的项目链接到lod网络而形成图g。
如图1所示,定义图g=(v,r),其中v表示图g中的顶点的集合,r表示图g中的边的集合。顶点进一步包括:用户的集合u,其包括图中所示的用户u1-u4;项目的集合i,其包括图中所示的项目i1-i4;以及lod网络中的实体的集合e,其包括图中所示的实体e1-e9。边进一步包括:连接用户和项目的边s的集合,其中边s表示彼此连接的用户和项目相关;以及连接两个实体的边p的集合,其中边p表示lod中的一种属性。
项目i1-i4分别链接到lod网络中的实体e1-e4,彼此链接的项目和实体之间具有等价关系,在图g中可被视为一个顶点(如图中虚线框所示)。
需要说明的是,图1仅示意性地示出了用户、项目以及实体,它们的数量以及它们之间的关系并不限于图中所示。
此外,在图g中可以定义任意两个顶点之间的路径。路径是连接两个顶点的一条边或多条边的序列,路径的长度是路径中所包括的边的数目,路径的长度大于或等于1且小于预定值。图g中包括多个顶点,任意两个顶点之间的路径所构成的集合称为路径集合。
以下将结合图2-图7来说明根据本发明的生成推荐的方法。图2示出了该方法的总体流程图,图3示出了图g中的一条路径的具体示例,图4示出了图2中的步骤s230的具体处理,图5示出了图2中的步骤s240的具体处理,图6和图7分别示出了图2中的步骤s250的具体处理。
如图2所示,在步骤s210将多个项目i1-i4分别链接到lod网络中的多个实体e1-e4,从而形成图g。然后在步骤s220确定图g中的所有路径的集合,该路径集合包括图g中任意两个顶点之间的路径。
然后,在图g中选择一对没有直接相连的用户和项目,例如用户u1和项目i3。虽然用户u1和项目i3之间没有边s将二者直接连接,但二者可能通过一系列的边构成的路径而连接,因此不能从图g中直接看出用户u1和项目i3之间的相关度。因此,将通过步骤s230和s240来计算用户u1和项目i3之间的相关度。
在步骤s230中计算针对用户u1和项目i3的第一特征向量,该第一特征向量表示用户u1和项目i3之间的关联性。以下将结合图4来具体描述步骤s230的处理。
如图4所示,在步骤s410,在图g中的路径集合中任意选择一条路径j。假设所选择的路径j如图3中的粗实线所示,路径j的两个端点分别是用户u2和项目i2。如图3所示,路径j包括下述边的序列:s1,s2,p1,p2,p3,p4,p5,s3。
然后在步骤s420,在路径j中确定连接用户u1和项目i3的子路径sub(j)以及子路径sub(j)的长度。由图3可见,子路径sub(j)包括下述边的序列:s2,p1,p2,p3,p4,p5,并且子路径sub(j)的长度为6。
以上述方法,针对路径集合中的每一条路径,确定在该路径中连接用户u1和项目i3的子路径的长度。如果在该路径中不存在连接用户u1和项目i3的子路径,则确定子路径的长度为0。然后,计算针对路径集合中的所有路径而确定的子路径的长度之和,如步骤s430所示。
然后,在步骤s440通过以下等式(1)来计算针对用户u1和项目i3的第一特征向量中的与路径j相对应的分量y(j):
其中,|sub()|表示子路径sub()的长度,n表示路径集合中的所有路径的数目。
由等式(1)可以看出,第一特征向量中的与路径j相对应的分量y(j)是在路径j中连接用户u1和项目i3的子路径sub(j)的长度与在路径集合的所有路径中连接用户u1和项目i3的子路径的长度之和的比率。
然后,在步骤s450针对图g中的其它路径,通过与如上所述针对路径j的处理相同的处理来计算针对用户u1和项目i3的第一特征向量的其它分量,每一个分量对应于一条路径。从而,可以得到针对用户u1和项目i3的第一特征向量y。
返回参见图2,基于在步骤s230中获得的第一特征向量y,通过使用相关函数来计算用户u1和项目i3之间的相关度,如步骤s240所示。以下将结合图5来详细描述步骤s240的处理。
如图5所示,首先在步骤s510,针对项目i3抽取基于内容的特征,以形成第二特征向量x。基于内容的特征可以包括项目i3的类型、分类、摘要、属性中的一个或多个,其中每一个对应于第二特征向量x的一个分量。
例如,项目的类型可以是书籍、歌曲或者电影等,项目的分类可以是“2018年上映的华语电影”等。此外,例如,可以从摘要中抽取大于或等于两个字的词语,并且去除出现频率低于2%或高于70%的词语。此外,可以根据项目的类型来选择属性,例如,如果项目的类型是书籍,则选择书的作者作为属性,如果项目的类型是电影,则选择导演、演员等作为属性。
然后在步骤s520,通过将项目i3的第二特征向量x和在步骤s230中获得的针对用户u1和项目i3的第一特征向量y输入相关函数f,来计算用户u1和项目i3之间的相关度ru1i3,如以下等式(2)所示:
ru1i3=f(x,y)--(2)
返回参见图2,在步骤s250,可以基于所计算的相关度ru1i3来确定是否向用户u1推荐项目i3。图6示出了步骤s250的处理的一个示例。
如图6所示,在步骤s610,将所计算的相关度ru1i3与预先设定的阈值进行比较。如果相关度ru1i3大于或等于该阈值,则处理进行至步骤s620,将项目i3推荐给用户u1。如果相关度ru1i3小于阈值,则处理进行至步骤s630,不将项目i3推荐给用户u1。
图7示出了步骤s250的处理的另一个示例。如图7所示,在步骤s710,通过与步骤s230和s240相同的处理分别计算用户u1与其它各个项目i1,i2,i4之间的相关度。然后在步骤s720,将所获得的相关度(包括与项目i3之间的相关度)进行降序排列。然后在步骤s730,选择排在最前的k个相关度所对应的项目作为要向用户u1推荐的项目。特别地,图7的示例中的第k个相关度可以作为图6的示例中的预设阈值。
然后返回参见图2,在步骤s250中确定要向用户u1推荐项目i3的情况下,以用户u1能够感知的方式向用户u1推荐项目i3。例如,可以通过视觉、听觉、触觉等方式来推荐项目i3,例如通过闪烁、声音、振动等。
以下将结合图8来说明在图2的步骤s240中使用的相关函数f的生成方法。
总体来说,可以利用已知用户和已知项目,通过训练来生成相关函数f,其中,已知用户和已知项目之间的相关度是已知的。
参见图8,首先,在步骤s810,确定已知用户和已知项目之间的已知相关度。在这里假设图1中的用户u2和项目i1-i4是已知的,并且它们之间的相关度也是已知的。边s将用户u2和项目i1连接,因此它们彼此相关,它们之间的相关度ru2i1=1。用户u2和项目i2不相连,因此它们之间的相关度ru2i2=0。由此,可以得到以下的已知相关度:ru2i1=1,ru2i2=0,ru2i3=1,ru2i4=0。
然后,针对用户u2和项目i1执行步骤s820和s830的处理,以计算用户u2和项目i1之间的相关度r’u2i1。步骤s820和s830的处理与图2所示的步骤s230和s240的处理相同,故不再赘述。特别地,在执行步骤s830时使用相关函数f的初始设置。
然后在步骤s840,以使得所计算的相关度r’u2i1接近于已知相关度ru2i1(=1)的方式来训练相关函数f。
以相同的方式,可以利用用户u2和项目i2来训练相关函数f,以使得通过执行步骤s820和s830而计算的用户u2和项目i2之间的相关度r’u2i2接近于已知相关度ru2i2(=0)。类似地,还可以利用用户u2和项目i3,i4来训练相关函数f。
此外,如果图1中的用户u1,u3,u4也是已知用户,则还可以利用它们与项目i1-i4之间的已知相关度来训练相关函数f,使得通过相关函数f计算的相关度接近于已知相关度。
在完成对相关函数f的训练之后,可以在图2的步骤s240中使用经训练的相关函数f,以计算未知的用户和项目之间的相关度,并在步骤s250中根据所计算的相关度来确定是否向该用户推荐该项目。
以上已经结合具体实施例描述了本发明的实现方式。在上述实施例中描述的方法可以由软件、硬件或者软件和硬件的组合来实现。包括在软件中的程序可以事先存储在设备的内部或外部所设置的存储介质中。作为一个示例,在执行期间,这些程序被写入随机存取存储器(ram)并且由处理器(例如cpu)来执行,从而实现在本文中描述的各种处理。
图9示出了根据程序执行本发明的方法的计算机硬件的示例配置框图,该计算机硬件是根据本发明的用于生成对用户的推荐的设备的一个示例。
如图9所示,在计算机900中,中央处理单元(cpu)901、只读存储器(rom)902以及随机存取存储器(ram)903通过总线904彼此连接。
输入/输出接口905进一步与总线904连接。输入/输出接口905连接有以下组件:以键盘、鼠标、麦克风等形成的输入单元906;以显示器、扬声器等形成的输出单元907;以硬盘、非易失性存储器等形成的存储单元908;以网络接口卡(诸如局域网(lan)卡、调制解调器等)形成的通信单元909;以及驱动移动介质911的驱动器910,该移动介质911例如是磁盘、光盘、磁光盘或半导体存储器。
在具有上述结构的计算机中,cpu901将存储在存储单元908中的程序经由输入/输出接口905和总线904加载到ram903中,并且执行该程序,以便执行上文中描述的方法。
要由计算机(cpu901)执行的程序可以被记录在作为封装介质的移动介质911上,该封装介质以例如磁盘(包括软盘)、光盘(包括压缩光盘-只读存储器(cd-rom))、数字多功能光盘(dvd)等)、磁光盘、或半导体存储器来形成。此外,要由计算机(cpu901)执行的程序也可以经由诸如局域网、因特网、或数字卫星广播的有线或无线传输介质来提供。
当移动介质911安装在驱动器910中时,可以将程序经由输入/输出接口905安装在存储单元908中。另外,可以经由有线或无线传输介质由通信单元909来接收程序,并且将程序安装在存储单元908中。可替选地,可以将程序预先安装在rom902或存储单元908中。
由计算机执行的程序可以是根据本说明书中描述的顺序来执行处理的程序,或者可以是并行地执行处理或当需要时(诸如,当调用时)执行处理的程序。
本文中所描述的设备或单元仅是逻辑意义上的,并不严格对应于物理设备或实体。例如,本文所描述的每个单元的功能可能由多个物理实体来实现,或者,本文所描述的多个单元的功能可能由单个物理实体来实现。此外,在一个实施例中描述的特征、部件、元素、步骤等并不局限于该实施例,而是也可以应用于其它实施例,例如替代其它实施例中的特定特征、部件、元素、步骤等,或者与其相结合。
本发明的范围不限于在本文中描述的具体实施例。本领域普通技术人员应该理解的是,取决于设计要求和其他因素,在不偏离本发明的原理和精神的情况下,可以对本文中的实施例进行各种修改或变化。本发明的范围由所附权利要求及其等同方案来限定。
附记:
(1).一种生成对用户的推荐的方法,包括:
通过将多个项目分别链接到关联开放数据(lod)网络中的多个实体来形成图,所述图包括作为节点的所述多个项目、所述多个实体以及多个用户;
确定所述图中的路径集合,所述路径集合包括所述图中任意两个节点之间的路径;
针对所述多个用户中的特定用户和所述多个项目中的特定项目,
计算针对所述特定用户和所述特定项目的第一特征向量,所述第一特征向量的每个分量与所述路径集合中的一个路径相对应,并且所述第一特征向量的每个分量表示:在相对应的路径中连接所述特定用户和所述特定项目的子路径的长度与在所述路径集合的所有路径中连接所述特定用户和所述特定项目的子路径的长度之和的比率;
基于所述第一特征向量和相关函数计算所述特定用户和所述特定项目之间的相关度;
基于所述相关度来确定是否向所述特定用户推荐所述特定项目;
以及
在确定向所述特定用户推荐所述特定项目的情况下,以所述特定用户能够感知的方式推荐所述特定项目。
(2).根据(1)的方法,其中,所述任意两个节点之间的路径由一条线或顺序相连的多条线构成,并且所述任意两个节点之间的路径的长度由所述线的数量表示。
(3).根据(2)的方法,其中,所述任意两个节点之间的路径的长度大于1且小于预定值。
(4).根据(1)的方法,还包括:针对每个项目抽取基于内容的特征,以形成第二特征向量。
(5).根据(4)的方法,其中,所述基于内容的特征包括所述项目的类型、分类、摘要、属性中的一个或多个。
(6).根据(4)的方法,还包括:将针对所述特定用户和所述特定项目的第一特征向量和针对所述特定项目的第二特征向量输入所述相关函数,以计算所述特定用户和所述特定项目之间的相关度。
(7).根据(6)的方法,还包括:当所计算的相关度大于或等于阈值时,将所述特定项目推荐给所述特定用户;以及当所计算的相关度小于所述阈值时,不将所述特定项目推荐给所述特定用户。
(8).根据(7)的方法,还包括:计算所述特定用户和所述多个项目中的任一项目之间的相关度;以及将所得到的多个相关度降序排列,将处于特定位置的相关度设置为所述阈值。
(9).根据(1)的方法,还包括:利用已知用户和已知项目来生成所述相关函数,其中,所述已知用户和所述已知项目之间的相关度是已知的。
(10).根据(9)的方法,还包括:针对所述已知用户中的特定已知用户和所述已知项目中的特定已知项目确定所述第一特征向量和所述第二特征向量;以及基于所确定的第一特征向量和第二特征向量、以及所述特定已知用户和所述特定已知项目之间的已知相关度,通过训练来生成所述相关函数。
(11).一种用于生成对用户的推荐的设备,所述设备包括:存储器;以及处理器,所述处理器被配置为执行根据(1)-(10)的方法。
(12).一种存储有程序的记录介质,所述程序在被计算机执行时,使得计算机实现根据(1)-(10)的用于生成对用户的推荐的方法。
1.一种生成对用户的推荐的方法,包括:
通过将多个项目分别链接到关联开放数据(lod)网络中的多个实体来形成图,所述图包括作为节点的所述多个项目、所述多个实体以及多个用户;
确定所述图中的路径集合,所述路径集合包括所述图中任意两个节点之间的路径;
针对所述多个用户中的特定用户和所述多个项目中的特定项目,
计算针对所述特定用户和所述特定项目的第一特征向量,所述第一特征向量的每个分量与所述路径集合中的一个路径相对应,并且所述第一特征向量的每个分量表示:在相对应的路径中连接所述特定用户和所述特定项目的子路径的长度与在所述路径集合的所有路径中连接所述特定用户和所述特定项目的子路径的长度之和的比率;
基于所述第一特征向量和相关函数计算所述特定用户和所述特定项目之间的相关度;
基于所述相关度来确定是否向所述特定用户推荐所述特定项目;以及
在确定向所述特定用户推荐所述特定项目的情况下,以所述特定用户能够感知的方式推荐所述特定项目。
2.根据权利要求1所述的方法,其中,所述任意两个节点之间的路径由一条线或顺序相连的多条线构成,并且所述任意两个节点之间的路径的长度由所述线的数量表示。
3.根据权利要求2所述的方法,其中,所述任意两个节点之间的路径的长度大于或等于1且小于预定值。
4.根据权利要求1所述的方法,还包括:针对每个项目抽取基于内容的特征,以形成第二特征向量。
5.根据权利要求4所述的方法,其中,所述基于内容的特征包括所述项目的类型、分类、摘要、属性中的一个或多个。
6.根据权利要求4所述的方法,还包括:
将针对所述特定用户和所述特定项目的第一特征向量和针对所述特定项目的第二特征向量输入所述相关函数,以计算所述特定用户和所述特定项目之间的相关度。
7.根据权利要求6所述的方法,还包括:
当所计算的相关度大于或等于阈值时,将所述特定项目推荐给所述特定用户;以及
当所计算的相关度小于所述阈值时,不将所述特定项目推荐给所述特定用户。
8.根据权利要求7所述的方法,还包括:
计算所述特定用户和所述多个项目中的任一项目之间的相关度;以及
将所得到的多个相关度降序排列,将处于特定位置的相关度设置为所述阈值。
9.根据权利要求1所述的方法,还包括:利用已知用户和已知项目来生成所述相关函数,其中,所述已知用户和所述已知项目之间的相关度是已知的。
10.根据权利要求9所述的方法,还包括:
针对所述已知用户中的特定已知用户和所述已知项目中的特定已知项目确定所述第一特征向量和所述第二特征向量;以及
基于所确定的第一特征向量和第二特征向量、以及所述特定已知用户和所述特定已知项目之间的已知相关度,通过训练来生成所述相关函数。
技术总结