基于标签和共评比例改进的推荐算法*

2023-12-09 08:50林鹏飞黄树成
计算机与数字工程 2023年9期
关键词:余弦度量向量

林鹏飞 王 逊 黄树成

(江苏科技大学计算机科学与工程学院 镇江 212003)

1 引言

推荐算法是推荐系统中的重要组成部分。推荐算法主要分为基于内容的推荐[1]、基于协同过滤的推荐[2]以及基于混合推荐[3~5]三大类。协同过滤算法在科学研究和现实商业系统中均取得了大量的成绩和使用。然而协同过滤算法存在评价数据不足、推荐精度低等问题[6]。

上述协同过滤算法存在的问题,大批科研工作者和工程师提出了许多治理方案。例如,曹占伟等[7]提出了一种基于LDA 主题模型的矩阵分解推荐算法,该算法在相似度计算中引入了KL散度,提高了相似度度量[8]精度,减少了推荐误差。陈洁敏等[9]提出经过用户兴趣构建的标签集合来发掘用户的兴趣分布,进而计算用户的相似度。Sun B等[10]提出了一个概率模型来寻找用户标注的标签和位置的偏好关键字之间的映射,并使用辅助上下文数据信息来解决数据稀疏性的问题。上述的方法提高了计算的精确性,但仍存在不足之处。只考虑了用户评分和用户标注信息,忽略了项目本身存在的类别信息与用户之间潜在的关联关系。Aliannejadi M 等[11]提出了一个概率模型来寻找用户标注的标签和位置的偏好关键字之间的映射,并使用辅助上下文数据信息来解决数据稀疏性的问题。Sun J 等[12]提出了一种新的多方面用户兴趣模型,引入产品的总体用户满意度,通过从多个方面的评论计算用户兴趣级别来构建用户兴趣概要。建立了领域情感词典,克服了正负词在数量上的差距,用于情感极性分析。并设计了用户情感倾向性和倾向性的情感分析模型,提高了推荐精度和推荐质量。以上方法却没有考虑用户兴趣的公平性与用户共评比例的关联。

因此,基于以上两个因素,本文提出基于标签和共评比例改进的推荐算法。通过分析用户评分矩阵的高度稀疏性,利用标签进行弥补稀疏的措施,标签信息一定程度上代表着用户的偏好,具有优良的可解释性。配合两用户评分项目的数量和共同评分的项目比例因素,使得用户相似性的计算更符合实际。

2 传统的相似度计算方法

2.1 余弦相似度

余弦相似度[13]最初用于二维空间中两个向量的夹角值计算,例如向量=(a,b)和向量=(c,d),向量表示当前坐标(a,b)与原点坐标(0,0)形成的直线关系,同理,向量表示当前坐标(c,d)与原点坐标(0,0)形成的直线关系。则余弦相似度计算的就是向量与这两条直线的夹角值,表示当前它根据二维向量之间的角度来度量它们之间的相似性。两条直线的角度值越小则两个向量越相似,反之则差异越大。余弦相似度的公式如式(1)所示:

其中,余弦相似性度量值的范围在[-1,1]之间,-1则表示向量完全不相似,1 则表示向量完全相似,0表示向量正交或向量不相关,而中间值则表示两向量的相似度级别。向量和通常是文档的词频向量。余弦相似度常用于正值空间,因此范围常在[0,1]之间。

余弦相似度通过向量空间中两个向量夹角的余弦值来度量两个个体之间的差异,因此,该方法注意的是两个向量在方向上的差异,而不是距离或者长度上的差异。两个向量越相似,角度越小,余弦值越大。但是仅考虑角度大小会有一定的局限性,只能分辨个体在角向量维度的差异,无法从数值上进行测度。

2.2 皮尔逊相关系数

在统计学中,Pearson 相关系数(Pcc)[14]是衡量两组数据之间线性相关性的指标,该相关系数表示为两个变量之间协方差与其标准差的乘积之比。因此,本质上是对协方差进行了归一化的计算,使得结果的值域始终保持在[-1,1],相关系数取值在-1和1之间。与协方差本身一样,该度量只能反映变量的线性相关性,而忽略了许多其他类型的关系或相关性。

协方差:设置两个随机变量X和Y,协方差用于衡量这两个变量的总体误差,表示的是两个变量总体误差的期望。计算方式如式(2)所示:

标准差:标准差是一组数值自平均值分散开来的程度的一种测量观念。一个较大的标准差,代表大部分的数值和其平均值之间差异较大;一个较小的标准差,代表这些数值较接近平均值。计算方法如式(3)所示:

根据式(2)和式(3),皮尔逊相关系数公式如式(4)所示:

也可表示为式(5):

其中,皮尔森相关系数的变化范围为[-1,1]。系数的值为1意味着x和y可以很好地由直线方程式来描述,所有的数据点都很好地落在一条直线上,且y随着x的增加而增加。系数的值为-1 意味着所有的数据点都落在直线上,且y随着x的增加而减少。系数的值为0 意味着两个变数之间没有线性关系。

2.3 Jaccard系数

Jaccard 系数主要应用场景为数据聚类、比较文本的相似度,用于文本的查重与去重,计算对象间的距离。Jaccard 系数考虑了共项的问题。这种方法的原则是具有共同评分的项目的用户可能有相似的兴趣爱好。Jaccard 系数能够量度有限样本集合的相似度,其定义为两个集合交集大小与并集大小之间的比例,如式(6)所示:

其中,如果A与B的集和完全重合,则定义Sim(A,B)J=1,于是有0 <Sim(A,B)J<1。Jaccard系数值越大,样本相似度越高,反之则越低。

3 基于标签偏好的相似度改进算法

3.1 全局兴趣模型

通常,在传统的协同过滤算法中,评分值通常表示用户对某项产品的偏好程度。而在本节中,所提出的方法利用项目类别来表达这种偏好。此处将描述构建全局兴趣模型的三个主要步骤。例如,使用ML 数据集来解释这些步骤。ML 数据集有18种类别的电影,如动作、犯罪、喜剧、纪录片等。每一部电影至少可以属于一种或多种类别。用户对电影的所有评分都被用来建立用户的全局偏好。该过程用三个子过程表达,如下所示。

用户-项目评分矩阵:我们定义U表示数据集中n个用户的集合,I表示为数据集中m个项目的集合,并且在区间[Min,…,Max]评分维度内,用户对项目进行评分。在该矩阵中,这些行表示同一个用户对不同项目的评分信息。同样,这些列表示不同用户对同一个项目的评分信息。因此,矩阵中行列单元格的唯一交集,将由表示用户u对项目i的评分的值来进行填充,其中没有评分的单元格的值,将用符号*来表示,如表1所示。

表1 用户-评分矩阵

用户-标签频次矩阵:让我们进行以下假设。在电子商务中,用户根据颜色、款式、品牌等类型购买商品。因此,我们可以说,他们的偏好可能取决于这种行为(他们购买的类型)。类似地,ML 数据集电影项目被划分为有限个类别。因此,喜欢看纪录片的用户会比其他人更喜欢看这种类型的电影。为了解释这一步骤,我们假设是表示电影j的类别信息的向量,向量具体表示为是该数据集中电影类型的总数。其中,如果项目j属于对应g类别,那么的值为1 否则为0。该矩阵的值将表示为ti,g,具体表示为用户i评分过的属于类别g的电影数量。ti,g值的计算表达式为此处,Ii是用户i选择的电影集。表示属于类别g的电影j的贡献值,如表2所示。

表2 用户-标签频次矩阵

归一化矩阵:对用户-标签频次类型矩阵进行归一化,将评分计数值转换为0 与1 之间的比值。为了在比较过程中保持标准化,将进行标准化处理。在相似度计算过程中,将使用归一化的值来表示用户的全局偏好。例如向量表示用户i的类别信息,其中=(ti,1,ti.2,…,ti,g,…,ti,k-1,ti,k)。如表3 所示。因此,在向量空间模型中,用户对每个类别的偏好通过用户标签频次归一化矩阵表示。其中归一化值wi,g表示用户i对类别g的偏爱值,可以使用表示,其中k是数据集中项目类别的数量。接下来,采用归一化矩阵作为主要输入来定义所改进的相似度计算方法。

表3 归一化矩阵

相似度度量需要计算一对用户之间的相关性。在本节中,皮尔逊相关系数和余弦相似度的计算将分别根据归一化矩阵数据,采用公平因子和共同评分的项目比例两个因素的调整方式。

3.2 公平因子

在本研究中,公平性因子可以定义为目标用户评分的项目数量与两个用户所取项目数量的比例。首先,将公平因子应用到提出的相似度度量公式上,使其更加准确。一对评分相近的用户之间的相关性应该比其他用户更强。例如,用户u是目标用户,则|Iu|就是用户u总的评分项目数量。与此同时,v是被比较用户,则|Iv|是用户v总的评分项目数量。因此,每个用户的公平因子(Ff)可定义为如式(7)所示:

其中,Ff(u,v)为用户u相对于用户v的公平权重,并且Ff(u,v)为用户v相对于用户u的公平权重。

3.3 Sigmoid函数

在计算用户之间的相似性时,还应考虑具有共同评分的项目比例对相似度计算的影响。一般来说,两个用户评分项目集合中,两集合的交集的项目数量占两用户所有项目并集数量上的比例越大,这两个用户在某种程度上就越相似。此外,如果Sim(u,v)=Sim(u,l)相似度的值相同的情况下,可以通过其他方式再次确定相似度。例如,用户u与用户v之间共同评分的项目数多于用户u和用户l。 那么很显然即使Sim(u,v)=Sim(u,l) ,那Sim(u,v)的效用也要比Sim(u,l)的效用要更强。

为了解决这种问题,在此处将使用Sigmoid 函数[15]来降低相似度的权重,如式(8)所示。当我们计算两个用户之间的相似度时,两个用户的评分之间的差异越小,用户之间的相似度就越高。选择Sigmoid 函数具有以下优点:1)相似度可以限制在[0,1]的范围内,这便于与其他算法或自身进行比较。2)Sigmoid 函数可以扩大函数差的大小,扩大相似值,也可以抑制负面因素。

分母θ用来限制共同评分项的最小长度。如果公共项目集的大小等于或者大于阈值θ,那么Sigmoid 权重将大于0.9。例如,如果θ的值为1 并且共同评分项目数量为0,此时Sigmoid函数值则为0.5。但是,如果共同评分的项目数量为3,那么Sigmoid 函数值将会大于0.95。Sigmoid 函数公式(Sf)可按照以下方式计算:

其中Sf(u,v)=Sf(v,u)并且|Iu,v|表示用户u和用户v的共同项目评分数量。

表4 给出了各种初始测试分母值的描述及其对Sigmoid值的相应影响。

表4 Sigmoid参数影响表

3.4 改进的相似度计算方法

如上节所述,为了解决数据稀疏导致的推荐精度较低的问题[16~18],基于归一化矩阵呈现的全局偏好并采用上述的两种因素进行改进,则用户之间的相似性可以分别定义为改进的基于皮尔森的相似度计算方法(IPcc)和改进的基于余弦相似度(ICos)的计算方法。改进公式如式(9)与式(10)所示:

在制定相似性度量公式之后,将计算数据集中用户之间的相似度,以确定目标用户的最相似的用户集合。与目标用户具有较高相似度的用户将被定义为邻居。调整后的加权方法用于计算用户对每个邻居项目的预测分数。式(11)将用于计算预测评分。

其中,Pu,i表示用户u对项目i的预测评分,N为用户u的近邻集。

4 实验设计与分析

4.1 实验数据集

协同过滤算法向用户提供一个推荐列表,其中有n个未评级的项目。为了评估本节模型的有效性,我们使用MovieLens 数据集进行验证。我们选择ML-100k 数据集,它由943 个用户对1682 部电影的10 万条评级记录组成。在数据集中,每个用户至少被评级20 部电影,评级范围是1~5,每个用户可以将电影评级为1、2、3、4、5。用户对电影的评价越高,用户对电影就越感兴趣。数据集的稀疏度可计算为1-100000/(943*1682)=0.936953。采用5-交叉验证方法[19],将数据集分割为五个等比例子集。分别前四份子集为训练数据集,最后的一份子集作为测试数据集。不断调整训练集和测试集的比例,计算结果取平均值作为最终实验结果。

4.2 实验评价标准

预测准确率是目前推荐系统研究中讨论最多的属性。在实验过程中,我们选择了四个评价指标来评价推荐质量,分别是MAE、Recall、Precision、F1-measure[20]。我们希望预测用户对目标项目的评分,因此采用了度量评分预测的准确性。MAE是评级预测中最常用的评估指标。较小的值意味着预测分数更准确。通过计算预测额定值与实际额定值之间的差值获得。式(12)如下所示:

其中N表示项目的数量,rm,i表示预测的评分值,表示用户m在项目i上的实际评分值。

为了更好地评估算法的准确性,我们使用了召回率和准确度评估指标。我们为用户定义预测的推荐项目,并在测试集中投票给实际的推荐列表。召回率和准确度公式如下:

准确度和召回率是相互影响的。理想情况下,两者都可以达到最佳值,但一般来说,准确度较高,召回率较低,准确度较低,召回率较高。F1-Measure 是准确度和召回率的加权调和平均值,因此选择F1-Measure 作为评价指标,可以更直接地比较推荐的准确度。F1-Measure 越大,则推荐精度越高,定义如下:

4.3 实验结果分析

4.3.1θ的选择

由于一对用户之间的相似度在计算时包含两用户之间共同评分项目的比例,因此,需要增加或减少两用户之间相似度权重的共同评分项的量级的影响。Sigmoid 函数的使用取决于分母θ的值。为此,进行了多次实验,以确定合适的分母值θ,以提高相似度测度,并得到可接受的结果。

表4 描述了各种初始测试分母值及其对Sigmoid 函数的影响。图1 表示使用MovieLens 100K的MAE 率。近邻数量有30、50、70、100 和150 个。当邻域数增加时,可以观察到MAE 值略有改善。同样,当分母增加时,MAE 值增加。综上所述,当所有分母值中邻域的大小为150时,MAE值是可接受的。此外,当分母等于13时,MAE率最低。当分母θ为9时,MAE率接近最佳值。

图1 ICos算法关于θ 的MAE

4.3.2 改进的算法比较

皮尔逊相关系数(Pcc)、余弦相似度(Cos)、Jaccard 系数作为最常见的用于传统协同过滤算法中的相似度计算方法。IPcc 和ICos 分别表示本文提出的基于皮尔逊相关系数和余弦相似度的改进计算方法。

图2 显示了本文所提出的改进方法与Pcc、Cos和Jaccard系数相比下MAE的比较结果。最近邻居的大小以横轴表示,大小各不相同,从大到小分别为30、50、70、100、150,纵轴表示MAE 的值。当邻居数量增加时,MAE 大小会随之降低。如图所示,所提出的方法相较于其他方法具有明显的减小MAE 的作用,它们的MAE 值最低。表示提出的方法符合实际情况,也明显表现出IPcc和ICos方法提高了计算的精确率。

图2 MAE与邻居数量的关系

图3 显示了本文所提出的改进方法与Pcc、Cos、Jaccard 系数相比下召回率的比较结果。总的来说,对于所有的相似度计算方法,当项目推荐数为50 时,推荐率逐渐上升,达到最高。可以看出,IPcc 和ICos 的召回率在所有算推荐中排最高。综上所述,召回率随着推荐条目数量的增加而提高。

图3 Recall与邻居数量的关系

图4 显示了本文所提出的改进方法与Pcc、Cos、Jaccard 系数相比下精确率的比较结果。由图可知,所有计算方法的准确率都从推荐数为10 的初始点开始下降,在推荐数为50 时达到最低。从图中可以看出,所提出的方法的准确率是相比于其他方法仍然是效果最好的。

图4 Precision与邻居数量的关系

图5 显示了本文所提出的改进方法与Pcc、Cos、Jaccard 系数相比下F1 的比较结果。从图中可以观察到,对于所有的相似度计算方法,当推荐项目的大小为10~30 之间时,从初始点开始,所有方法的F1 值都有显著上升。然而,在此之后,在接下来的两个推荐长度内,该指数略有上升。因此,与Pcc、Cos 和Jaccard 系数相比,IPcc 和ICos 改进计算方法的F1值总体最好。

图5 F1与邻居数量的关系

5 结语

在协同过滤算法中,定位最相似的邻居是提高准确率的关键步骤。因此,关键的一步是如何构造一个合适的相似性度量方法。然而,大多数的相似性度量方法仍然面临数据稀疏性的负面影响进而导致计算值误差较大的问题。本文对现有的几种相似性度量方法进行了改进,提出了一种利用用户全局偏好的相似性度量方法来解决这一问题。然后,偏好值被用作所提出的相似性度量方法的输入数据。因此,即使一对用户没有共同的项目,也会计算它们之间的相关性。此外,在提出的方法中,采用公平因子和共同评价项比例两个因素,对提高推荐的准确性有积极的影响。实验结果表明,该方法解决了数据稀疏性问题,提高了精度。与传统协同过滤相似性度量方法相比,本文的改进方法使用通用评价指标(MAE、Recall、Precision和F1)并提高了准确率。然而算法未考虑偏好在时间维度的特性,这是以后改进的关键点之一。

猜你喜欢
余弦度量向量
鲍文慧《度量空间之一》
向量的分解
模糊度量空间的强嵌入
聚焦“向量与三角”创新题
迷向表示分为6个不可约直和的旗流形上不变爱因斯坦度量
两个含余弦函数的三角母不等式及其推论
向量垂直在解析几何中的应用
分数阶余弦变换的卷积定理
地质异常的奇异性度量与隐伏源致矿异常识别
图像压缩感知在分数阶Fourier域、分数阶余弦域的性能比较