Attention+:一种基于关注关系与多用户行为的图推荐算法
2017-04-07 21:20
381 查看
刘梦娟, 王巍, 李杨曦,等. AttentionRank~+:一种基于关注关系与多用户行为的图推荐算法[J]. 计算机学报, 2017(3).
![](https://oscdn.geek-share.com/Uploads/Images/Content/201704/3dc6b1679f3f147d5fa85cce9af4451a)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201704/e1c24ae1a7e458930335e71d4fb12804)
假设系统中有N 种用户反馈类型,每种反馈类型发生的总次数记为(F1,F2,…,FN),首先按照式(2)计算每种反馈类型对应的 归 一 化 后 的 权 重,记 为 (f1,f2,…,fN ),f1+f2+…+fN =1;然后根据用户vu对物品vi的历史反馈记录,计算边e(vu,vi)的权值w(vu,vi),如式(3)所示,这里numm(vu,vi)是用户Vu对物品vi执行第 m 种反馈类型的次数,通常numm(vu,vi)的取值为0 或 1,表示用户是否执行过这种反馈,因 此“用户 -物品”边的权重范围为(0,1]
![](https://oscdn.geek-share.com/Uploads/Images/Content/201704/bc4afce17975f57dd4b4948f1f14e0f4)
“用户-用户”边的建立
借鉴Hammock宽度的概念:即如果两个用户共同反馈的物品数越多,则说明两个用户的兴趣相似度越高,在 两 个 用 户 之 间 建 立 一 条 无 向 边,可 以 增 加Random Walk时从用户节点到与其兴趣相似的用户节点,以及这些节点的反馈物品节点的游走概率.用户相似度的计算该论文提出一种基于“用户 -物品”边权重的计算方法:假设用户x 和用户y 有共同反馈的物品集合为{i1,i2,…,iS},这里共同反馈的物品数为S,则用户相似度计算如式(4)所示:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201704/8f6f9257698f4c0220d91210362d50b9)
如果usersim(x,y)大于设定的相似度阈值k,则在两个用户节点之间建边,阈值k 称为 Hammock 宽度.“用户 -用户”边的权重计算方法如式(5):
![](https://oscdn.geek-share.com/Uploads/Images/Content/201704/93a93760077abbf9bc10f75a9cb964d0)
本文中设置α=0.5,用于调节“用户 -用户”边与“用户 -物品”边的权重保持一致,限制取值范围为(0,1]。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201704/6a628d0851f6bec89c567b782684b0ce)
A用户关注了C用户,则建立一条从C(被关注用户)指向A(关注用户)的有向边。
假设用户节点vu在兴趣图中关注的用户集合为IN (vu),|IN(vu)|表示被vu关注的用户节点个数,simi(vy,vi)表示被关注用户节点vy在反馈图上与节点vi的相似度信息,则经过兴趣图扩散相似度信息后,用户节点vu获得的反馈图中各节点的相似度信息(信息扩散所获得的相似度):
![](https://oscdn.geek-share.com/Uploads/Images/Content/201704/aa722fe717a348a8deb4d6be720cdd58)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201704/a3a29c0f4594ed99546a3be822f9fa00)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201704/55f2c41ad74634ebb0a92f810927e1db)
再利用式(6)或式(7)计算相似度,达到信息扩散的目的。
综合考虑了从反馈图和从兴趣图分别得到的节点相似度信息,其中γ∈[0,1]是调节参数,用于调节两种信息源对最终相似度的影响程度,最终得到的每个用户节点与反馈图中个节点的相似度为:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201704/7f92ebc998e4e86beea4acd6ff1631ee)
判断该相似度是否收敛,若没收敛则继续随机游走和扩散。下一轮 RandomWalk时的初始状态只跟上一轮得到的节点相似度有关
![](https://oscdn.geek-share.com/Uploads/Images/Content/201704/77b65bab62dd6d749a0928586c6febb3)
设计分类器:考虑每个用户元组有2个属性,记为u=(x1,x2),其中属性x1表示该用户关注其他用户的数量|IN(vu)|,属性x2表示用户与其被关注对象的平均相似度。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201704/5c729676de395a074abef3dd96426c85)
基于Random Walk的TSPR算法
该算法采用一阶Markov-chain计算游走 概 率。方法如下:分别从每个用户节点出发,在“用物品”二分图上进行一轮Random Walk;每当到达 一个节 点 时,需要判断是以概β继续向下游走,还是以1-β概率返回出发点重新游走;重复游走过程,直到二分图上用户与物品的游走概率(即相似度)收敛到稳定值;最终,根据用户对物品的游走概率生成每个用户的物品推荐列表。算法设计
步骤:构建“用户-物品”反馈图
“用 户 -物品”反馈图中,不仅设计了基于用户多种反馈类型的“用户 -物品”边,还增加了反映用户共同反馈紧密程度的“用户-用户”边,以提高具有共同兴趣的用户节点之间的游走概率。假设系统中有N 种用户反馈类型,每种反馈类型发生的总次数记为(F1,F2,…,FN),首先按照式(2)计算每种反馈类型对应的 归 一 化 后 的 权 重,记 为 (f1,f2,…,fN ),f1+f2+…+fN =1;然后根据用户vu对物品vi的历史反馈记录,计算边e(vu,vi)的权值w(vu,vi),如式(3)所示,这里numm(vu,vi)是用户Vu对物品vi执行第 m 种反馈类型的次数,通常numm(vu,vi)的取值为0 或 1,表示用户是否执行过这种反馈,因 此“用户 -物品”边的权重范围为(0,1]
“用户-用户”边的建立
借鉴Hammock宽度的概念:即如果两个用户共同反馈的物品数越多,则说明两个用户的兴趣相似度越高,在 两 个 用 户 之 间 建 立 一 条 无 向 边,可 以 增 加Random Walk时从用户节点到与其兴趣相似的用户节点,以及这些节点的反馈物品节点的游走概率.用户相似度的计算该论文提出一种基于“用户 -物品”边权重的计算方法:假设用户x 和用户y 有共同反馈的物品集合为{i1,i2,…,iS},这里共同反馈的物品数为S,则用户相似度计算如式(4)所示:
如果usersim(x,y)大于设定的相似度阈值k,则在两个用户节点之间建边,阈值k 称为 Hammock 宽度.“用户 -用户”边的权重计算方法如式(5):
本文中设置α=0.5,用于调节“用户 -用户”边与“用户 -物品”边的权重保持一致,限制取值范围为(0,1]。
构建用户兴趣图
A用户关注了C用户,则建立一条从C(被关注用户)指向A(关注用户)的有向边。
假设用户节点vu在兴趣图中关注的用户集合为IN (vu),|IN(vu)|表示被vu关注的用户节点个数,simi(vy,vi)表示被关注用户节点vy在反馈图上与节点vi的相似度信息,则经过兴趣图扩散相似度信息后,用户节点vu获得的反馈图中各节点的相似度信息(信息扩散所获得的相似度):
Random Walk和扩散过程
完成n次Random Walk后,用户节点vu与反馈图中每个节点vi的相似度(随机游走所得相似度)再利用式(6)或式(7)计算相似度,达到信息扩散的目的。
综合考虑了从反馈图和从兴趣图分别得到的节点相似度信息,其中γ∈[0,1]是调节参数,用于调节两种信息源对最终相似度的影响程度,最终得到的每个用户节点与反馈图中个节点的相似度为:
判断该相似度是否收敛,若没收敛则继续随机游走和扩散。下一轮 RandomWalk时的初始状态只跟上一轮得到的节点相似度有关
分类
并非所有用户都受其关注对象行为的影响.为此本论文设计一个朴素贝叶斯分类器,用以将存在关注行为的用户划分为两类:受关注对象正影响或无影响的用户类 C1、受 关注对象负影 响 的 用 户 类C2.根据分类结果将 C2类用户及其对应的关注边从兴趣图中删除。设计分类器:考虑每个用户元组有2个属性,记为u=(x1,x2),其中属性x1表示该用户关注其他用户的数量|IN(vu)|,属性x2表示用户与其被关注对象的平均相似度。
相关文章推荐
- 推荐系统(二) —— 利用用户行为数据 —— 基于领域的算法
- 个性化推荐基本算法及源码分析(一)— 基于用户的协同过滤
- google news recommendation - 基于点击行为的用户个性化新闻推荐
- 基于用户点击行为的新闻个性推荐
- 推荐系统-通过数据挖掘算法协同过滤讨论基于内容和用户的区别
- 一篇关于youtube推荐算法的分享-基于用户行为的视频推荐
- 好友推荐算法-基于关系的推荐
- 推荐算法--基于用户的协同过滤算法
- 【笔记4】用pandas实现条目数据格式的推荐算法 (基于用户的协同)
- 推荐系统读书笔记一--基于用户行为的推荐
- 基于用户协同过滤的推荐系统算法,python 实现
- 基于用户的推荐协同过滤算法的算法
- 基于用户的推荐算法
- 基于用户的推荐算法
- 基于用户的协同推荐算法
- Mahout系列之推荐算法-基于用户协同过滤
- 基于协同过滤算法的电子商务网站用户行为分析及服务推荐
- 基于用户点击行为的新闻个性推荐
- 【笔记3】用pandas实现矩阵数据格式的推荐算法 (基于用户的协同)
- 机器学习:推荐算法之基于用户、基于物品和Slope One