CN109933720B - 一种基于用户兴趣自适应演化的动态推荐方法 - Google Patents

一种基于用户兴趣自适应演化的动态推荐方法 Download PDF

Info

Publication number
CN109933720B
CN109933720B CN201910094527.8A CN201910094527A CN109933720B CN 109933720 B CN109933720 B CN 109933720B CN 201910094527 A CN201910094527 A CN 201910094527A CN 109933720 B CN109933720 B CN 109933720B
Authority
CN
China
Prior art keywords
user
interest
recommended
users
comment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910094527.8A
Other languages
English (en)
Other versions
CN109933720A (zh
Inventor
陈棣成
姜大志
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shantou University
Original Assignee
Shantou University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shantou University filed Critical Shantou University
Priority to CN201910094527.8A priority Critical patent/CN109933720B/zh
Publication of CN109933720A publication Critical patent/CN109933720A/zh
Application granted granted Critical
Publication of CN109933720B publication Critical patent/CN109933720B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种基于用户兴趣自适应演化的动态推荐方法,先建立每个用户的用户兴趣模型,再按照时序顺序,将用户兴趣向量进行切分,计算用户之间的相似度,筛选出若干个待推荐用户,充分考虑了用户兴趣随时间变化这一特点;然后基于目标用户和待推荐用户的历史评论记录,构建历史兴趣序列矩阵His,并以此得到归一化的兴趣得分矩阵,通过PSO算法进行预设次数的兴趣演化迭代,得到目标用户与所述待推荐用户集中各用户的推荐优先级排序,最终从将待推荐用户集中筛选出的排名靠前用户,推荐给目标用户。采用本发明技术方案,在控制推荐结果稳定性的同时,对用户兴趣变化进行合理的模拟,增大推荐的准确性、预测性和全面性。

Description

一种基于用户兴趣自适应演化的动态推荐方法
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于用户兴趣自适应演化的动态推荐方法。
背景技术
推荐系统将搜索引擎被动的模式转到主动向用户推送信息的模式,同时也为用户提供不一样的、便捷舒适的体验及有效的信息。目前大多数的推荐模型都倾向于向用户推荐符合其兴趣偏好或需求的资源,如网页、电影、商品、标签等。由于每个平台的推荐系统都是根据各自平台的特点进行设计,它们在推荐对象和目的上都存在着很大的区别,因此,需要针对问答社交网络的实际情况和特点,设计适合的好友推荐的算法。
目前使用最多的推荐算法是:通过用户网上的历史信息和用户与用户之间的兴趣相似性为主导,为用户提供个性化的推荐。但是在现实生活中,每个用户的兴趣都在变化,或增或减或转移。以用户与用户之间的兴趣相似性为主导的推荐系统很少考虑用户兴趣时序性,忽略了推荐主体的兴趣变化,导致推荐用户时存在一些盲点或错误点,降低推荐的精确性。譬如当前和你具有相同兴趣A的人,因为某种原因使得他对兴趣A的热度随时间不断下降,但现有的推荐方法对其的推荐优先级还是高级,使得推荐精确性的下降。
发明内容
本发明实施例提出一种基于用户兴趣自适应演化的动态推荐方法,考虑了用户兴趣性演化模拟,提高推荐的准确性和全面性。
本发明实施例提供一种基于用户兴趣自适应演化的动态推荐方法,包括:
获取所有用户对评论对象的若干个评论,并结合评论对象的类别和每个评论的问题标签,建立每个用户的用户兴趣模型;所述用户兴趣模型由用户对各个评论对象类别的用户兴趣向量组成;
对所有用户的用户兴趣模型中的用户兴趣向量,按照时序进行排序,并按排序后的顺序等分切分为K组,得到每个用户的组用户兴趣向量;K为正整数;
根据各用户的K组用户兴趣向量,计算目标用户与其他用户之间兴趣相似度,并根据计算结果筛选出若干个待推荐用户,组成待推荐用户集;
根据目标用户和所述待推荐用户集对所述评论对象在预设周期内的历史评论记录,构建历史兴趣序列矩阵His;所述历史兴趣序列矩阵His中的兴趣向量按照所述预设周期的时序进行排序;
根据所述历史兴趣序列矩阵His,计算归一化的兴趣得分矩阵
Figure GDA0003987870820000021
将所述兴趣得分矩阵
Figure GDA0003987870820000022
作为PSO算法的位置矩阵,并通过PSO算法进行预设次数的兴趣演化迭代,得到所述目标用户与所述待推荐用户集中各用户的推荐优先级排序;
根据所述推荐优先级排序,将所述待推荐用户集中的用户推荐给所述目标用户;;
所述获取所有用户对评论对象的若干个评论,并结合评论对象的类别和每个评论的问题标签,建立每个用户的用户兴趣模型,具体为:
获取N个用户对评论对象的m个评论;N和m均为正整数;
对每个评论的问题标签进行词库匹配和相识度匹配,将每个评论进行类别归类,使得每个评论对应一个评论对象的类别;
按照时间顺序,统计所述m个评论中问题标签回答的频数最多的评论对象类别,分析并得到所述N个用户对应的用户兴趣向量;
根据所述N个用户对应的用户兴趣向量,构建每个用户的用户兴趣模型;
所述根据目标用户和所述待推荐用户集对所述评论对象在预设周期内的历史评论记录,构建历史兴趣序列矩阵His,具体为:
将所述目标用户和所述待推荐用户集中的待推荐用户组成一个统计用户集,并根据所述统计用户集的历史评论记录,按照预设周期,统计每天所述统计用户集中各用户对所述评论对象各类别的用户兴趣向量;
将频数最高的用户兴趣向量按照时序进行排列后,构建所述历史兴趣序列矩阵His;
所述根据所述历史兴趣序列矩阵His,计算归一化的兴趣得分矩阵
Figure GDA0003987870820000033
具体为:
遍历所述历史兴趣序列矩阵His中各兴趣向量,从左到右依次统计各评论对象类别出现的个数;
根据兴趣向量出现的时序,为每个兴趣向量配置一个得分权重,并计算每个用户的各评论对象类别的得分,将所述历史兴趣序列矩阵His中每行用户的得分进行归一化后,得到所述兴趣得分矩阵
Figure GDA0003987870820000034
所述将所述兴趣得分矩阵
Figure GDA0003987870820000035
作为PSO算法的位置矩阵,并通过PSO算法进行预设次数的兴趣演化迭代,具体为:
在所述兴趣得分矩阵
Figure GDA0003987870820000036
中,选取一个评论对象类别作为目标评论对象类别,并将所述目标评论对象类别作为所述PSO算法的位置矩阵,将目标用户设置为Xtaget;将目标用户所在位置定义为Xtaget=(x1,x2)=(Xtagetx,Xtagety);
则所述PSO算法的自身最优位置p_best由以下公式得出:
Figure GDA0003987870820000031
Figure GDA0003987870820000032
其中,p_best的位置为(p_bestix,p_bestiy),下标i为第i个用户;
通过PSO算法预设次数的兴趣演化迭代,并在每次迭代后更新所述目标用户和待推荐用户集中各用户的更新速度和当前位置;
每当用户的位置发生更新后,比较所述目标用户和所述待推荐用户集中的各用户的位置,将满足预设推荐条件的待推荐用户进行排序,得到所述推荐优先级排序。
进一步的,所述在每次迭代后更新所述目标用户和待推荐用户集中各用户的更新速度和当前位置,具体为:
按照以下公式更新目标用户的速度和当前位置:
Figure GDA0003987870820000041
Figure GDA0003987870820000042
其中,
Figure GDA0003987870820000043
目标用户在t+1时刻的速度为(Vtagetx(t+1),Vtagety(t+1));
目标用户在t时刻的速度为(Vtagetx(t),Vtagety(t));
目标用户的自身最优位置为(p_besttagetx,p_besttagety);
Cox、Coy为惯性因子,C1x、C1y为动机因子;
按照以下公式更新待推荐用户集中各用户的速度和当前位置:
Figure GDA0003987870820000044
Figure GDA0003987870820000045
其中,
Figure GDA0003987870820000051
待推荐用户集中第i个用户在时刻t的速度为(Vix(t),Viy(t));
待推荐用户集的全局极值为q_best;
dox、doy为惯性因子,d1x、d1y、d2x、d2y为动机因子。
进一步的,所述预设推荐条件具体为:
产生一个(0,1)随机数rn,若:
Figure GDA0003987870820000052
其中,n为第n次迭代,λ为兴趣影响因子,R为亲密度半径,distance(Xtaget,Xi)为求目标用户和第i个待推荐用户的欧式距离公式。
实施本发明实施例,具有如下有益效果:
本发明实施例提供的基于用户兴趣自适应演化的动态推荐方法,先建立每个用户的用户兴趣模型,再按照时序顺序,将用户兴趣向量进行切分,计算用户之间的相似度,筛选出若干个待推荐用户,充分考虑了用户兴趣随时间变化这一特点;然后基于目标用户和待推荐用户的历史评论记录,构建历史兴趣序列矩阵His,并以此得到归一化的兴趣得分矩阵
Figure GDA0003987870820000053
通过PSO算法进行预设次数的兴趣演化迭代,得到目标用户与所述待推荐用户集中各用户的推荐优先级排序,最终从将待推荐用户集中筛选出的排名靠前用户,推荐给目标用户。相比于现有技术没有考虑用户兴趣演化模拟,本发明技术方案在控制推荐结果稳定性的同时,对用户兴趣变化进行合理的模拟,增大推荐的准确性、预测性和全面性。
附图说明
图1是本发明提供的基于用户兴趣自适应演化的动态推荐方法的一种实施例的流程示意图;
图2是本发明提供的基于时间的用户兴趣向量特征提取流程图;
图3是本发明提供的目标用户兴趣演化的定基稳定率随时间变化折线图;
图4是本发明提供的目标用户兴趣演化的环比稳定率随机时间变化折线图;
图5是本发明提供的兴趣相似的好友占比量统计直方图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,是本发明提供的基于用户兴趣自适应演化的动态推荐方法的一种实施例的流程示意图。如图1所述,该方法包括步骤101至步骤106,各步骤具体如下:
步骤101:获取所有用户对评论对象的若干个评论,并结合评论对象的类别和每个评论的问题标签,建立每个用户的用户兴趣模型;用户兴趣模型由用户对各个评论对象类别的用户兴趣向量组成。
在本实施例中,用户兴趣成长性是指用户的兴趣随着时间变化会有一定变化,通常用户的兴趣会长时间停留在某个特定的领域上面,但是经过一定时间后,其兴趣会发生变化,代表用户在其他陌生类别上出现成长,这种成长性对演化推荐技术很有研究意义。而本发明的用户兴趣模型是根据时序变化来建立的。
在本实施例中,评论对象可以但不限于为微博、朋友圈、文章、音乐、电影等网络社交对象,只要是可供用户进行评论的载体,均属于本发明的评论对象。每个评论对象可以有多个类别,如音乐包括:摇滚、流行乐、古典乐等。用户对评论对象进行评论后,每条评论都会有相应的问题标签,从而组成每个用户对某个评论对象的某种类别的用户兴趣向量,进一步的构成用户兴趣模型。
作为本实施例的一种举例,获取所有用户对评论对象的若干个评论,并结合评论对象的类别和每个评论的问题标签,建立每个用户的用户兴趣模型,具体为:
获取N个用户对评论对象的m个评论;N和m均为正整数;对每个评论的问题标签进行词库匹配和相识度匹配,将每个评论进行类别归类,使得每个评论对应一个评论对象的类别;按照时间顺序,统计m个评论中问题标签回答的频数最多的评论对象类别,分析并得到所述N个用户对应的用户兴趣向量;根据N个用户对应的用户兴趣向量,构建每个用户的用户兴趣模型。
步骤102:对所有用户的用户兴趣模型中的用户兴趣向量,按照时序进行排序,并按排序后的顺序等分切分为K组,得到每个用户的组用户兴趣向量;K为正整数。
在本实施例中,对已建立好的用户兴趣模型进行进一步的优化,以时序为标准对各用户兴趣向量进行排序,并将每个用户的用户兴趣向量按排序后的顺序等分切分为K组,以此计算目标用户与其他用户之间的兴趣相似度。
步骤103:根据各用户的K组用户兴趣向量,计算目标用户与其他用户之间兴趣相似度,并根据计算结果筛选出若干个待推荐用户,组成待推荐用户集。
在本实施例中,可以但不限于采用余弦相似度来计算各用户之间的兴趣相似度,由于两个用户之间共有K2的用户兴趣向量,从中选取最大的前十个特征,并按照时间前后差排序,前后差最小(元素越接近主对称轴)的作为两个用户之间的相似度。根据相似度结果,可以先从所有用户中筛选出若干个待推荐用户,组成待推荐用户集,为后续的精准推荐做准备。
步骤104:根据目标用户和待推荐用户集对所述评论对象在预设周期内的历史评论记录,构建历史兴趣序列矩阵His;历史兴趣序列矩阵His中的兴趣向量按照所述预设周期的时序进行排序。
在本实施例中,步骤103具体为:将目标用户和待推荐用户集中的待推荐用户组成一个统计用户集,并根据统计用户集的历史评论记录,按照预设周期,统计每天统计用户集中各用户对评论对象各类别的用户兴趣向量;将频数最高的用户兴趣向量按照时序进行排列后,构建历史兴趣序列矩阵His。
步骤105:根据历史兴趣序列矩阵His,计算归一化的兴趣得分矩阵
Figure GDA0003987870820000081
将所述兴趣得分矩阵
Figure GDA0003987870820000082
作为PSO算法的位置矩阵,并通过PSO算法进行预设次数的兴趣演化迭代,得到目标用户与待推荐用户集中各用户的推荐优先级排序。
在本实施例中,步骤105具体为:遍历所述历史兴趣序列矩阵His中各兴趣向量,从左到右依次统计各评论对象类别出现的个数;
根据兴趣向量出现的时序,为每个兴趣向量配置一个得分权重,并计算每个用户的各评论对象类别的得分,将所述历史兴趣序列矩阵His中每行用户的得分进行归一化后,得到所述兴趣得分矩阵
Figure GDA0003987870820000083
在所述兴趣得分矩阵
Figure GDA0003987870820000084
中,选取一个评论对象类别作为目标评论对象类别,并将所述目标评论对象类别作为所述PSO算法的位置矩阵,将目标用户设置为Xtaget;将目标用户所在位置定义为Xtaget=(x1,x2)=(Xtagetx,Xtagety);
则所述PSO算法的自身最优位置p_best由以下公式得出:
Figure GDA0003987870820000085
Figure GDA0003987870820000086
其中,p_best的位置为(p_bestix,p_bestiy),下标i为第i个用户;
通过PSO算法预设次数的兴趣演化迭代,并在每次迭代后更新所述目标用户和待推荐用户集中各用户的更新速度和当前位置;
每当用户的位置发生更新后,比较所述目标用户和所述待推荐用户集中的各用户的位置,将满足预设推荐条件的待推荐用户进行排序,得到推荐优先级排序。
在每次迭代后更新所述目标用户和待推荐用户集中各用户的更新速度和当前位置,具体为:
按照以下公式更新目标用户的速度和当前位置:
Figure GDA0003987870820000091
Figure GDA0003987870820000092
其中,
Figure GDA0003987870820000093
目标用户在t+1时刻的速度为(Vtagetx(t+1),Vtagety(t+1));
目标用户在t时刻的速度为(Vtagetx(t),Vtagety(t));
目标用户的自身最优位置为(p_besttagetx,p_besttagety);
Cox、Coy为惯性因子,C1x、C1y为动机因子;
按照以下公式更新待推荐用户集中各用户的速度和当前位置:
Figure GDA0003987870820000094
Figure GDA0003987870820000095
其中,
Figure GDA0003987870820000101
待推荐用户集中第i个用户在时刻t的速度为(Vix(t),Viy(t));
待推荐用户集的全局极值为q_best;
dox、doy为惯性因子,d1x、d1y、d2x、d2y为动机因子。
在本实施例中,预设推荐条件具体为:
产生一个(0,1)随机数rn,若:
Figure GDA0003987870820000102
其中,n为第n次迭代,λ为兴趣影响因子,R为亲密度半径,distance(Xtaget,Xi)为求目标用户和第i个待推荐用户的欧式距离公式。
步骤106:根据推荐优先级排序,将推荐用户集中的用户推荐给目标用户。
为了更好的说明本发明的工作原理,以下面例子作为举例说明。为了方便说明以及实验验证其有效性,本文使用某网上用户的基本信息、用户评论过的电影及评论内容、赞同数等。数据集描述如下,电影类别涉及喜剧、言情片、惊悚片,科幻片四个主题,有515个用户,其好友作为子用户,1000个电影评论。训练集和测试集按80:20的比例随机划分,使用三次交叉校验,详细如下表1。
Figure GDA0003987870820000103
表1:数据集描述
根据采集到的数据进行用户兴趣建模,就是针对每个用户U所评论过的m个电影进行类别的统计,其中每个评论会有N个标签,因此针对用户U进行以下计算:
(1)获取用户U的m个评论,得到评论列表;
(2)利用图二电影类别建模的方法,对所有问题标签进行建模;
(3)得到用户U的m个问题兴趣类型序列,即代表用户的兴趣序列。
然后对每个用户抽取其回答过的m个问题,通过话题建模得到问题标签,在对其进行统计,即可获得每个用户的兴趣成长性。以时序为标准,统计每个用户最近若干天以来评论过的电影,并对应抽取每一天回答的频数最大的电影类型。将电影的这四个类别确定为一个四个主题的思维向量(可按照评论对象的类别设置多个主题),每个问题标签确定为对应的主题后,变对该标签所属的维度加一,最后再对问题的兴趣向量进行归一化处理,使四个维度的概率加起来为1。
每个用户U会从W天中每天随机抽取一个问题,就得到W个问题,在考虑时序时,将W个问题进行N切分,即把M个问题切成N组,转化为N个兴趣向量。获取N个兴趣向量后,计算N个兴趣向量之间的相似度,具体算法如下:
(1)对每一个用户,按照上述中的方法对用户兴趣建模。对按时序排序的兴趣向量进行N等分切分,分别计算用户跟其他所有用户之间相似度;
(2)在各相似度中,提取其中最大的前十个个相似度,使用时间差进行排序,提取最大的作为相似度特征,回到步骤2循环,直到所有用户计算完毕;
(3)对(2)中提取到相似度特征,筛选目标用户最相似top-10个用户作为待推荐用户,组成待推荐用户集。
在得到待推荐集后,本发明采用自适应粒子群演化算法(particle swarmoptimization,简称PSO)实现用户兴趣变化的模拟,具体如步骤21~23所示:
21、先选取某一个关心的兴趣类别Ychooose=choose,choose∈{1,2,3,4};
22、根据每个用户的最近15天中,每天评论频数最大的频数电影类别作为那一天的兴趣序列,最后组成历史兴趣序列矩阵His;
Figure GDA0003987870820000121
其中,N为总用户数,表示第i个人第j天兴趣类别;天数或矩阵的长度可以根据不同的情况进行设置。
23、根据历史兴趣序列矩阵His,计算归一化的兴趣得分矩阵
Figure GDA0003987870820000122
具体为:遍历每个用户的最近15个历史兴趣序列,从左到右依次统计出现的各个兴趣类别的个数,与此同时,每当计数时都要考虑时间新旧评论,越新的兴趣(越靠后出现的兴趣类别)在统计时会得更高的分数,则可以根据出现的时序,为每一个兴趣向量配置一个得分权重,以提高计算的准确性。例如第i个用户15天的历史兴趣序列为[1,4,2,4,2,2,2,3,1,2,2,4,4,1,2],则该用户对兴趣类别Ym,m=1,2,3,4的得分为
Figure GDA0003987870820000123
只有当yik==Ym时,才对当前的k进行累加。所以该用户i最后的得分是:
[1+9+14,3+5+6+7+10+11+15,8,2+4+12+13]=[24,57,8,31]。把每个用户各个类别的计数情况组合得到Score矩阵,最后将Score每行(每个用户)进行归一化得到矩阵。
选取矩阵
Figure GDA0003987870820000124
的第Ychooose列与第4列(目标兴趣类别与其他兴趣)作为初始化的PSO算法的位置矩阵X,并从中随机选取一个用户Xtaget成为目标用户;速度矩阵V也是通过
Figure GDA0003987870820000125
作为参考,该兴趣类别占比越大,对应该方向上的初始速度也会大概率地比较大。
由于目标用户对其他所有用户都会有若多若少的影响,PSO的群体最优位置g_best需要进行自适应变种,定义目标用户当前所在位置Xtaget=(x1,x2)=(Xtagetx,Xtagety)。由于“用户初始的兴趣强烈程度将会影响也会影响其兴趣变化,每个用户i自身的最优值(假设最终自己能到达的位置)受初始所在位置影响,开始对某类无兴趣,将会大概率一直无兴趣。开始兴趣浓厚,将大概率一直浓厚下去。开始兴趣一般,将会发生比较大的抖动,兴趣随机增减。”,PSO中自身最优位置p_best需进行自适应变种,按照如下公式随机产生:
Figure GDA0003987870820000131
Figure GDA0003987870820000132
粒子群优化算法PSO首先初始化为一群粒子,然后通过迭代找到最优解。在每一次迭代中,粒子通过跟踪两个"极值"来更新自己的位置。第一个就是粒子本身所找到的最优解,这个解叫做个体极值p_besti。另一个极值是整个种群目前找到的最优解,这个极值是全局极值q_best。在找到这两个最优值时,粒子根据如下的公式来更新自己的速度和新的位置。考虑到目标用户target自身也有自己兴趣的变化,目标点更新公式与其他普通的点更新公式存在差异,所以第一步需要对更新公式进行自适应变种,目标用户的更新速度与更新当前位置公式如下:
Figure GDA0003987870820000133
Figure GDA0003987870820000134
其中,
Figure GDA0003987870820000141
目标用户在t+1时刻的速度为(Vtagetx(t+1),Vtagetx(t+1));
目标用户在t时刻的速度为(Vtagety(t),Vtagety(t));
目标用户的自身最优位置为(p_besttagety,p_besttagety);
为了控制飞行部长,Cox、Coy为惯性因子,C1x、C1y为动机因子。
上述为目标用户的x轴方向的速度与位置的更新表达式。目标用户下一刻t+1的速度只受原来t时刻的速度与自身达到过最大值位置的方向向量影响,目标用户下一刻t+1的位置只受原来t时刻的位置与下一刻t+1的速度影响。同理,目标用户的y轴方向的速度与位置的更新表达式中,目标用户下一刻t+1的速度只受原来t时刻的速度与自身达到过最大值位置的影响,目标用户下一刻t+1的位置只受原来t时刻的位置与下一刻t+1的速度影响。
同理,普通用户(区别于目标用户的其他用户)更新公式按原PSO算法定义:
Figure GDA0003987870820000142
Figure GDA0003987870820000143
其中,
Figure GDA0003987870820000144
待推荐用户集中第i个用户在时刻t的速度为(Vix(t),Viy(t));
待推荐用户集的全局极值为q_best;
dox、doy为惯性因子,d1x、d1y、d2x、d2y为动机因子。
每当粒子位置更新后,系统会把一些符合条件的a推荐给b并成为好友(b与a连线),其中b是目标用户。推荐规则表述如下,产生一个(0,1)随机数rn,若:
Figure GDA0003987870820000151
其中,n为第n次迭代,λ为兴趣影响因子,R为亲密度半径,distance(Xtaget,Xi)为求目标用户和第i个待推荐用户的欧式距离公式。
最后,基于演化排序的算法总体描述如下:
(1)选择目标用户并初始化目标用户及其好友;
(2)进行一次变种PSO算法进行兴趣演化迭代;
(3)判定目标用户演化后的好友,并连线;
(4)重复步骤(2)(3)直到迭代最大次数为止;
(5)最终得到优化后的优先级排序{A0∩At,A0-At,At-A0},其中At为最终代目标用户的好友集合,A0为原始目标用户的真实好友集合。
为了验证本发明的推荐方法,随机选取了目标用户进行测试,并按经验初始化一些参数的值。为了证明演化过程可以在好友列表稳定性的前提下挖掘潜在推荐人的能力,每个目标用户在演化过程中统一参数指标。每个目标用户选取其好友列表的Top18位好友(以兴趣相关性为基准在目标用户所属聚类中寻找)进行初始连线,并随机选取50个噪点用户(与目标用户为陌生人关系)进行200个周期的演化。最后,设Ai为第i代目标用户的好友集合,|A|为求A集合的元素个数。因为演化带来了推荐系统推荐结果的不确定性,所以稳定性指标公式定义如下:
环比稳定率:
Figure GDA0003987870820000161
定基稳定率:
Figure GDA0003987870820000162
推荐优先集排序定义为:{A0∩At,A0-At,At-A0},其中t为迭代总次数。虽然本变种演化算法没有直接的优化函数,但潜在好友集合At-A0是本算法的一个重要指标。我们在不失好友列表稳定性的前提下,要尽可能得到其极大值,因此这也是演化的隐性目标函数。实验数据如表2所示:
Figure GDA0003987870820000163
表2:目标用户A的最终代粒子好友与初代粒子好友的变化比较
新朋友At-A0={29,5,44,45,46,47}是那些原来不在好友名单里,但经过时间推移后与你结交的朋友,推荐优先级应该设为较高,他们是你的潜在好友。旧朋友A0∩At={1,3,4,16,28,31,2,33,37,38,40,42}是那些原来在好友名单里,经过时间推移后依然还是你的好友,推荐优先级应该设为最高,他们是你挚友,或者是与你趣味相投的人。相反,熟悉的陌生人A0-At={7,15,21,27,34,43}是那些原来在好友名单里,经过时间推移后不再是你的好友,推荐优先级应该设为低,他们随着时间流逝,渐渐远去。最后的优化后的推荐为:
{A0∩At,A0-At,At-A0}=[1,3,4,16,28,31,2,33,37,38,40,42,7,15,21,27,34,43,29,5,44,45,46,47]。
稳定性指标环比稳定率和定基稳定率如图3和4。从图3看出,接近50代后定基稳定率收敛到0.77,定基稳定率平均值大于0.8的基线。环比稳定率在100代后收敛到1.0,定基稳定率平均值大于0.8的基线。综上所述,该自适应变种PSO算法对目标用户兴趣变化的过程模拟得比较好,在不失好友列表稳定性的前提下具有很好的挖掘潜在推荐人的能力。
进一步的,对上述演化模型的参数进行优化,可进一步提高推荐的准确性。参数分别为:亲密度半径R,迭代次数(运行周期)T,噪点用户数U1,兴趣影响因子λ和连线数(推荐好友数)L。本举例采用一个变种EM算法来实现亲密度半径R,迭代次数(运行周期)T的参数优化。主要思想是反复控制变量,使其从局部最优中找到全局最优。EM算法需要一个目标损失函数,这里我们先定义了4个子损失函数如下:
Figure GDA0003987870820000171
Figure GDA0003987870820000172
Figure GDA0003987870820000173
Figure GDA0003987870820000174
Loss_pea(t),Loss_cos(t),Loss_lfm(t),Loss_dis(t)是以不同的相似度核作为距离函数的损失函数,分别是皮尔森核,余弦核,LFM核,欧式核。其中t为当前迭代次数,n为总用户数(n=U1+L),
Figure GDA0003987870820000181
为集合B中最大的前L个元素所组成的集合,|At∩A0|为原好友列表真实用户与演化第t代后的好友列表用户的共同用户数,
Figure GDA0003987870820000182
为定基稳定度。因此最终目标损失函数为:
Figure GDA0003987870820000183
其中,
Figure GDA0003987870820000184
S1为稳定度最大容忍阈值,设为0.7,
Figure GDA0003987870820000185
为集合B中第一个非0的元素。最终目标损失函数定义的主要思想是,在每个核不失稳定性的情况下(小于S1),尽可能得到较大的运行周期T,换句话说,在保证好友列表变化不大的情况下,尽可能多地进行迭代,预测出更多的潜在好友,即隐性优化函数|At-A0|得到极大值。
在开始变种EM前,需要先确定噪点用户U1,连线数L与兴趣影响因子λ。对于λ,可以通过对知乎用户数据集进行一些简单的统计获得。如图5,兴趣相似的好友占比量统计直方图,横坐标为占比等级,
Figure GDA0003987870820000186
纵坐标为具有该占比的用户数量。可以看出,数据集分布相似于正态分布,其中等级7中,有最多的用户数,即很多用户的好友列表中,具有和其趣味相投的好友占总好友数的百分比大约在区间[0.6,07]内。所以,我们取[0.6,0.7]的期望值0.65作为兴趣影响因子λ。值得注意的是,在等级3中,也有不少的用户,说明能成为好友的不一定是趣味相投的,还可能有别的联系或影响因子,本文不作讨论。对于连线数L,我们直接用目标用户的真实好友数作为连线数,U1定义为:
Figure GDA0003987870820000187
在保证干扰用户(干扰项)占70%的前提下,即真实好友占总数的30%的假设下,可以得到
Figure GDA0003987870820000188
我们固定
Figure GDA0003987870820000191
通过变种EM算法找到最优的亲密度半径R和迭代次数(运行周期)T。第一步E,我们初始化一个合理的R0=0.15,在数据集中随机挑选15个用户(每个关注的兴趣类别4个)分别最大化目标损失函数
Figure GDA0003987870820000192
直到第23代,发现Ti与Ri基本无多大变化,过程如下表3。我们假设
Figure GDA0003987870820000193
是随机变量且各自服从某个正态分布,对随机变量
Figure GDA0003987870820000194
的23次随机抽样,属于少样本量情况,在概率论和统计学中,学生t-分布(t-distribution),可简称为t分布,用于根据小样本来估计呈正态分布且方差未知的总体的均值μ,其t统计量为:
Figure GDA0003987870820000195
其中E(xi)为随机变量的数学期望,S(xi)为随机变量x的样本标准差。对于一个给定的置信因子α,0<α<1,总有:
Figure GDA0003987870820000196
最后可得区间估计:
Figure GDA0003987870820000197
根据上述公式代入数据得,
Figure GDA0003987870820000198
最后,得到变种EM算法优化后的参数列表3
Figure GDA0003987870820000199
表3变种EM算法优化后的参数
由上可见,本发明具有以下有益效果:
(1)现有对用户兴趣时序变化性的建模,都是比较复杂的,如隐马尔科夫模型,高斯混合模型等。本专利运用的是多项交叉顺序建模,优势在于简单快速有效;
(2)现有技术很少考虑用户兴趣性演化模拟,因为这样会增加的计算复杂度的同时会使得推荐结果不确定,本发明在控制推荐结果的稳定性同时,对用户兴趣变化进行合理的模拟,增大推荐的准确性,预测性和全面性。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

Claims (3)

1.一种基于用户兴趣自适应演化的动态推荐方法,其特征在于,包括:
获取所有用户对评论对象的若干个评论,并结合评论对象的类别和每个评论的问题标签,建立每个用户的用户兴趣模型;所述用户兴趣模型由用户对各个评论对象类别的用户兴趣向量组成;
对所有用户的用户兴趣模型中的用户兴趣向量,按照时序进行排序,并按排序后的顺序等分切分为K组,得到每个用户的组用户兴趣向量;K为正整数;
根据各用户的K组用户兴趣向量,计算目标用户与其他用户之间兴趣相似度,并根据计算结果筛选出若干个待推荐用户,组成待推荐用户集;
根据目标用户和所述待推荐用户集对所述评论对象在预设周期内的历史评论记录,构建历史兴趣序列矩阵His;所述历史兴趣序列矩阵His中的兴趣向量按照所述预设周期的时序进行排序;
根据所述历史兴趣序列矩阵His,计算归一化的兴趣得分矩阵
Figure FDA0003987870810000011
将所述兴趣得分矩阵
Figure FDA0003987870810000012
作为PSO算法的位置矩阵,并通过PSO算法进行预设次数的兴趣演化迭代,得到所述目标用户与所述待推荐用户集中各用户的推荐优先级排序;
根据所述推荐优先级排序,将所述待推荐用户集中的用户推荐给所述目标用户;
所述获取所有用户对评论对象的若干个评论,并结合评论对象的类别和每个评论的问题标签,建立每个用户的用户兴趣模型,具体为:
获取N个用户对评论对象的m个评论;N和m均为正整数;
对每个评论的问题标签进行词库匹配和相识度匹配,将每个评论进行类别归类,使得每个评论对应一个评论对象的类别;
按照时间顺序,统计所述m个评论中问题标签回答的频数最多的评论对象类别,分析并得到所述N个用户对应的用户兴趣向量;
根据所述N个用户对应的用户兴趣向量,构建每个用户的用户兴趣模型;
所述根据目标用户和所述待推荐用户集对所述评论对象在预设周期内的历史评论记录,构建历史兴趣序列矩阵His,具体为:
将所述目标用户和所述待推荐用户集中的待推荐用户组成一个统计用户集,并根据所述统计用户集的历史评论记录,按照预设周期,统计每天所述统计用户集中各用户对所述评论对象各类别的用户兴趣向量;
将频数最高的用户兴趣向量按照时序进行排列后,构建所述历史兴趣序列矩阵His;
所述根据所述历史兴趣序列矩阵His,计算归一化的兴趣得分矩阵
Figure FDA0003987870810000021
具体为:
遍历所述历史兴趣序列矩阵His中各兴趣向量,从左到右依次统计各评论对象类别出现的个数;
根据兴趣向量出现的时序,为每个兴趣向量配置一个得分权重,并计算每个用户的各评论对象类别的得分,将所述历史兴趣序列矩阵His中每行用户的得分进行归一化后,得到所述兴趣得分矩阵
Figure FDA0003987870810000022
所述将所述兴趣得分矩阵
Figure FDA0003987870810000023
作为PSO算法的位置矩阵,并通过PSO算法进行预设次数的兴趣演化迭代,具体为:
在所述兴趣得分矩阵
Figure FDA0003987870810000024
中,选取一个评论对象类别作为目标评论对象类别,并将所述目标评论对象类别作为所述PSO算法的位置矩阵,将目标用户设置为Xtaget;将目标用户所在位置定义为Xtaget=(x1,x2)=(Xtagetx,Xtagety);
则所述PSO算法的自身最优位置p_best由以下公式得出:
Figure FDA0003987870810000025
Figure FDA0003987870810000026
其中,p_best的位置为(p_bestix,p_bestiy),下标i为第i个用户;
通过PSO算法预设次数的兴趣演化迭代,并在每次迭代后更新所述目标用户和待推荐用户集中各用户的更新速度和当前位置;
每当用户的位置发生更新后,比较所述目标用户和所述待推荐用户集中的各用户的位置,将满足预设推荐条件的待推荐用户进行排序,得到所述推荐优先级排序。
2.根据权利要求1所述的基于用户兴趣自适应演化的动态推荐方法,其特征在于,所述在每次迭代后更新所述目标用户和待推荐用户集中各用户的更新速度和当前位置,具体为:
按照以下公式更新目标用户的速度和当前位置:
Figure FDA0003987870810000031
Figure FDA0003987870810000032
其中,
Figure FDA0003987870810000033
目标用户在t+1时刻的速度为(Vtagetx(t+1),Vtagety(t+1));
目标用户在t时刻的速度为(Vtagetx(t),Vtagetx(t));
目标用户的自身最优位置为(p_besttagetx,p_besttagety);
Cox、Coy为惯性因子,C1x、C1y为动机因子;
按照以下公式更新待推荐用户集中各用户的速度和当前位置:
Figure FDA0003987870810000041
Figure FDA0003987870810000042
其中,
Figure FDA0003987870810000043
待推荐用户集中第i个用户在时刻t的速度为(Vix(t),Viy(t));
dox、doy为惯性因子,d1x、d1y、d2x、d2y为动机因子。
3.根据权利要求2所述的基于用户兴趣自适应演化的动态推荐方法,其特征在于,所述预设推荐条件具体为:
产生一个(0,1)随机数rn,若:
Figure FDA0003987870810000044
其中,n为第n次迭代,λ为兴趣影响因子,R为亲密度半径,distance(Xtaget,Xi)为求目标用户和第i个待推荐用户的欧式距离公式。
CN201910094527.8A 2019-01-29 2019-01-29 一种基于用户兴趣自适应演化的动态推荐方法 Active CN109933720B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910094527.8A CN109933720B (zh) 2019-01-29 2019-01-29 一种基于用户兴趣自适应演化的动态推荐方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910094527.8A CN109933720B (zh) 2019-01-29 2019-01-29 一种基于用户兴趣自适应演化的动态推荐方法

Publications (2)

Publication Number Publication Date
CN109933720A CN109933720A (zh) 2019-06-25
CN109933720B true CN109933720B (zh) 2023-03-10

Family

ID=66985361

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910094527.8A Active CN109933720B (zh) 2019-01-29 2019-01-29 一种基于用户兴趣自适应演化的动态推荐方法

Country Status (1)

Country Link
CN (1) CN109933720B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110851718B (zh) * 2019-11-11 2022-06-28 重庆邮电大学 一种基于长短时记忆网络以及用户评论的电影推荐方法
CN111258593B (zh) * 2020-01-08 2023-10-27 恒安嘉新(北京)科技股份公司 应用程序预测模型的建立方法、装置、存储介质及终端
CN113065060B (zh) * 2021-02-18 2022-11-29 山东师范大学 基于深度学习的教育平台课程推荐方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104281956A (zh) * 2014-10-27 2015-01-14 南京信息工程大学 基于时间信息的适应用户兴趣变化的动态推荐方法
CN106296337A (zh) * 2016-07-13 2017-01-04 扬州大学 基于非负矩阵分解的动态推荐方法
CN107562947A (zh) * 2017-09-26 2018-01-09 宿州学院 一种移动时空感知下动态即时推荐服务模型建立方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108256093B (zh) * 2018-01-29 2020-06-19 华南理工大学 一种基于用户多兴趣及兴趣变化的协同过滤推荐算法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104281956A (zh) * 2014-10-27 2015-01-14 南京信息工程大学 基于时间信息的适应用户兴趣变化的动态推荐方法
CN106296337A (zh) * 2016-07-13 2017-01-04 扬州大学 基于非负矩阵分解的动态推荐方法
CN107562947A (zh) * 2017-09-26 2018-01-09 宿州学院 一种移动时空感知下动态即时推荐服务模型建立方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Deep interest evolution network for click-through rate predition;Guorui Zhou等;《http://arxiv.org/pdf/1809.03672.pdf》;20121231;1-9 *
用户兴趣变化下的协同过滤最优推荐仿真;邓娟;《计算机仿真》;20160815(第08期);416-419 *

Also Published As

Publication number Publication date
CN109933720A (zh) 2019-06-25

Similar Documents

Publication Publication Date Title
Kulkarni et al. Context Aware Recommendation Systems: A review of the state of the art techniques
US20210004682A1 (en) Adapting a sequence model for use in predicting future device interactions with a computing system
Ma et al. Hierarchical taxonomy aware network embedding
CN109933720B (zh) 一种基于用户兴趣自适应演化的动态推荐方法
Zou et al. Reinforcement learning to diversify top-n recommendation
Agarwal et al. Trust-enhanced recommendation of friends in web based social networks using genetic algorithms to learn user preferences
Guo et al. Social trust aware item recommendation for implicit feedback
CN115688024A (zh) 基于用户内容特征和行为特征的网络异常用户预测方法
Xie et al. Sequential recommendation on dynamic heterogeneous information network
CN113918834A (zh) 融合社交关系的图卷积协同过滤推荐方法
CN114218457B (zh) 一种基于转发社交媒体用户表征的假新闻检测方法
Duan et al. A hybrid intelligent service recommendation by latent semantics and explicit ratings
CN109684561B (zh) 基于用户签到行为变化的深层语义分析的兴趣点推荐方法
Parimi et al. Community detection on large graph datasets for recommender systems
Biswal et al. Music recommender system using restricted Boltzmann machine with implicit feedback
Asim et al. Predicting influential blogger’s by a novel, hybrid and optimized case based reasoning approach with balanced random forest using imbalanced data
Chen et al. Poverty/investment slow distribution effect analysis based on Hopfield neural network
Hain et al. The promises of Machine Learning and Big Data in entrepreneurship research
CN109344319B (zh) 一种基于集成学习的线上内容热度预测方法
Wang et al. Multi‐feedback Pairwise Ranking via Adversarial Training for Recommender
Ohama et al. An extension of the infinite relational model incorporating interaction between objects
Wai et al. Ontology based web page classification system by using enhanced C4. 5 and Naïve Bayesian classifiers
Jain et al. A hybrid bio-inspired computing approach for buzz detection in social media
Qader et al. Dual-stage social friend recommendation system based on user interests
Kumar et al. A Recommendation System & Their Performance Metrics using several ML Algorithms

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant