一种基于弱连接的惊喜度推荐方法与流程

文档序号:17930907发布日期:2019-06-15 00:51阅读:375来源:国知局
一种基于弱连接的惊喜度推荐方法与流程

本发明涉及社区网络及推荐领域,尤其涉及一种基于弱连接的惊喜度推荐方法。



背景技术:

现有推荐系统通过学习用户的历史行为,向用户推荐与其曾购产品相似度较高的其它产品,来达到提高推荐精度的目标。这种推荐方式加重了产品的长尾效应、缩小了用户视野、降低了部分用户对推荐系统的满意度。本专利针对上述问题,利用弱连接理论来发现与用户相关但重叠度低的候选用户,从这些用户所购产品中选择惊喜度较高的进行推荐,并提出弹性惊喜度的概念来满足不同用户对惊喜度的接受程度。本专利能够提供与用户相关、但又不局限于用户历史行为的推荐,并且根据用户对惊喜度的需求弹性调整推荐惊喜度以达到惊喜度和准确度的动态平衡。

在相关技术中,推荐系统使用的算法大致分为三类:协同过滤推荐、基于内容的推荐和混合推荐,流程如图1所示。可见,现有的推荐方法通常采用推荐准确率作为主要的度量指标,目前已在这一指标上取得良好的性能。但是,仅以准确率作为度量指标会带来两个问题:1.对用户来说,长期向用户推荐与其购买历史相似度高的产品可能会缩小用户视野、增加用户对推荐系统的厌倦感;2.对平台来说,对热门产品的推荐虽然能提高推荐准确率,但是却会加重多数产品的长尾效应。



技术实现要素:

本发明公开了一种基于弱连接的惊喜度推荐方法,其解决传统推荐方法中存在的长尾效应,不利于拓展用户视野的技术问题。

本发明的技术方案为:

一种基于弱连接的惊喜度推荐方法,其特征在于,包括如下步骤:

步骤一、构建用户-产品网络图,通过用户-产品交互的历史数据和产品属性数据,构造加权有向的用户-产品网络图,权值代表用户之间的相似程度、产品之间的相似程度、用户-产品的关联程度;

步骤二、确定用户-产品、产品-产品和用户-用户的关联系数,在步骤一实现的用户-产品网络图中,采用johnsonmax算法更新权值,最终使用关联系数表示权值;

步骤三、计算用户、产品的弹性系数,通过用户相关产品的多样性和产品相关用户的多样性来确定所述弹性系数;

步骤四、基于用户-产品网络图和弹性系数生成推荐模型,并完成参数训练。

优选的,在步骤一中,权值w的计算公式如下:

其中,u表示用户,p(u)表示和用户u相关的产品集合,p表示产品,u(p)表示和产品p相关的用户集合,g(p)代表产品p的类别,sim(g1,g2)代表类别g1、g2的相似度,ω代表类别相似度的权值,rating(u,p)表示用户u对产品p的评分,avg(u)表示用户所给出的平均评分,avg(p)表示产品p获得的平均评分,w表示权值,w越大,即认为用户之间的相似程度、产品之间的相似程度、用户-产品之间的关联程度越大。

优选的,在步骤二中,johnsonmax算法包括如下步骤:

a.预处理,将步骤一中构建的用户-产品网络图w存储在矩阵m中;

b.对用户-产品网络图w中的每一个节点nodei,计算单源关联系数,将用户-产品网络图w中除了nodei以外的节点压入栈nodestack;

c.在栈nodestack中,取以节点nodei为源节点的边权值最大的节点nodej,权值为wmax;

d.取栈nodestack中的每一个节点nodek,如果w[i][k]<wmax*w[j][k],则更新w[i][k]=wmax*w[j][k];如果栈nodestack非空则返回步骤c,否则退出。

优选的,在步骤三中,弹性系数的计算公式如下:

其中,e代表弹性系数,g(p)代表产品的种类集合,|g(p)|代表产品种类集合的大小,弹性系数的取值范围为(0,1],弹性系数越大,则认为用户对惊喜度的接受程度越大。

优选的,在步骤四中,参数训练包括如下步骤:

根据推荐因子计算函数得到推荐因子,该计算函数如下:

perference(u,p)=r(u,p)*[αe(u)+βe(p)]

recommend(u,p)=perference(u,p)*demand(u,p)

其中,u代表用户,p代表产品,r(u,p)代表用户u和产品p的关联系数,e代表弹性系数,α、β分别代表用户弹性系数的相关因子和产品弹性系数的相关因子,perference(u,p)代表用户u对产品p的喜好因子,demand(u,p)代表用户u对产品p的需求因子,recommend(u,p)代表向用户u推荐产品p的推荐因子。

针对某一用户,根据推荐因子降序排列产品,生成推荐列表;

根据训练集中的数据,以惊喜度打分最大化为目标,优化推荐因子计算函数中的参数α、β。

本发明的有益效果:本发明探索了用户-产品网络中的弱连接关系,既获取了用户与产品之间的关联性又能避免推荐的重复性;本发明提出了弹性惊喜度的概念,并对此进行了说明与应用,弹性满足了用户对惊喜度需求程度不同的现状,并且针对不同用户,惊喜度和推荐有效性能够达到动态平衡的效果;综上,本专利在推荐方面能够达以适宜惊喜度推荐来满足用户不同需求的效果,能够缓解产品的长尾效应、有助于拓展用户视野。

【附图说明】

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图,其中:

图1为相关技术中推荐方法流程图;

图2为本发明一种基于弱连接的惊喜度推荐方法的流程图;

图3为本发明步骤二中节点关联示意图。

【具体实施方式】

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

请参阅图2所示,本发明提供一种基于弱连接的惊喜度推荐方法,包括如下步骤:

步骤一、构建用户-产品网络图,通过用户-产品交互的历史数据和产品属性数据,构造加权有向的用户-产品网络图,权值代表用户之间的相似程度、产品之间的相似程度、用户-产品的关联程度;

在步骤一中构建的用户-产品网络图包含以下两个关键点:

a.方向性,现有方法对用户-产品网络图的构建基本是无向的,认为用户之间的关联具有对称性,事实并非如此。比如用户ua和用户ub之间的关联,可以进一步阐述为彼此间的影响力,假设和用户ua相关的产品是和用户ub相关的产品的真子集,那么用户ua的喜好特征可以完全对应于用户ub,但是反过来并非如此。因此此网络图中对节点间权值的度量是非对称的;

b.权值,在对产品之间权值的计算中考虑类别因素的影响,在对用户-产品之间权值的计算时考虑用户的打分惯性和产品的分值惯性。

在步骤一中,权值w的计算公式如下:

其中,u表示用户,p(u)表示和用户u相关的产品集合,p表示产品,u(p)表示和产品p相关的用户集合,g(p)代表产品p的类别,sim(g1,g2)代表类别g1、g2的相似度,ω代表类别相似度的权值,rating(u,p)表示用户u对产品p的评分,avg(u)表示用户所给出的平均评分,avg(p)表示产品p获得的平均评分,w表示权值,w越大,即认为用户之间的相似程度、产品之间的相似程度、用户-产品之间的关联程度越大。

步骤二、确定用户-产品、产品-产品和用户-用户的关联系数,在步骤一实现的用户-产品网络图中,采用johnsonmax算法更新权值,最终使用关联系数表示权值;

在步骤二中,用r(u,a)表示用户u和产品p的关联系数,r(u,a)并不是确定的,而是会随着网络结构的改变而改变。比如初始状态是r(u,p1)=0.8,r(u,p2)=0.4,此时加入关联r(p1,p2)=0.7,当通过传递性使得r更大时,则更新r(u,p2)=r(u,p1)*r(p1,p2)=0.56。本发明在多源最短路径算法johnson算法的基础上进行改进,提出johnsonmax算法来计算用户-产品、产品-产品和用户-用户的关联系数。johnsonmax的主要目的是实现网络图中边的权值的最大化。其主要思想是,网络图中节点间的关联具有传递性并且其关联性在传递过程中会衰减,当通过传递得到的关联系数大于网络图中原本的权值时,则更新权值。比如针对含有节点a、b、c的网络中,w(a,b)*w(b,c)>w(a,c)时,则更新w(a,c)*w(a,b)*w(b,c),johnsonmax算法包括如下步骤:

a.预处理,将步骤一中构建的用户-产品网络图w存储在矩阵m中;

b.对用户-产品网络图w中的每一个节点nodei,计算单源关联系数,将用户-产品网络图w中除了nodei以外的节点压入栈nodestack;

c.在栈nodestack中,取以节点nodei为源节点的边权值最大的节点nodej,权值为wmax;

d.取栈nodestack中的每一个节点nodek,如果w[i][k]<wmax*w[j][k],则更新w[i][k]=wmax*w[j][k];如果栈nodestack非空则返回步骤c,否则退出。

通过johnsonmax对用户-产品网络图的处理,使得网络图中的权值能够更贴近现实地刻画节点间的关联关系,具体如图3所示,图中节点a0、c0之间的权值和节点a1、c1之间的权值相等,但是由于节点a0、b0以及节点b0、c0存在紧密关联,而节点a1、b1以及节点b1、c1不存在关联,则节点a0、c0之间的关联实际上比节点a1、c1之间的关联更强。通johnsonmax算法对用户-产品网络图中边权值的更新,使得此图3能够更加贴切地表现出这种差异。在这部分之所以选择johnson算法作为基础算法,是因为在稀疏图方面,它的性能远优于其他多源最短路径算法。而在本发明中,由于产品数量和用户数量之间的悬殊关系,步骤一中构造用户-产品网络图往往都比较稀疏。

步骤三、计算用户、产品的弹性系数,通过用户相关产品的多样性和产品相关用户的多样性来确定所述弹性系数;

在步骤三中,对用户来说,弹性系数代表了用户对惊喜度的接受程度,通过与用户相关产品的多样性来衡量此系数;对产品来说,弹性系数代表了产品作为新种类产品被推荐时的接受程度,通过相关用户的多样性来衡量此系数。弹性系数的计算公式如下:

其中,e代表弹性系数,g(p)代表产品的种类集合,|g(p)|代表产品种类集合的大小,弹性系数的取值范围为(0,1],弹性系数越大,则认为用户对惊喜度的接受程度越大。

步骤四、基于用户-产品网络图和弹性系数生成推荐模型,并完成参数训练。

在步骤四中,参数训练包括如下步骤:

根据推荐因子计算函数得到推荐因子,该计算函数如下:

perference(u,p)=r(u,p)*[αe(u)+βe(p)]

recommend(u,p)=perference(u,p)*demand(u,p)

其中,u代表用户,p代表产品,r(u,p)代表用户u和产品p的关联系数,e代表弹性

系数,α、β分别代表用户弹性系数的相关因子和产品弹性系数的相关因子,

perference(u,p)代表用户u对产品p的喜好因子,demand(u,p)代表用户u对产品p的

需求因子,recommend(u,p)代表向用户u推荐产品p的推荐因子。

针对某一用户,根据推荐因子降序排列产品,生成推荐列表;

根据训练集中的数据,以惊喜度打分最大化为目标,优化推荐因子计算函数中的参数α、β。

本发明的有益效果:本发明探索了用户-产品网络中的弱连接关系,既获取了用户与产品之间的关联性又能避免推荐的重复性;本发明提出了弹性惊喜度的概念,并对此进行了说明与应用,弹性满足了用户对惊喜度需求程度不同的现状,并且针对不同用户,惊喜度和推荐有效性能够达到动态平衡的效果;综上,本专利在推荐方面能够达以适宜惊喜度推荐来满足用户不同需求的效果,能够缓解产品的长尾效应、有助于拓展用户视野。

尽管本发明的实施方案已公开如上,但并不仅仅限于说明书和实施方案中所列运用,它完全可以被适用于各种适合本发明的领域,对于熟悉本领域的人员而言,可容易地实现另外的修改,因此在不背离权利要求及等同范围所限定的一般概念下,本发明并不限于特定的细节和这里所示出与描述的图例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1