首页 / 个性化推荐方法

个性化推荐方法有效专利 发明

技术领域

[0001] 本发明涉及计算机数据处理技术领域,特别是涉及一种个性化推荐方法。

相关背景技术

[0002] 随着互联网的高速发展,人们的日常生活越来越多的与互联网紧密联系在一起,例如听音乐、看电影、购物、阅读、聊天等等。与此同时,海量的用户和物品数据每天都不断地在互联网中产生,这导致互联网用户很难,甚至不可能快速地从中找到自己需要的或者感兴趣的未知信息。于是,个性化推荐技术应运而生,并不断地推陈出新。个性化推荐技术旨在根据用户自身的特点,对用户的兴趣偏好进行建模,并进而推荐符合用户个性化偏好的,且尚未使用过的物品。
[0003] 协同过滤是目前最主流、最有效的一类个性化推荐方法,这类方法通过获取大量的用户对物品的行为数据,对用户与用户、物品与物品、用户与物品之间的关系分别进行建模,并以“行为相似的用户拥有相似的偏好”为基本假设进行个性化推荐。这类方法普遍存在的一个较大的局限是:协同过滤方法假设用户u已使用过的所有物品都均等地反映了用户u的个性化偏好。这个均等假设在用户的个性化偏好可能快速动态变化的推荐问题中是不成立的,例如用户一天之内的情绪可能发生多次变化,那么用户在不同情绪之下所偏好的歌曲也一般有很大差异,开心的时候可能喜欢听欢快的歌曲,悲伤的时候可能喜欢听舒缓、安静的歌曲,那么用户在开心的状态下听的歌曲就不能正确的反映用户在心情低落、伤感时的歌曲偏好。同样,电影推荐、网站推荐等也有类似的情况。
[0004] 为了提升现有推荐方法的有效性,需要考虑用户的偏好随时间动态变化的特点。因此,用户已使用过的物品不会均等的反映该用户在给定的时刻下的偏好。
[0005] 因此,目前需要本领域技术人员迫切解决的一个技术问题就是:如何能够创新地提出一种有效方法,以满足实际应用中的更多需求,创造更多的应用价值。

具体实施方式

[0024] 为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
[0025] 参见图1,本方案所述的一种个性化推荐方法,具体包括:
[0026] 步骤S101,获取用户对物品的使用行为数据;
[0027] 步骤S102,按照所获取的使用行为数据生成用户使用行为子列表;
[0028] 步骤S103,遍历所生成的用户使用行为子列表,估算物品的一步转移概率矩阵;
[0029] 步骤S104,基于用户对物品的兴趣的遗忘过程和马尔科夫模型建立个性化推荐模型;
[0030] 步骤S105,使用梯度下降法,对兴趣遗忘过程中用户的个性化参数进行估算,从而根据用户使用行为子列表,为用户进行推荐。
[0031] 为使本发明的方案便于理解和实现对技术做更为具体的介绍,方案实现是基于兴趣遗忘过程和马尔科夫模型进行个性化推荐方法,包括以下具体的实施步骤:
[0032] (1)本发明通过动态地模拟用户对物品的兴趣的遗忘过程,来估计用户在任意时刻下对物品的个性化偏好,例如在音乐推荐中,更偏好舒缓、安静的歌曲,还是动感、快节奏的歌曲,又例如在电影推荐中,更偏好动作类型电影,还是浪漫爱情类型电影等,并在此基础上,为用户在给定的时刻下,推荐符合其个性化偏好的物品;
[0033] (2)如附图2所示,为本发明方法实施的流程图,本发明方法一共包含6个主要的实施阶段;
[0034] (3)阶段1,获取用户对物品的使用行为数据,设获取到M位用户对N个物品的使用行为数据,记用户集合为U={u1,u2,…,uM},物品集合为V={u1,u2,…,uN},集合U和集合V中每一个元素分别表示唯一的一个用户和一个物品,记Hu={xu,1,xu,2,…}表示用户u的原始的使用行为数据按其发生的时间的升序排列的列表,其中的任一元素xu,i表示用户u的第i次使用行为,并且xu,i∈V,对任意的i
[0035] (4)在本发明中,默认获取到的用户的使用行为均为正面用户反馈,即用户u在某一时刻使用了物品v,则表示用户u在那一时刻下偏好于物品v,而对含有负面用户反馈的使用行为数据,可将其中所有负面用户反馈均删除后,再运用本发明方法;
[0036] (5)阶段2,根据不同数据类型的推荐问题,设定不同的时间阈值τ,对每个用户的使用行为列表分别进行划分,形成多个子列表,阈值τ定义了划分在同一子列表中任意发生时间相邻的前后两次行为的时间间隔的最大值,划分子列表的原因是因为在用户动态的使用行为过程中,用户的偏好可能会改变,因此,行为发生时间越接近,则用户偏好改变的概率越低,反则反之;
[0037] (6)阈值τ的大小与具体的推荐问题相关,例如在音乐推荐中,τ的值可以取1小时,而在电影推荐中,τ的值则可以取1天等等;
[0038] (7)遍历所有用户u的原始使用行为列表Hu,将Hu中的使用行为按发生时间的升序排列,若Hu中发生时间相邻的前后两次行为的时间间隔大于τ,则将这两次行为分别划分到前后两个不同的子列表中,记由所有用户的各个使用行为子列表构成的集合为H;
[0039] (8)附图3举例说明了根据用户u原始的使用行为列表Hu,在时间阈值τ为1小时的情况下,生成u的使用行为子列表的过程,由于行为xu,2与xu,3的发生时间的间隔超过了1个小时,于是xu,2与xu,3被分别划入了子列表Hu,1和Hu,2中,因此,Hu经过划分之后得到两个子列表{Hu,1,Hu,2};
[0040] (9)阶段3,遍历阶段2中得到的所有用户的使用行为子列表集合H,估算物品的一步转移概率矩阵S,S为N×N的实数矩阵,记S(vi,vj)表示对普遍的用户而言,在使用了物品vi之后,下一步紧接着使用物品vj的概率,即一步转移概率,在本发明中,用以下公式估算S(vi,vj)的值:
[0041]
[0042] 上式中Th(vi)表示在子列表h中,使用行为vi发生的时间戳,Π为示性函数,当且仅当其下脚标中的条件成立时返回1,其余情况均返回0;
[0043] (10)阶段4,基于兴趣遗忘过程和马尔科夫模型建立个性化推荐模型,本发明提出的个性化推荐模型为一个修正的一阶马尔科夫模型,用以下公式表示本发明方法中对用户u在给定一个使用行为列表h的情况下,推荐物品集V中各物品v的概率:
[0044]
[0045] 上式中h(i)表示在使用行为列表h中按时间升序的第i次行为中使用的物品,S为在阶段3中估计得到的一步转移概率矩阵, 表示用户u对列表h中按时间升序的第i次行为中使用的物品在当前时刻的偏好值,|h|为列表h的长度;
[0046] (11)偏好值 由用户u在当前时刻对列表h中按时间升序的第i次行为中使用的物品的经验值和兴趣余量决定,用以下公式计算:
[0047]
[0048] 上式中 和 分别表示用户u在当前时刻对列表h中按时间升序的第i次行为中使用的物品的经验值和兴趣余量,其中,经验值表示用户对该物品的熟悉程度,而兴趣余量则是随着兴趣遗忘过程逐渐减少的;
[0049] (12)经验值 的估计由以下Logistic函数得到:
[0050]
[0051] 上式中,fu(h(i))表示到当前时刻为止,用户u对物品h(i)使用过的次数,fu(h(i))≥0,可直接从Hu中计数得到,而φu表示用户u的个性化参数,φu≥0,其值在阶段5中通过机器学习方法估算得到;其中所述的机器学习方法也即梯度下降法。
[0052] (13)兴趣余量 的估计可由以下的双曲线函数计算得到:
[0053]
[0054] 上式中,αu和βu均为用户u的个性化参数,0≤αu<1,0<βu≤1,两个参数的值也在阶段5中通过机器学习方法估算得到;
[0055] (14)阶段5,根据阶段4的建模,在给定用户u的行为列表h的情况下,本发明为用户u推荐物品v的概率用以下公式表达:
[0056]
[0057] 使用机器学习的方法为每个用户u估算其未知的个性化参数φu,αu和βu的取值,参数估算包括以下子步骤:
[0058] 1)为每个用户u,随机的初始化其个性化参数φu,αu和βu的值,初始化时满足条件φu≥0,0≤αu<1,0<βu≤1,同时初始化迭代次数标记iter=0;
[0059] 2)计算以下代价函数的值,记为C,
[0060]
[0061] 上式中,h(|h|)表示行为列表h中按时间升序排列的最后一个物品,h-h(|h|)表示除去h(|h|)后行为列表h剩余的部分;
[0062] 3)根据函数G对各用户的个性化参数φu,αu和βu的偏导数计算临时的参数值φu′,αu′和βu′:
[0063]
[0064]
[0065]
[0066] 上式中, 分别为代价函数G对个性化参数φu,αu和βu在当前参数取值下的偏导数,Δ为表示学习步长,Δ值越大,收敛越快,但越可能收敛到局部最优,而非全局最优,Δ值越小,收敛越慢,但越可能收敛到全局最优,一般情况下Δ可取较小的值,如0.01或0.001等;
[0067] 4)计算代价函数G在个性化参数φu′,αu′和βu′下的取值,记为C′,令迭代次数加1,即iter=iter+1,然后比较C与C′值的大小,得到以下可能的结果:
[0068] i.若C′≤C,则直接退出迭代;
[0069] ii.若C′>C且iter≥Max_Iters,则直接退出迭代,Max_Iters为自定义的最大迭代次数,一般可设置为100;
[0070] iii.若C′>C,iter
[0071] iv.若C′>C,iter
[0072] (15)阶段6,获取待推荐的用户u最近的使用行为列表h,例如用户u最近听的歌曲的列表,看的电影的列表等,然后对V中所有物品v,分别计算P(v|h)的值,并按P(v|h)值从大到小排列V中所有物品,取排名最靠前的若干个用户u尚未使用过的物品作为推荐结果返回;
[0073] (16)在阶段4中对兴趣余量 的定义除了采用双曲线函数以外,也可以采用对数线性函数或指数函数,其中对数线性函数的定义如下:
[0074]
[0075] 对数线性函数满足0≤αu≤1,0<βu≤1,
[0076] 指数函数的定义如下:
[0077]
[0078] 指数函数满足0≤αu,θu≤1,0<βu≤1
[0079] 以上两个函数中的αu,βu,θu均为用户u的个性化参数,参数值也能通过阶段5中的机器学习方法来估算得到。
[0080] 为使本领域技术人员更好地理解本发明,以下结合用户对物品的使用行为为听音乐的实际应用,更为详尽的对本方案做具体介绍。
[0081] 音乐推荐应用实例
[0082] 为了更直观的说明本方法如何在实际问题中进行应用,以下将参照图4以音乐推荐为例进行详细说明。图中为已获取到的五位用户听音乐的行为数据,用户集合U={u1,u2,u3,u4,u5},音乐歌曲集合V含有10首不同的歌曲,即V={v1,v2,v3,v4,v5,v6,v7,v8,v9,v10}。五位用户原有的听音乐的行为数据按其发生时间的升序排列的列表分别为Hu1,Hu2,Hu3,Hu4和Hu5。例如,用户u1在时间06:28:00听了歌曲v1,接下来在时间06:35:30听了歌曲v6等等。为简化显示,图4中所有听音乐的行为均直接以其具体听的歌曲为代表,而未画出行为随机变量x。
[0083] 假设在本例子中设置时间阈值τ=12小时。对用户u1而言,在其听音乐的行为列表Hu1中,该用户听歌曲v1,v6,v10的时间间隔均不超过12个小时,而听歌曲v2,v7,v5,v4的时间间隔也不超过12小时,但用户v1听歌曲v10和歌曲v2的时间间隔却相差了12小时25分20秒,超过了时间阈值τ。因此,在本例中,Hu1将被划分为两个子列表,即{v1,v6,v10}和{v2,v7,v5,v4}。同理,Hu2将被划分为两个子列表,{v3,v9,v7,v5}和{v8,v1}。而Hu3和Hu4则不需要划分得更细,因为其中相邻的各次听音乐行为的时间间隔均未超过时间阈值τ。Hu5将被划分为两个子列表,{v2,v1}和{v10,v6,v7,v9}。那么,由所有用户的各次听歌行为子列表构成的集合为:H={{v1,v6,v10},{v2,v7,v5,v4},{v3,v9,v7,v5},{v8,v1},{v8,v3,v4,v9,v2},{v4,v5,v3,v6},{v2,v1},{v10,v6,v7,v9}}
[0084] 根据集合H来计算一步转移概率矩阵S。
[0085] 举 例 说 明,对S(v1,v10)来 说,因 为v1和v10按v1在 前、v 10在后的顺序,在H的各个子列表中只出现过1次(即在子列表{v1,v6,v10}中),而v1则单独出现过3次,因此 同理,可以计算得到S(v1,v2)=0,
等 等。
最终,可以计算得到如表1所示的一步转移概率矩阵。注意,本发明中的一步转移概率矩阵S并没有按行做归一化处理,但这并不影响最终的结果。如下表1为歌曲一步转移概率矩阵。
[0086]
[0087] 表1
[0088] 根据建立的推荐模型,当用户u听了歌曲列表h后,为用户u推荐歌曲v的概率的表达式为:
[0089]
[0090] 以用户u1的子列表{v1,v6,v10}为例,在用户u1依次听了歌曲v1和v6后,为u1推荐歌曲v10的概率可计算为:
[0091]
[0092] 因为v1在听歌曲v10之前,只听过v1和v6各一次,因此由表1可知, 代入表达式P(v10|{v1,v6})后可得:
[0093]
[0094] 因此,关于用户u1的表达式P(v10|{v1,v6})就只与u1的个性化参数 和有关,而这些参数正是待估算的参数。
[0095] 同理,可以根据H中的其余音乐播放子列表可写出推荐各子列表中最后一首歌曲的概率。
[0096] 对用户u1有:
[0097]
[0098]
[0099] 对用户u2有:
[0100]
[0101]
[0102] 对用户u3有:
[0103]
[0104] 对用户u4有:
[0105]
[0106] 对用户u5有:
[0107]
[0108]
[0109] 根据以上表达式,可估算各用户的个性化参数。在本发明方法的参数估算过程中,首先需要初始化个性化参数,假设在本例中按以下方式初始化参数:
[0110]
[0111]
[0112]
[0113] 同时,初始化迭代次数标记iter=0,在本例中,设最大迭代次数Max_Iters=10。根据参数学习规则,首先计算代价函数G的值C:
[0114]
[0115] G对参数 的偏导数的表达式为:
[0116]
[0117] 由于此时 因此,
[0118] 同理,可计算出:
[0119]
[0120]
[0121] 假设本例中使用的步长Δ=0.01,于是可计算更新后的个性化参数:
[0122]
[0123]
[0124]
[0125]
[0126]
[0127]
[0128]
[0129]
[0130]
[0131]
[0132]
[0133]
[0134]
[0135]
[0136]
[0137] 使用更新后的个性化参数计算新的代价函数值C′=-1.2681,同时令迭代次数标记iter加1,iter=iter+1=1。因为C=-1.2836,于是C′>C。同样可得,iterC′-C=0.0155≥∈。因此,不满足任何退出循环迭代的条件,于是,令C=C′,然后重复以上循
环迭代步骤,即计算G对各参数的偏导数,再计算更新后的各参数值,再计
算代价函数C′,并将C′与C比较,再执行相应操作,直至最后退出循环迭
代。结束以上循环迭代之后,各参数
的值就是最后在推荐时使用的
值。
[0138] 为了演示本发明的推荐过程,本例中假设最终各参数的值与上述第一次循环结束后更新的参数值一样,即
[0139] 以为用户u3推荐歌曲举例,本发明方法将推荐用户u3未听过的、但可能感兴趣的歌曲给u3。由图4可知,用户u3未听过的歌曲包括{v1,v5,v6,v7,v10}。于是,分别计算推荐这些歌曲给用户u3的概率:
[0140]
[0141] 同理,可以计算得到:
[0142] P(v5|{v8,v3,v4,v9,v2})=0.86669
[0143] P(v6|{v8,v3,v4,v9,v2})=0.17474
[0144] P(v7|{v8,v3,v4,v9,v2})=0.76469
[0145] P(v10|{v8,v3,v4,v9,v2})=0
[0146] 因此,本发明预测用户u3对歌曲v1,v5,v6,v7,v10感兴趣的程度分别为v5>v7>v1>v6>v10,并且本发明将按这个顺序将歌曲推荐给用户u3。
[0147] 以上对本发明所提供的一种个性化推荐方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页 第1页 第2页 第3页
相关技术
推荐方法相关技术
王朝坤发明人的其他相关专利技术