第
卷 第
35
5
Vol.35No.5
期
周口师范学院学报
Journal of Zhoukou Normal University
2018
年
9
月
Sept.2018
一种针对群体的列表融合推荐算法
马远坤,崔永锋,赵中原
(周口师范学院,河南 周口
466001)
要:对于群组推荐来说,生成一个公共接受程度很高的推荐列表是一项很艰难的任务
摘
传 统 的 组 推 荐 算 法
.
在生成推荐列表的时候通常只考虑组员对项目的排名 或 者 评 分 ,因 此 考 虑 的 因 素 相 对 片 面
提 出 了 一 种 新 的
.
列表融合算法,同时兼顾了组员对项目的排名和评分两种 因 素
实 验 表 明,HAaB
.
算 法 的 推 荐 效 果 明 显
HAaB
要好于传统的组推荐算法
关键词:个性化推荐;组推荐;列表融合
中图分类号:TP391.1
DOI:10.13450/j.cnki.jzknu.2018.05.026
.
文献标志码:A
文章编号:1671-9476(2018)05-0096-04
简介
1
近年来
推荐系统逐渐成为人们在海量数据中
,
在 目 前 的 研 究
发现有 价 值 信 息 的 重 要 工 具 [1-2].
实
中
大部分的推荐 算 法 是 针 对 单 独 用 户 设 计 的
,
,
际中还有很多 应 用 是 针 对 多 人进 行 推 荐 [3],
例 如
,
在
针对多人的电视节目推荐 [2]或者旅游地点推荐
.
根据适合单独用户的推荐算法无法给
这些情景下
,
因为一个用户满意的推
多人产生满意的推荐结果
,
荐结果对 其 他 人 来 说 很 可 能 不 是 太 好 的 选 择
因
.
如何选择推荐内容使群组内每个组员都满意或
此
,
者接受是面向群组 的 推 荐 算 法 需 要 解 决 的 主要 难
题
目 前 群 组 推 荐 算 法 的 用 户
,
满意度比较差
研 究 满 足 群 组 中 每 个 组员 兴
趣的推荐算法是很有必要的
正是由于 这 个 难 题
.
因 此
,
,
.
相关工作
2
当前群组推荐算法可以归为两类 [3-4]:
基于群
组兴趣模型的推荐 算 法 和 基 于 列 表 融 合 的 推荐 算
法
本节仅分析和
,
比较现有的基于列表融合的推荐算法
目前使用最
.
多的 基 于 列 表 融 合 的 推 荐 算 法 主 要 有
笔者提出的算法属于后者
.
因此
,
Average
Aggregation
算法和
算法
Borda
.
在对电视节目 的 群 组 推 荐 中 提 出 了
Masthoff
使 用
Average Aggregation
策 略 和
Least Misery
.
;Least Misery
策略来对 群 组 内 每 个 用 户 的 推 荐 列 表 进 行 融 合
策略将组员对某个项目的平
Average Aggregation
均评分作为群组对该项目的组评分
然后将组评分
,
较高的项目作为群组的推荐内容
策
略将群组内所有组 员 对 某 个 项 目 评 分 的 最 低 分 作
为群组对该项目的组评分
然后将组评分较高的项
,
目作为群组的推荐内容
这两种算法充分考虑了组
.
员的评分因素
在推荐时平衡了组员之间的兴趣差
,
异
该算法使
,
用项目在组内每个 组 员 推 荐 列 表 中 的 平 均 排 名 来
决定其组评分的 大 小
组 评 分 就 越
高
平 均 排 名 越 高
.Coppersmith
等人研究了
Borda
算法
,
,
.
和
等 人 [4]对 比 了
和
Linas
Tadas
Least Misery
Average Ag-
[3-4]等 一 些 常 见
gregation,Borda
的算法
发现在不同的群组规模或群组内部相似度
,
群组
的情况下
,
在
推荐的效果并不一定随着组规模的增加而降低
,
某些情况下
组推荐的效果超过了给独立用户推荐
,
的效果
没有一种算法效果是最优的
,
此外
.
.
根据 上 面 算 法 介 绍 可 以 得 出 结 论
算 法 和
Least Misery
Aggregation
目在组员推荐列表中的排名因素
了每个组员给 项 目 的 评 分 因 素
可避免地存在着推荐精度上的丢失
;Borda
因 此
.
,
.
:Average
算 法 忽 略 了 项
算法忽略
这 些 算 法 不
收稿日期:2018-03-18;修回日期:2018-06-05
基金项目:国家自然科学基金项目 (No.U1504602)
作者简介:马远坤(1989- ),男,河南周口人,硕士,助教,研究方向:大数据分析、机器学习
.
第
卷 第
期
5
35
马远坤
等
,
一种针对群体的列表融合推荐算法
:
79
3 HAaB
融合算法
算法和
融 合 算 法
为了克服
算法的局限性
Average Aggregation
笔 者 提 出 了
,
Borda
(Hy-
该 算 法
算法进行了
兼顾了组员推荐列表中项目排名和项目评分
,
brid of Average Aggregation and Borda),
对
融合
两种因素
融合算法的实现步骤如下
Average Aggregation
算法和
HAaB
Borda
.HAaB
.
3.1
的 推 荐 算 法 等
基于内容的推荐算法
:
每个组员生成推荐列表
使用任意一种推荐算法
比如说
多
,
基于奇异值 分 解
法
、
组员的推荐精度越高
越高
者对基于项目的协同过滤算法
滤算法
基于内容的推荐算法
、
生成每个组员的推荐列表
首先使用针对独立用户的推荐算法给群组中
本步骤中的推荐算法可以
.
目前流行的推荐算法有很
.
协同过滤推荐算
、
对 单 个
(SVD)
.
最终对群组推荐的精度也就
,
笔
基于用户的协同过
、
最近邻分类算法
、
推荐算法等几种最流行的推 荐 算
推 荐 算 法 和
得 出 结 论 为
但是在 算 法
;
基于
.
推荐算法 [5]来为每 个 组 员
因此在 选 择 对 单 个 组 员 的 推 荐算 法 之 前
.
:SVD
算法的推荐结果最为精确
Slope One、SVD
法进 行 了 比 较
,
算法消耗内存太大
,Slope One
笔者选择
、K
,
Slope One
资源占用方面
该结论
生成推荐列表
,
SVD
3.2
组员推荐列表融合
算法对每个项目计算群组中每个组员对其的
预测评分之和作为列表融合策略的一个影响因素
同时也计算每个项 目 在 群 组 中 每 个 组 员 推 荐列 表
由于项目评分
中的排名之和作为另一个影响因素
.
和项目排名对结果的影响程度可能不同
因此加入
,
一个参数来调整项 目 评 分 和 项 目 排 名 对 结 果的 影
响权重
如 下 公 式 定 义 了 项 目
.
组评分的计算方法
以使 结 果 达 到 最 优
,
;
:
.
pui
∑u∈g
λ
对项目
Scoreg(i)=∑u∈g
,Scoreg(i)
对项目
rui +
代表群组
的评分
其中
g
表用户
,pui
的 推荐列表中的排名
是平衡参数
目排名和项目评分对结果的影响权重
,λ
u
i
i
代表项目
(1)
代
的评分
,rui
在用户
i
u
用来调整项
,
(1)
公式
把组员推荐列表中项目的评分和排名
该融合
.
对于不同内
,
最优的
值
,
值使推荐结果在任何情
所以需要通过实验获得在每种情
,
两个因素进行融合得到群组对项目的评分
策略中对结果起关键作用的是
的值
部相似度的组或者不同规模的组来说
往往不同
况下都是最优的
况
主要考虑组 内 相 似 度 和 组 规 模 两个 因 素
(
由于没有一个
.
下
λ
λ
λ
)
λ
.
的最优值
的
然后在每种情况下使用在该情况下最优
,
笔 者 称 这 个 改 进 后 的 算 法 为
值来 进 行 推 荐
,
λ
HAaB
算法
.
实验与分析
4
为了验证
算 法 的 性 能
第一套实验主要分析不同
.
HAaB
第 二 套 实 验 主 要 对 比
;
套实验
响
算法的效果
介绍实验的设置和结果
HAaB
验证
,
,
笔 者 设 计 了 两
值对结果的影
λ
算 法 和 当 前 典 型
下面 详 细
.
HAaB
算法的有效性
.
实验设置
实验数据
4.1
4.1.1
本实验中使用的数据集是
其中 有 大 约
,
3 900
据集
条评分记录
1 000 209
分成训练集 和 测 试 集
测试集包含
影
,
数据
取每组实验结果的平均值
20%
然后分别对这
,
10
个 电 影
、6 040
MovieLens-1m
数
个 用 户 的
实验按照电影把数据集随机
.
的 电
其 中 训 练 集 包 含
,
的电影
组
最后结果
,
80%
用这种方法得到
.
组数据进行实验
10
生成群组
4.1.2
.
:
MovieLens
组 内 相 似 度 和 组 的 规 模
将组分 为 高 相 似 度 组
,
由于
所以需要 手 动 对 用 户 进 行 分 组
,
数据集中没有 现 成 的 群 组 数
据
分 组 的 时 候 主
.
要考虑两个因 素
根 据 组
.
内相似度
低 相 似 度 组 和 随
因此需要设定高相似度组和低相似度组满足
机组
,
的条件
相关公式 [6]分析了数据
集中用 户 之 间 的 相 似 度
相 似 度 大 于
可以看出
,
1
的 大 约 占 所 有 数 据 的
Pearman
,
这里使用
.
结 果 如 图
从 图
.
所 示
、
1
0.3
相似度小于
的 大 约 也 占 所 有 数 据 的
0.06
1/3
1/3,
左右
.
图
1 MovieLens
组员相似度图
根据上述结果
间的相似度均大于
两个组员之间的相似度均小于
度组
本实验定义组内每两个组员之
,
组内每
,
的组为低相似
的组为高相似度组
0.06
0.3
随机组则不做任何限制
,
实验考虑组的规模人数分别为
.
考虑组内相似度分别为高相似度组
其中
.
1 050
高相似度组
,
个
,
每 种 规 模 的 组 有
2,3,4,5,6,7,
低相似度组
、
低相似度组和随机组
、
一 共
个
150
,
8,
和随机组
分别生成
89
周口师范学院学报
2018
年
9
月
生成
3 150
个组
参数设置
.
4.1.3
正如算法第一步中提到的
组推荐算法需要首
,
实 验 中
因 此
.
先生成群组中 每 个 组 员 的 推 荐 列 表
首先 使 用
算法的参数根据之前研究者的经验来设置
里将
算 法 中 的 特 征 值 数 目 设 置 为
,
SVD[5]算 法 给 组 员 生 成 推 荐 列 表
.SVD
因此这
,
通 过
SVD
算法给数据集中每个用户预测出对测试集中
实验中设置组推荐列表的长度跟
;
SVD
所有电影的评分
测试集中电影的数目相同
50.
.
评价指标
4.1.4
实验中使用一种信息检索中评估网页排序的
Discounted cumulative gain(nDCG)[7]来评估
评估方
其
方法
用户对有序推荐列表的满意度
法来说
nDCG
用户评 分 越 高 的 项 目 排 名 越 靠 前
,
nD-
因此可以有效地评估用户对有序
,
CG
推荐列表的满意度
的值就越高
对于
.
,
,
3
nDCG
lmd100
其 中
.
其他的与此 类 似
,
900,1 000,
标代表
模不同的组
法
时的高 相 似 度 组 的 情 况
人数为
规模人数为
似
表 示
_
2
同 理
的低相似度组的情况
.high
;
3
8
.
的随机相似度组的情况
λ
100
代 表 组 规 模 人 数 为
_
3
2
代 表 组 规 模
,low
代表 组
,random
其他情况类
,
_
8
不同
值对实验结果的影响结果与分析
图
.
实验结果与分析
4.2
4.2.1
λ
为了分析不同的
分别取
λ
对
λ
值对推荐效果的影响
笔者
,
100,200,300,400,500,600,700,800,
图中纵坐
结果如图
图
2、
.
横 坐 标 代 表 内 部 相 似 度 和 规
时 的 算
的 值
值 为
所示
和图
4
对于规模为
;
其他情况下
;
果最好
最好
似度组来说
3,5,8
取
,λ
组规模为
,
500
2,3,4
左右效 果 最 好
当 组 规 模 大 于
;
600
可 以 发 现
的效果很明显是最优的
2
,
此 外
.
1 000
之前类似的结 果
对组规模为
对于别的情况却表现不佳
和随机组表现 都 一 般
此可以看出
现都很优异
很难找出一个
,
,
;λ
λ
.
4
取
,λ
400
的 组
效果比较好
的 时 候
对于随机组
.
时 效 果
对于低相
.
或
取
,λ
500
的 时 候
取
,λ
也 有 与
,
的 时 候
但是
,
在高相似度
因
.
的值在任何情况下表
1 000
100
取
取
λ
的高相似度组的推荐效果最好
在 低 相 似 度 组 表 现 很 好
不同值的结果对比图(随机相似度组)
4
此外还可以得到如下结果
对于低相似度组和
:
推荐结果的效果随着组规模的增加而
,
的 时 候 效
这说明组推荐的
.
随即组来说
降低
果甚至要好于比他更小规模的组
效果不一定随着组规模的增加而降低
然而对于高 相 似 度 组
;
组 规 模 为
,
8
通过上述实验计 算 得 到 了 每种 情 况 下 的
所 示
优值
如表
,
1
根据表
进行推荐
,
最优的结果
如 果 针 对 高 相 似 度 的
.
就可以将
设置为
400
λ
3
1
λ
最
人 群 组
以得到
.
.
表
1
人
组
3
2
人
组
各种情况下
最优数值
6
人
组
7
人
组
8
人
组
λ
人
组
5
4
人
组
高相
似度组 100 400 500 400 500 800 400
低相
似度组 600 800 700 3 000 3 000 3 000 3 000
随机
组 300 600 900 900 1 000 1 000 1 000
图
2
不同值的结果对比图(高相似度组)
4.2.2 HAaB
通过表
算法与典型算法的对比与分析
中总结的数据
可以实现使用
,
1
下面对
.
算法对组进行推荐
的几种典 型 算 法 做 一 下 对 比
图
表
图中
.
计 数 算 法
Random
,LM
所示
7
HAaB
HAaB
算法与之前介绍
和
5、
6
代
,Borda
算 法
结 果 如 图
指随机推荐方法
代 表
图
,
Least Misery
,
AA
Average Aggregation
图
5、
和 图
论针对高相似度组
中 结 果 表 明
方 法 无
7
低相似度组还是随机组的推荐
、
,HAaB
.
6
Borda
代表
图
算法
图
从图
度组来说
不同值的结果对比图(低相似度组)
3
图
2、
组规模为
,
中 可 以 看 出
对 于 高 相 似
:
时 算 法 取 得 效
4
时
和图
取
3
100
2
,λ
第
卷 第
期
5
35
马远坤
等
,
一种针对群体的列表融合推荐算法
:
99
,
3
比
10
Borda
个百分点
,HAaB
算 法 平
Average Aggregation
比其他三种方法平均高出至
,
算
效果都是 最 优 的
在 高 相 似 度 组 的 对 比 中
.
算法的 推 荐 精 度 比
均高大概
个百分点
少
在低相似度组的对比中
.
法的推荐精度比
个百分点左右
百分点
外
优 于
Least Misery
,Average Aggregation
5
个
计数算法高了 将 近
高 出 了
此
.
算 法 的 推 荐 效 果 一 般 要
Average Aggregation
比
10
个 百 分 点
,HAaB
平均高出
等 算 法
算 法 仅 仅 在 高 相 似 度 组 中 效 果 比
、Least Misery
其他情况下 都 不 如
,
Misery
好
,
算法不一定在每种情况下效果都最好
以弥补独立算 法 的 缺 陷
最差的
证明了所有的算法都是有效的
,
Borda
这 说 明 独 立 的
混合算法可
,
随 机 算 法 的 效 果 是
最 后
.
;Least
Borda
Borda
计 数
算 法
30
,
,
.
,
,
Borda
算 法 和
同 时
age Aggregation
考虑了组员推荐列 表 中 项 目 评 分 和 项 目 排 名 两 个
因素
通 过 实 验 发 现
.
摒 弃 了 这 两 种 算 法 的 缺 陷
算法比
算 法 的 思 想
HAaB
等算法效果要好很多
荐的效果就越 好
着组规模的增加而降低
外
Average Aggregation
此外
;
算法和
组内相似度越高
,
一 般 情 况 下
.
Borda
组推
,
组 推 荐 的 效 果 还 随
但是在少数情况下也有例
,
,
,
.
λ
HAaB
值来进行推荐
算法的关 键 是 在 每 种 情 况 下 使 用 最 优
因此未来的工作比较重要的一
的
,
点就是解决如何设 计 算 法 自 适 应 得 到 每 种 情 况 下
此 外
组 员 推 荐 列 表 的 融 合 策 略 可 以
的最优
,
.
可以将融合策略考虑的因素更加
做进一步的优化
,
细化
算法做进一步的优化和验证
将 来 也 可 以 在 多 个 数 据 集 上 对
,
同时
.
值
λ
HAaB
.
图
5 HAaB
算法与其他算法结果对比图(高相似度组)
图
6 HAaB
算法与其他算法结果对比图(低相似度组)
参考文献:
[1]Dietmar Jannach,Markus Zanker,Alexander Felfernig,
et al.Recommender Systems:An Introduction[M].
Cambridge:Cambridge University Press,2010.
[2]Z.Yu,X.Zhou,Y.Hao,et al.Tv program recom-
mendation for multiple viewers based on user profile
merging [J].User Modeling and User-Adapted Inter-
action,2006,16(1):63
82.
–
[3]Francesco Ricci,Lior Rokach,Bracha Shapira,et al.
Recommender System Hankbook [M ].New York:
Springer,2011.
[4]Linas Baltrunas,Tadas Makcinskas,Francesco Ricci.
Group Recommendations with Rank Aggregation and
Collaborative Filtering[C].Barcelona,Spain:Associa-
tion for Computing Machinery,2010:26
30.
–
[5]Koren Y,Bell R,Volinsky C.Matrix Factorization
Techniques for Recommender Systems[J].Computer,
2009,42(8):30
37.
–
[6]Deshpande M,Karypis G.Item-based top-N recom-
mendation algorithms[J].ACM Transaction on Infor-
mation Systems,2004,22(1):143
177.
–
[7]C.Manning.Introduction to Information Retrieval[M].
Cambridge:Cambridge University Press,2008.
图
此外
,HAaB
7 HAaB
,
算法在组规模大于
算法与其他算法结果对比图(随机相似度组)
算 法 和
对 于 高 相 似 度 组 来 说
的时候
Average Aggregation
推荐精度基 本 处 于 稳 定 状 态
在 其 他 的 所 有 情 况
大部分算法的效果都会随着组规模的增大而降
下
,
低
对于大部 分 算 法 来 说
高 相 似 度 组 的 推 荐 效 果
.
而 低 相 似 度 组 的 推 荐 效
其次是 随 机 组
是最好的
,
果是最差的
组 推 荐 算 法
的推荐效果就越好
这 说 明 组 内 相 似 度 越 高
.
3
;
,
,
,
.
小结
5
笔者分析了当前典型的基于列表融合的组推
荐算法的缺陷
并提出了
,
HAaB
算法融合了
Aver-