融合知识图谱语义信息的推荐方法

2020-11-17 06:29刘学军张伯君
计算机工程与设计 2020年11期
关键词:画像图谱语义

陈 涛,刘学军,张伯君

(1.南京工业大学 计算机科学与技术学院,江苏 南京 211816; 2.南京市锅炉压力容器检验研究院 业务与信息化部,江苏 南京 210019)

0 引 言

传统协同过滤算法根据用户的历史信息,寻找与其偏好相同的用户进行推荐。然而基于协同过滤的推荐算法通常受到用户交互的稀疏性和冷启动问题的影响。因此利用知识图谱中所蕴含的丰富的描述性数据可以非常有效地解决上述问题。近年来,知识图谱以关联开放数据(linked open data,LOD)的形式供大众免费获取使用,为知识感知的推荐系统在许多应用领域的发展铺平了道路。一些研究人员提出了利用知识图谱和关联开放数据作为边信息以此提高推荐系统的性能,其中大部分是将Dbpedia[1]作为知识库。最初,基于关联开放数据的推荐系统的提出是为了解决协同过滤算法中高度稀疏的用户评分矩阵,实验结果表明,基于关联开放数据的推荐系统相较于传统推荐算法确实提高了性能[2]。后来,人们进一步利用DBpedia构建知识图谱分别提出了一种精确的基于内容的推荐算法和多关联图的图推荐算法[3]。在一些交叉领域内,推荐系统的提出使得用户能够获取不同领域项目的推荐,例如电影、音乐、新闻、医疗[4-6]。作者提出了一种将知识图谱表示学习算法与协同过滤相结合,把原始数据转化为偏好序列进行参数学习,加强了协同过滤推荐算法的性能[7]。文献[8]利用知识图谱有助于解决受限制的内容分析以及冷启动问题:新的关联特征提升了项目表示,解决了数据稀疏性。

利用知识图谱中丰富的语义信息对于提升推荐系统的性能也非常有效,可以在不同的性能指标之间取得好的平衡,例如提升其多样性、准确性、新颖性。文献[9]是对DBpedia属性的进一步应用,可以生成有效的推荐系统的自然语言解释和语义相似性的定义,从而提供更加精确的推荐。

本文提出了一种结合知识图谱语义信息的用户画像构建方式,并且利用用户画像之间的相似性进行协同过滤推荐。

1 知识图谱语义信息

在过去的几年间,知识图谱的相关研究飞速地发展,这让大众可以免费使用知识图谱中丰富的数据信息。最有影响的知识库有DBpedia、Wikidata、Freebase等。

DBpedia中主要存在两类信息:语义信息和事实信息。在电影知识图谱中,事实信息是通过电影的不同属性进行区分的,如电影名称、导演名称、主演等。而语义信息又可以分为类别数据和本体数据。分类数据通过对dct:subject进行编码,表示从Wikipedia中解析的条目类别。如表1所示,是以电影Cinderella III:A Twist in Time为例,在DBpedia中的语义信息。其中表中Value列表示的是电影解析出条目类别,从这些条目类别中可以更加精准地了解对这部电影信息的描述,例如从中可以知道这部电影既是American_animated_films(美国动画电影),又是Animated_musical_films(音乐动画电影)等等,通过这些描述可以知道对这部电影喜欢的用户,可能对American_animated_films 和Animated_musical_films这些主题的电影都感兴趣,从而对用户的情感分析更加精细准确。

由于篇幅限制,表1只是节选电影Cinderella III:A Twist in Time中的一小部分语义信息,事实上经过数据抽取会发现:主题语义信息的数量远高于事实信息的数量,并且不同的电影通过语义信息可以得到更加详细的描述,从而对于用户画像的刻画可以更加精确。传统电影数据集只是简单地将电影分为喜剧片、恐惧片等,不能精确地分析用户。对于寻找电影之间共性的推荐任务,主题语义信息比电影的其它实体属性信息更有意义。因此,本文将自动编码器网络拓扑映射到与用户评价电影的相关主题信息。

表1 电影Cinderella III:A Twist in Time的主题语义信息

2 算法设计

本节以电影领域为例,提出了融合知识图谱主题语义信息的推荐模型,通过模型训练构建了更加完善的用户画像,在空间向量模型中计算用户相似度,最后形成Top-N推荐列表。

2.1 基于主题语义信息的自动编码器

在模型的建立过程中,将自动编码器的网络结构看作知识图谱中实体之间的连接,从而使神经网络中的隐藏层有了具体的语义解释。具体而言,每个神经元表示所采用的知识图谱中的一个实体,神经元之间的连接则是实体之间的关系。生成的自动编码器有3层:输入层、隐藏层和输出层,其中输入层和输出层表示电影评分,而中间的隐藏层表示在电影知识图谱中的主题语义信息,其结构如图1所示融合主题语义信息的自编码器(semantic-knowledge-based autoencoder,SKBAE)。根据用户过去评价的电影为每个用户构建不同的自动编码器模型进行训练,隐藏层的节点数量取决于所评价电影的主题信息数。由于每个隐藏层节点对应于知识图谱中电影的一个主题,因此隐藏层便有了其实际意义。

图1 融合主题语义信息的自编码器(SKBAE)结构

为了训练这种自动编码器,使用矩阵M来表示电影与主题之间是否存在关联,其中的行和列分别代表电影和主题特征

隐藏层(H)和输出层(O)的输出可以由式(1)、式(2)计算得出

H=g(X×(W1·M))

(1)

O=g(H×(W2·MT))

(2)

其中,W1表示的是输入层与隐藏层之间的权值矩阵,W2表示的是隐藏层与输出层之间的权值矩阵。在反向传播步骤中,通常对W1和W2按照均方误差损失计算梯度

(3)

其中,xi,yi分别代表输入向量和输出向量,E是最小平方差损失函数

(4)

(5)

根据式(4)、式(5)修改了SGD(随机梯度下降)反向传播中的权值更新步骤。

隐藏层中的节点对应于知识图谱中电影的主题特征。在每次迭代训练的过程中,反向传播将相应地改变层间边的权重,使得输入值与输出值的偏差尽可能地减小。与实际应用相对应,该模型在训练完成时,与隐藏节点相连接的输入边权重之和看作用户对这一主题类型电影的喜好程度。

2.2 基于语义信息的用户画像构建

2.2.1 主题信息的低维向量表示

神经网络经过训练得到一个与用户特征表示相关的低维向量表示。每个用户对应一个模型,从而可以找到输出中用户评分的最佳值。因为隐藏层中的神经元与知识图谱中的电影主题一一映射,所以,不再像传统神经网络中的隐藏单元那样不能解释其实际意义。自动编码器便能够表示用户对所有拥有这个主题语义信息的电影的喜好程度。

通过将用户在过去评价电影的相关联主题语义信息作为特征,并根据与进入相应隐藏单元的边的关联权重来分配它们一个值。给定一个用户u,主题特征f的权重是与该主题关联的隐藏节点所有输入边权重的总和,即用户对电影主题f的偏好程度是其所评价的电影中含有主题f的总和。其计算方法如式(6)所示

(6)

进一步可以将用户u画像表示如式(7)所示

profile(u)={〈f,α〉|α=αu(f),f∈Fu}

(7)

2.2.2 缺失主题特征表示

在实际情况中,因为不同用户提供的评分数量可能不同,所以在用户特征表示的维度上可能存在分布不平衡的情况。而且,通常情况下用户评价的电影所属主题特征只是整个主题集合F的部分子集。因此,将会有大量主题是属于那些未被用户评价过的电影,而找出这些主题可以更加完善用户画像的表示。为了计算出缺失特征的值,该方法运用了无监督深度学习模型Word2vec。Word2vec模型不仅可以进行词向量化,还可以求出中心词的概率,给定上下文词向量作为模型的输入,Word2vec可以返回最常用的单词及其概率并且按照 Top-N 排列出来。

在Word2vec模型中,即使两个单词从未出现在同一个句子中,也能够通过Word2ve模型计算出这两个词之间的语义相似性,其模型原理如图2所示。将其应用到我们这个场景中,给定一个窗口中的主题特征序列 (f1,…,fn),通过Word2vec计算一个新主题特征f′成为序列中的下一个特征的概率,即p(f′|(f1,…,fn))。在该模型中,将用户画像初始表示中的主题序列作为Word2vec的输入,然后计算出缺失主题特征f′∉Fu的权重。

图2 Word2vec模型原理

因此,要想获得缺失主题特征的预测值,首先要生成由有序特征序列组成的语料库作为Word2vec的输入,其中序列中的主题特征按照权重α值的大小进行排列。

不同的评价指标所衡量的算法性能是不同的。通过对所得到的评价指标进行标准化,可以消除数量级带来的误差。原始数据经过数据标准化处理后,各指标处于同一数量级,适合进行综合对比评价。基于此,对于每个 ∈profile(u),创建一个相关对 ,其中norm是标准化函数。这里选择的标准化函数为minmax,对获得的原始数据进行线性变换,使结果映射到[0,1]之间

pnorm(u)={〈f,norm(α)〉|〈f,α〉∈profile(u)}

(8)

对于每个标准化的用户特征表示集pnorm(u),对其进行序列化得到

(9)

在预测阶段,使用每个用户的特征序列s(u) 作为训练的Word2vec模型的输入,可以得到 的概率p(|s(u))。该算法将所获得的概率看作用户对缺失主题f′的喜好程度。

如果给定缺失主题f′∉Fu,经过训练可以获得多个以f′作为第一个元素的元素对。例如,假设电影的主题是美国动画电影(American_animated_films),经过模型训练可以得到前两个的概率分布p(|s(u))、p(|s(u))。因为使用Word2vec训练的目的就是对用户初始画像进行补充表示,所以这时就选择p(|s(u)) 作为用户对主题特征American_animated_films的权重。

至此,可以构建更加完善的用户画像——用户初始特征表示加上经过word2vec训练后的最大概率缺失特征与权值,即argmaxp|s(u))’,如式(10)所示

profile+(u)=profile(u)∪
{〈f,α〉|argmaxp(〈f,α〉|s(u)),
〈f,α〉∉pnorm(u),α∈(0,1)}

(10)

其中,profile(u) 是式(7)用户u的初始画像,〈f,α〉|argmaxp(〈f,α〉|s(u)),〈f,α〉∉pnorm(u),α∈(0,1) 是对用户对缺失主题特征的表示,从而补充用户画像。

2.3 基于用户画像的协同过滤推荐算法

2.3.1 用户相似性计算

对于给定的目标用户,根据所提出的SKBAE结构,训练获得用户的偏好表示,构建用户画像。将用户画像进行向量化,映射到Salton等提出的Vector Space Model(空间向量模型)中,然后利用余弦相似度计算目标用户与其他用户之间的相似度,其计算如式(11)所示。采用KNNs(K-nearest-neighbors)算法,选取用户兴趣相似度最高的K个用户进行项目推荐

(11)

其中,p(u)、p(v) 分别表示用户u、v的画像。

2.3.2 生成推荐列表

通过计算用户相似度,找出目标用户u相似度较高的用户组成近邻域:将集合中用户喜爱的物品全部提取出来,并去除u已经喜爱的物品,生成用户u喜爱的候选电影集合I。对于每个候选推荐的电影i,用户u对它感兴趣的程度用如下公式计算

(12)

其中,r(vj,i) 表示用户vj对于候选电影i的评分,rmean表示的是电影数据集中用户u对电影的平均评分。使用式(12)所计算出的前N个用户感兴趣程度最大的电影i,进而对目标用户进行推荐。

3 实验设置及结果分析

3.1 数据集

实验中所采用的数据集为MovieLens 1M。该数据集包含来自3952部电影的6040名用户的1 000 209份匿名评分,评分范围为1-5,其中数据集中的每个用户至少对20部电影进行过评价。对于知识图谱的数据集的获取,我们采用SPARQL将DBpedia上的RDF数据抽取出来用于对知识库资源更加详细的描述,获得了3952组与MovieLens 1M有对应关系的电影数据。

3.2 实验设置

3.2.1 评价指标

为了评估所提出的方法性能,根据交叉验证方法,将每位用户评分数的80%作为训练集,将剩余的20%作为测试集。对于每位用户u,top-N推荐列表是通过计算每个没有被u打分电影的分数来提供的,不管电影i是否出现在用户测试集中。然后,通过计算性能指标将推荐列表与测试集进行比较。性能评价指标包括召回率(recall)、准确率(precision)、F1。

通常把分类目标分为正例(positive)和负例(negative)两类,因此可以通过如表2所示的混淆矩阵,给出上面3个指标的定义。

表2 混淆矩阵

(1)召回率表示一个用户喜欢的项目被推荐的概率,可以用如下公式表示

(2)准确率是指正确推荐项目数量与所有推荐项目数量的比值,可以用如下公式表示

(3)为了同时考虑准确率和召回率,以比较全面地评价算法的优劣。F1值

F1值、召回率、准确率的值越大,表明推荐性能越好。

3.2.2 对比实验

对比算法的选择主要从以下几个方面考虑:主体算法同样是协同过滤算法;将知识图谱融入到推荐算法中;具有向量间的相似性计算。因此,对于上面所提出的算法,将下面几个算法与之进行对比实验。

(1)贝叶斯个性化排序算法(Bayes personalized ran-king,BPR):BPR通过向量之间的点积判断向量之间的相似性:点积越大,向量之间投影越大,表示两个向量越接近。

(2)协同知识嵌入(collaborative knowledge embedding,CKE)[10]:它首先提出合并知识图谱和其它信息(如图片和文本)以此来提高推荐系统性能。在本实验中,实现了简化版CKE,仅合并了电影主题信息。

(3)加权相似度的协同过滤算法(accordance and correspondence-Pearson correlation coefficient,AC-PCC)[11]:这一算法将用户之间的一致性和相关性等因素考虑到皮尔逊系数中。

3.3 实验结果及分析

3.3.1 实验结果

通过对在最近邻居个数K不同情况下,进行了对照实验,获得了相应的指标值,见表3。

表3 对比实验数据

3.3.2 实验结果分析

对于给定相同最近邻居个数时,提出的算法相比较于其它3个算法在准确率、召回率和F1值指标上有着良好的表现。实验结果如图3所示,随着用户最近邻居数的提升,BPR与AC-PCC算法各项性能指标都有了明显的下降,而SKBAE与CKE算法都处于比较平稳的状态,甚至有小幅度的提升,造成这种现象的发生是因为这两种算法都是结合知识图谱中的丰富边信息,这说明,该算法通过利用关联开放数据以及对用户缺失特征的完善,可以有效降低随着近邻个数增加所带来的数据稀疏性的影响,从而提高推荐质量。纵向上来看,如图4、图5所示,当K=20时,进行对照的算法和提出的算法在准确率指标上都有一个较大幅度的提升,这是因为邻居数在一定范围内时,随着数量的增大能提供更加丰富的推荐项目。

图3 准确率与用户最近邻居个数的关系

图4 召回率与用户最近邻居个数的关系

图5 F值与用户最近邻居个数的关系

4 结束语

本文提出了一种结合知识图谱主题语义信息的用户画像构建方法,并且基于所构建出的用户画像进行推荐。相对于只利用用户电影评分信息的传统推荐算法而言,该算法能够充分利用关联开放数据中丰富的语义信息,从而对所要推荐的电影进行更加详细的描述,弥补了数据稀疏的缺点。将电影知识图谱主题语义信息附加到自动编码器中,训练过的模型进行有意义的、可理解的表示。

今后研究的主要方向有如下几点:①通过从外部信息源注入显式和结构化的知识来研究进一步增强用户画像的构建。②继续在用户相似度的准确性方面做工作,加入可信度这一指标从而提高推荐的准确率。

猜你喜欢
画像图谱语义
威猛的画像
绘一张成长图谱
“00后”画像
画像
语言与语义
补肾强身片UPLC指纹图谱
批评话语分析中态度意向的邻近化语义构建
“社会”一词的语义流动与新陈代谢
主动对接你思维的知识图谱
“吃+NP”的语义生成机制研究