基于信任度与遗忘函数的个性化产品服务方案推荐方法
技术领域
本发明涉及个性化推荐
技术领域
,更具体的说是涉及一种基于信任度与遗忘函数的个性化产品服务方案推荐方法。背景技术
产品服务系统逐渐成为制造企业转型升级的主要方向,针对产品服务系统的研究逐渐成为产业界的热点。但与此同时,制造企业也面临着如何快速根据用户需求向其提供个性化产品服务集成方案的挑战,针对此问题,部分学者对产品服务系统的模块化设计进行了研究。
协同过滤作为个性化推荐技术的常用方法,已被广泛应用于各类推荐系统。虽然协同过滤技术在个性化推荐方面已取得了较大成功,但仍存在以下两个主要问题:(1)冷启动:新加入平台的用户或方案没有历史使用数据,进而导致无法对其进行相似度计算;(2)数据稀疏性:用户通常只对一小部分方案进行评分,进而导致两个用户或项目间在系统中没有共同评分项,无法进行相似性计算。鉴于上述解决冷启动与数据稀疏性的方法,本发明分别从用户与项目两个维度入手,提出了基于信任度与遗忘函数的混合推荐方法。
发明内容
有鉴于此,本发明提供了一种基于信任度与遗忘函数的个性化产品服务方案推荐方法,在偏好相似度计算和评分相似度计算中引入信任度和时间遗忘权重,同时综合考虑用户和方案的组合相似度,使得在对目标用户进行推荐方案的预测时降低数据稀疏性和冷启动的影响,提高推荐精度。
为了实现上述目的,本发明采用如下技术方案:一种基于信任度与遗忘函数的个性化产品服务方案推荐方法,具体包括如下步骤:
根据用户历史偏好数据计算偏好相似度;
在所述偏好相似度中融合信任度权重,得到最终偏好相似度;
根据用户历史评分数据计算评分相似度;
在所述评分相似度中融合时间遗忘函数,得到最终评分相似度;
将所述最终偏好相似度和所述最终评分相似度拟合,得到组合相似度,进而寻找用户或方案的Top-N近邻;
通过所述组合相似度预测目标用户对项目的评分,比较评分大小,为所述目标用户推荐方案。
优选的,所述偏好相似度包括用户间偏好相似度和方案间偏好相似度,其中,所述用户间偏好相似度利用皮尔森相关系数计算,具体计算公式如下:
其中,p1表示用户U1与用户U2共同使用过的方案数,e1,i表示用户U1使用方案Si的次数,表示用户U1使用所有PSS方案的平均次数,e2,i表示用户U2使用方案Si的次数,表示用户U2使用所有PSS方案的平均次数;
所述方案间偏好相似度的计算公式为:
其中,q1表示同时使用PSS方案S1与方案S2的用户数,ej,S1表示用户Uj使用方案S1的次数,表示方案S1被所有用户使用的平均次数,ej,S2表示用户Uj使用方案S2的次数,表示方案S2被所有用户使用的平均次数。
优选的,所述信任度权重包括用户间直接信任度与用户间间接信任度,其中,所述用户间直接信任度的计算公式为:
Trustdir(Ua,Ub)=Pre_Sim(Ua,Ub)*Jac(Ua,Ub);
其中,Trustdir(Ua,Ub)表示用户Ua对用户Ub的直接信任度,Pre_Sim表示用户Ua与用户Ub的偏好相似度,Jac(Ua,Ub)表示用户Ua与用户Ub间的Jaccard相似度,所述用户Ua与用户Ub间的Jaccard相似度计算公式为:|Ia,b|表示用户Ua和用户Ub共同使用过的方案数量,|Ia|表示用户Ua使用过的方案数量,|Ib|表示用户Ub使用过的方案数量;
所述用户间间接信任度的计算公式为:
其中,Trustdir(Uc,Ub)表示用户Ub对用户Uc的直接信任度。
通过采用上述技术方案,具有以下有益的技术效果:传统偏好相似度计算仅考虑了用户对于方案的偏好,忽略了用户间的内在联系,有研究表明,相比于系统的推荐,用户更倾向于接受熟人、朋友的推荐,用户的信任度与偏好相似度之间存在正相关关系。并且在推荐系统中融入用户间信任关系比传统协同过滤具有更高的准确率,所以对于系统中各用户之间的相互关系进行研究是非常有必要的。
两个用户之间的直接信任度取决于二者是否存在共同使用过的方案,仅仅采用直接信任度容易导致对用户的描述不准确,实际中用户间共同使用过的方案数据较少,因此用户间直接信任的数据较少,增加间接信任度可以大大缓解数据稀疏问题。
优选的,所述最终偏好相似度包括最终用户间偏好相似度和最终方案间偏好相似度,其中所述最终用户间偏好相似度的计算公式为:
其中,Trust(Ua,Ub)表示用户Ua对Ub的综合信任度,Trust(Ua,Ub)=φTrustdir(Ua,Ub)+(1-φ)Trustind(Ua,Ub),φ表示所述用户间直接信任度的信任程度,Pre_Sim(Ua,Ub)表示所述用户间偏好相似度;
所述最终方案间偏好相似度的计算公式为:
其中,Trust(S1,S2)表示方案S1对S2的综合信任度,Trust(S1,S2)=φTrustdir(S1,S2)+(1-φ)Trustind(S1,S2),φ表示所述方案间直接信任度的信任程度,Pre_Sim(S1,S2)表示所述方案间偏好相似度。
优选的,所述评分相似度包括用户间评分相似度和方案间评分相似度,其中,所述用户间评分相似度的计算公式为:
其中,p2表示用户U1与用户U2共同评分的方案数,w1i表示用户U1对方案Si的评分,表示用户U1对所有PSS方案的平均评分,w2i表示用户U2对方案Si的评分,表示用户U2对所有PSS方案的平均评分;
所述方案间评分相似度计算公式为:
其中,q2表示对PSS方案S1与S2共同评分的方案数,wj1表示用户Uj对方案S1的评分,表示方案S1被所有用户评分的平均评分,wj2表示用户Uj对方案S2的评分,表示方案S2被所有用户评分的平均评分。
优选的,所述时间遗忘函数的计算公式为:
其中,α表示遗忘系数,t表示用户实际评分时间与参照时间的间隔,tmin表示用户最早评分时间与参照时间的间隔,tmax表示用户最晚评分时间与参照时间的间隔。
通过采用上述技术方案,具有以下有益的技术效果:传统的评分相似度计算将用户在不同时间的评分给予相同的权重,没有考虑用户的兴趣会随着时间的变化而变化这一实际情况,因此有必要在计算评分相似度时考虑时间的影响,根据人类遗忘的过程,用户的兴趣也会随着时间的变化而变化,因此也符合遗忘曲线的规律。
优选的,所述最终评分相似度包括最终用户间评分相似度和最终方案间评分相似度,其中,所述最终用户间评分相似度的计算公式为:
所述最终方案间评分相似度的计算公式为:
优选的,所述组合相似度包括用户间组合相似度和方案间组合相似度;其中,所述用户间组合相似度的计算公式为:
Com_Sim(U1,U2)=β×Trust_Pre_Sim(U1,U2)+(1-β)Time_Sco_Sim(U1,U2);
其中,β表示权重因子,0≤β≤1;
所述方案间组合相似度的计算公式为:
Com_Sim(S1,S2)=γ×Trust_Pre_Sim(S1,S2)+(1-γ)Time_Sco_Sim(S1,S2);
其中,γ表示权重因子,0≤γ≤1。
通过采用上述技术方案,具有以下有益的技术效果:将最终用户间偏好相似度与最终用户间评分相似度、最终方案间偏好相似度与最终方案间评分相似度进行结合,即使在缺少某个相似度的情况下,仍可得到用户间组合相似度或方案间组合相似度,从而在一定程度上缓解了数据稀疏性和冷启动问题。
经由上述的技术方案可知,本文在传统协同过滤算法的基础上,提出了基于信任度与时间遗忘的个性化产品服务系统推荐方法,与现有技术相比,在偏好相似度计算和评分相似度计算中引入信任度和时间遗忘权重,同时综合考虑用户和方案的组合相似度,使得在对目标用户进行推荐方案的预测时可以降低数据稀疏性和冷启动的影响,提高推荐精度,同时,本发明既考虑了用户间的组合相似度,又考虑了方案间的组合相似度,所以即使缺少某个相似度仍可进行评分预测,极大地缓解了数据稀疏性和冷启动问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1附图为本发明的算法流程图;
图2附图为本发明算法与其他算法比较分析图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种基于信任度与遗忘函数的个性化产品服务方案推荐方法,如图1所示,包括如下步骤:
步骤一:根据用户历史偏好数据计算用户间偏好相似度和方案间偏好相似度;
需要说明的是,用户间偏好相似度是指用户在选择方案时的相似程度,用户间偏好相似度越大,两用户选择的方案越相似;方案间偏好相似度是指两方案在受众上的相似程度,方案间偏好相似度越大,两方案的受众群体越相似。
具体的,在本实施例中利用皮尔森相关系数计算用户间偏好相似度,具体计算公式如下:
其中,p1表示用户U1与用户U2共同使用过的方案数,e1,i表示用户U1使用方案Si的次数,表示用户U1使用所有PSS方案的平均次数,e2,i表示用户U2使用方案Si的次数,表示用户U2使用所有PSS方案的平均次数。
Pre_Sim(U1,U2)的取值范围在[-1,1]之间,当取值为-1或1时,U1和U2的偏好完全相关,当值为0时,U1和U2的偏好完全无关,如果p1=0,Pre_Sim(U1,U2)为空值。
同理,方案间偏好相似度的计算公式为:
其中,q1表示同时使用PSS方案S1与S2的用户数,ej,S1表示用户Uj使用方案S1的次数,表示方案S1被所有用户使用的平均次数,ej,S2表示用户Uj使用方案S2的次数,表示方案S2被所有用户使用的平均次数。
Pre_Sim(S1,S2)的取值范围在[-1,1]之间,当取值为-1或1时,S1与S2的偏好完全相关,当值为0时,S1与S2的偏好完全无关,如果q1=0,Pre_Sim(U1,U2)为空值。
步骤二:在用户间偏好相似度和方案间偏好相似度中融合信任度权重,得到最终用户间偏好相似度、最终方案间偏好相似度;
传统偏好相似度计算仅考虑了用户对于方案的偏好,忽略了用户间的内在联系,有研究表明,相比于系统的推荐,用户更倾向于接受熟人、朋友的推荐,用户的信任度与偏好相似度之间存在正相关关系。并且在推荐系统中融入用户间信任关系比传统协同过滤具有更高的准确率,所以对于系统中各用户之间的相互关系进行研究是非常有必要的。
信任度权重包括用户间直接信任度与用户间间接信任度。
进一步的,用户间直接信任度的计算公式为:
Trustdir(Ua,Ub)=Pre_Sim(Ua,Ub)*Jac(Ua,Ub);
其中,Trustdir(Ua,Ub)表示用户Ua对Ub的直接信任度,Pre_Sim表示用户Ua与Ub的偏好相似度,Jac(Ua,Ub)表示用户Ua与Ub间的Jaccard相似度。
用户Ua与Ub间的Jaccard相似度计算公式为:
其中,|Ia,b|表示用户Ua和用户Ub共同使用过的方案数量,|Ia|表示用户Ua使用过的方案数量,|Ib|表示用户Ub使用过的方案数量。Jaccard相似度取值范围为[0,1],Jaccard相似度越大表示用户的相关度越高。
两个用户之间的直接信任度取决于二者是否存在共同使用过的方案,仅仅采用直接信任度容易导致对用户的描述不准确,实际中用户间共同使用过的方案数据较少,因此用户间直接信任的数据较少,增加间接信任度可以大大缓解数据稀疏问题。
进一步的,用户间间接信任度的计算公式为:
结合用户间的直接信任度与间接信任度,则用户间的综合信任度计算公式为为:
Trust(Ua,Ub)=φTrustdir(Ua,Ub)+(1-φ)Trustind(Ua,Ub);
其中,φ表示用户间直接信任度的信任程度,φ越大则表示直接信任度对综合信任度的贡献越大。
进一步的,最终用户间偏好相似度的计算公式为:
同理,最终方案间偏好相似度的计算公式为:
步骤三:根据用户历史评分数据计算用户间评分相似度和方案间评分相似度;
用户间评分相似度的计算公式为:
其中,p2表示用户U1与用户U2共同评分的方案数,w1i表示用户U1对方案Si的评分,表示用户U1对所有PSS方案的平均评分,w2i表示用户U2对方案Si的评分,表示用户U2对所有PSS方案的平均评分。
同理,方案间评分相似度计算公式为:
其中,q2表示对PSS方案S1与S2共同评分的方案数,wj1表示用户Uj对方案S1的评分,表示方案S1被所有用户评分的平均评分,wj2表示用户Uj对方案S2的评分,表示方案S2被所有用户评分的平均评分。
步骤四:在用户间评分相似度和方案间评分相似度中融合时间遗忘函数,得到最终用户间评分相似度、最终方案间评分相似度;
传统的评分相似度计算将用户在不同时间的评分给予相同的权重,没有考虑用户的兴趣会随着时间的变化而变化这一实际情况,因此有必要在计算评分相似度时考虑时间的影响。根据人类遗忘的过程,用户的兴趣也会随着时间的变化而变化,因此也符合遗忘曲线的规律。
设用户实际评分时间与参照时间的间隔为t,则用户最早评分时间与参照时间的间隔为tmin=min(ta-tr),最早评分时间指的是用户在第一次对方案进行评分的时间,用户最晚评分时间与参照时间的间隔tmax=max(ta-tr),其中tr为参照时间,ta为用户对方案的实际评分时间。在本实施例中,在评分相似度计算时引入时间遗忘函数,计算公式为:
其中,α表示遗忘系数,遗忘系数与用户间的兴趣变化呈正比关系。当α=1,表示用户的偏好发生了改变,当0<α<1,表示用户发生了部分非线性遗忘,当α=0,表示用户的偏好未发生改变。
则融合了时间遗忘函数的最终用户间评分相似度的计算公式为:
同理,融合了时间遗忘函数的最终方案间评分相似度的计算公式为:
步骤五:将最终用户间偏好相似度和最终用户间评分相似度拟合,得到用户间组合相似度,将最终方案间偏好相似度和最终方案间评分相似度拟合,得到方案间组合相似度,进而寻找用户或方案的Top-N近邻;
用户U1与用户U2的组合相似度计算公式为:
Com_Sim(U1,U2)=β×Trust_Pre_Sim(U1,U2)+(1-β)Time_Sco_Sim(U1,U2);
其中,β表示权重因子,0≤β≤1。β=0表示只存在评分相似度,β=1表示只存在偏好相似度,对于用户Ui,通过计算其与其他用户间的相似度并过滤掉小于等于预设阈值的用户,可得到基于该用户的近邻。
同理,PSS方案S1与S2的组合相似度计算公式为:
Com_Sim(S1,S2)=γ×Trust_Pre_Sim(S1,S2)+(1-γ)Time_Sco_Sim(S1,S2);
其中,γ表示权重因子,0≤γ≤1。γ=0表示只存在评分相似度,γ=1表示只存在偏好相似度。对于方案S1,通过计算其与其他方案间的相似度并过滤掉小于等于预设阈值的方案,可得到基于该方案的近邻。
本发明实施例将最终用户间偏好相似度与最终用户间评分相似度、最终方案间偏好相似度与最终方案间评分相似度进行结合,即使在缺少某个相似度的情况下,仍可得到用户间组合相似度或方案间组合相似度,从而在一定程度上缓解了数据稀疏性和冷启动问题。
步骤六:通过用户间组合相似度和方案间组合相似度预测目标用户对项目的评分,比较评分大小为目标用户推荐方案。
基于用户的过滤方法是在找到用户的最近邻后,利用如下公式进行评分预测:
其中,R(U)i,j表示用户Ui对方案Sj的预测评分,表示用户Ui对所有方案的平均评分,Com_Sim(Ui,Uk)表示用户Ui与Uk之间的组合相似度,Rk,j表示用户Uk对方案Sj的评分,表示用户Uk在与Ui共同评分方案中的平均评分。
基于方案的过滤方法是在找到方案的最近邻后,利用如下公式进行评分预测:
其中,R(S)i,j表示用户Ui对方案Sj的预测评分,表示用户对Sj所有评分的平均评分,Com_Sim(Si,S1)表示方案Sj与S1之间的组合相似度,wi,l表示用户Ui对方案S1的评分,表示方案S1在与Sj共同评分用户上的平均评分。
在对评分进行预测时,当没有对目标方案进行评分的类似用户时,则采用基于方案的过滤方法,当没有由目标用户评分的类似方案时,则采用基于用户的过滤方法。若二者均可使用,则采用组合过滤的方法,公式如下:
例:本实施例的分析数据来自丹东某传感器制造公司,该企业专业生产岩土工程测量钢弦式系列传感器,为了提高企业的销售能力,满足消费者的个性化需求,提出了为用户提供个性化方案的推荐。通过整理以往用户购买记录,本实施例选取10个具有代表性的方案进行分析,这10个方案分别是钢筋应力计系列(S1)、表面应变计系列(S2)、表面应力计系列(S3)、压力盒系列(S4)、荷载计系列(S5)、位移计系列(S6)、温度测量仪系列(S7)、锚杆测力计系列(S8)、轴力计系列(S9)和振弦频率检测仪系列(S10)。根据企业的销售记录,选取其中10名用户的历史数据进行个性化推荐过程的分析,其中历史数据包含10名用户对方案的使用次数、评分以及评分时间。评分值为1到5之间的整数,从1到5分别表示非常不满意、比较不满意、一般、比较满意和非常满意。以用户U1为例,该用户曾使用过方案S1、S4、S6,现从方案S2、S3、S5、S7、S8、S9、S10中为用户U1推荐最合适的方案,推荐过程如下:
1、根据用户-方案的偏好矩阵,计算原始的用户间偏好相似度和方案间偏好相似度,对应的偏好矩阵如表5、表6所示。
表5用户间偏好相似度
表6方案间偏好相似度
2、根据用户-方案偏好矩阵,计算用户间和方案间的信任度,取直接信任度系数φ=0.8,再利用公式计算即可得到基于信任度的偏好相似度矩阵,如表7、表8所示。
表7融合信任度的用户间偏好相似度
表8融合信任度的方案间偏好相似度
3、根据用户评分矩阵,同时取时间遗忘系数α=0.5,利用公式计算可得基于时间遗忘权重的评分相似度矩阵,如表9、表10所示。
表9融合时间遗忘函数的用户间评分相似度
表10融合时间遗忘函数的方案间评分相似度
4、将用户间和方案间的偏好相似度和评分相似度进行组合,利用公式计算可得用户间和方案间的组合相似度矩阵,如表11、表12所示。
表11用户间组合相似度
表12方案间组合相似度
5、在本案例中取用户的最近邻数为3,根据用户间组合相似度,可以得到与用户U1相似度最高的三名用户,分别为U5、U10、U8。计算预测U1对未使用过的方案S2、S3、S5、S7、S8、S9、S10的评分,如表13所示。预测评分最高的前三个方案分别是S3、S7和S5,因此为目标用户U1推荐方案S3、S7和S5。
表13预测评分矩阵
为验证该推荐算法的有效性,本文采用平均绝对误差作为评价标准,将该算法与其他协同过滤算法进行了对比。平均绝对误差(MAE)常被用来评估推荐系统的性能,通过计算系统预测评分与用户实际评分间的平均绝对偏差来衡量推荐系统的准确性。平均绝对误差值越小,推荐系统的准确性越高。设用户实际评分集为R′={R′1,R′2,…,R′n},系统预测评分集为R={R1,R2,…,Rn},MAE的计算公式为:
本文将信任度系数φ设定为0.8,将遗忘系数α设定为0.2,同时将方案近邻数L设定为5,将本文算法与以下几种算法进行比较,如图2所示。
从图2可以看出,本文所提出的推荐算法与其他算法相比,在不同数量的邻居集下均有较小的MAE值,具有良好的推荐效果。可见,在计算相似度时,同时考虑信任度与时间遗忘权重可以更准确得把握用户兴趣的变化,并能够显著提高预测的准确性。
本发明在传统协同过滤算法的基础上,提出了基于信任度与时间遗忘的个性化产品服务系统推荐算法。根据用户的历史记录,分别计算偏好相似度与评分相似度,并在计算偏好相似度时引入信任因素,在计算评分相似度时引入时间因素。此外,本发明还通过进一步计算用户间和方案间的组合相似度来提高评分预测的准确性,有助于找到最佳的推荐方案。通过对某传感器企业进行了个性化推荐过程的分析,并与基于用户的传统协同过滤算法进行比较,根据实验结果可以看出,本文的算法较其他算法具有更高的精度和更好的推荐效果。
本发明在以往研究基础上,引入信任因素与时间因素,更加全面地考虑了系统的内在关系,弥补了仅考虑某一因素而带来的不足。同时,本发明既考虑了用户间的组合相似度,又考虑了方案间的组合相似度,所以即使缺少某个相似度仍可进行评分预测,极大地缓解了数据稀疏性和冷启动问题。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:一种基于混合注意力网络的群组推荐方法