[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] 以上对本发明所提供的一种个性化推荐方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。