基于隐语义模型的个性化观影推荐
发布时间:2019-05-24 浏览次数:93
作者:吴建新、王昊、倪洁
1、局部潜在模型(Partial Latent Models)
个用户和
个项目,我们可以观测到
基于用户属性的变量
,
基于项目属性的变量
,以及用户偏好矩阵
。其中,
表示第
个用户对第
个项目的喜好程度,如电影评分、听歌频率、选课与否、课程成绩等。
,分别用来解释用户和项目的变异性,因为无法观测,所以称之为潜在因子(latentfactor),
表示潜在因子数量的上界。
表示第
个用户的属性信息,
第
个项目的属性信息,
分别表示模型对应的系数,
为潜在因子。
2、损失函数(lossfunction)
为任意损失函数:
3、正则化条件
。
。
。
4、几种算法准则
(1)参数更新准则
后,保持其他参数不变,分别计算三个系数全局正则化函数的改变程度,选择变化最大的参数进行更新,表达式如下:
(2)参数调整准则
和
的更新中,因为
始终成立,所以会产生许多个结果。为了克服这一难题,本小组根据论文内容,在每次潜在因子更新之后进行参数调整,使用“等尺度策略”确保更新后的参数不影响目标函数。即:
(3)RMSE评价指标
1、算法准备
,在做推荐以前,我们需要先估计出表达式内的未知参数:
。为了减少迭代次数,降低程序的时间成本,我们使用多元线性回归来初始化
和
,但是由于缺乏对潜在因子的了解,我们用全为1
,随后带入到lasso
的迭代过程分为了以下五个步骤:初始化、分块改善、最大化提升、潜在因子调整、迭代终止判断。
2、算法流程
(1)初始化
和潜在因子个数(初始设置为50
,
中的初始值,lasso
(初始设置为1
(2)分块改善
而言,利用lasso
,所求出的结果是
,其中
,并计算
;
而言,利用lasso
,所求出的结果是
,而其中
,并计算
;
,直接利用线性回归求解
,其中
,
,求出
,并计算
。
(3)最大化提升
(4)潜在因子调整
矩阵会存在多个符合条件的结果,所以需要应用第二部分所提到了的参数调整准则克服这一难题,即在每次更新之后都根据2.4.2
(5)迭代终值判断
四、movielens描述性分析
1、movielens数据介绍
2、电影平均评分
3、电影类型分析
Movielens数据中包含了近四千部电影评分数据,根据用户和电影属性,我们可以分析不同性别、年龄、职业用户的观影偏好。
![]()
(1)性别因素
(2)职业因素
1、模型训练
,计算得
,不是很理想。所以我们打算将原数据分为训练集和测试集,训练集用来训练模型,测试集用来检验模型。考虑到评分矩阵数据结构的特殊性,只对用户数进行划分,而电影数保持3706
个用户构成训练集,然后对剩下的用户根据某种分配方法分成
个包含
个用户的测试集。将模型应用于
可得到
个
,加上训练街,一共可以得到
个
,计算
个的均值,选择
最小的模型作为最终的模型。
,训练了9
表5.1 不同的
模型的![]()
| mean | 1.728 | 0.971 | 2.583 | 2.287 | 2.397 | 1.601 | 2.172 | 2.394 | 2.501 |
| u | 500 | 1000 | 1500 | 2000 | 2500 | 3000 | 3500 | 4000 | 4500 |
| train | 1.856 | 0.971 | 2.788 | 2.373 | 2.512 | 1.665 | 2.233 | 2.470 | 2.568 |
| test | 1.715 | 0.939 | 2.558 | 2.242 | 2.334 | 1.434 | 2.109 | 2.317 | 2.415 |
| | 1.852 | 0.990 | 2.455 | 2.135 | 2.324 | 1.433 | 2.094 | 2.314 | 2.413 |
| | 1.687 | 0.978 | 2.687 | 2.437 | 2.545 | 1.654 | 2.255 | 2.506 | 2.609 |
| | 1.754 | 0.965 | 2.498 | 2.234 | 2.351 | 1.667 | 2.138 | 2.366 | |
| | 1.556 | 0.967 | 2.645 | 2.322 | 2.431 | 1.668 | 2.205 | | |
| | 1.699 | 0.943 | 2.551 | 2.280 | 2.388 | 1.685 | | | |
| | 1.819 | 0.946 | 2.559 | 2.282 | 2.402 | | | | |
| | 1.663 | 0.985 | 2.562 | 2.280 | | | | | |
| | 1.750 | 0.987 | 2.218 | | | | | | |
| | 1.597 | 1.006 | | | | | | | |
| | 1.794 | | | | | | | | |
折线图
随着
的增加先降低,然后又增加再下降再上升,在
时,取得了最小值
。并且
对应的10
几乎都小于1
。
2、参数选择
所训练出的模型作为最终模型(下简称
,其他同理),下面需要对正则化函数里的惩罚因子λ和潜在因子的个数
进行选择。经拟合计算后,不同λ和
值所对应的
见表5.2
,默认值为
。
不同折线图λ值的
突然发生了变化,为了可以更好适应其他模型,我们决定取
。
不同折线图K值的
呈下降趋势,应该取大一些的K,但是沈教授的文章有提出,K一般在
即可,所以我们决定取
。
3、电影TOP10推荐
,并将模型参数带入模型,计算出了新的电影评分矩阵,新的评分矩阵将用户没看过的电影也做了填充。我们对每一个用户的评分进行排序,最后就能够得到用户对新电影的偏好序列,从中选取部分即可进行推荐。
| Moviename | 73 | Moviename | 3025 | Moviename | 4861 |
| Crime | 5.0000 | Western | 5.0000 | Musical | 5.0000 |
| Fantasy | 4.5000 | Crime | 4.5000 | Mystery | 4.5000 |
| Western | 4.5000 | Romance | 4.2000 | Animation | 4.2000 |
| Horror | 4.3333 | Adventure | 4.0000 | Horror | 3.8333 |
| Drama | 4.1667 | Film-Noir | 4.0000 | Action | 3.8182 |
| Action | 4.1579 | War | 3.9231 | Western | 3.7500 |
| Children's | 4.0000 | Drama | 3.8947 | Film-Noir | 3.5385 |
| Romance | 4.0000 | Action | 3.8667 | War | 3.0000 |
| Adventure | 3.8333 | Sci-Fi | 3.7209 | Documentary | 2.7500 |
| Sci-Fi | 3.5556 | Thriller | 3.6875 | Crime | 2.5000 |
| Thriller | 3.5000 | Comedy | 3.6667 | Sci-Fi | 2.0000 |
(1)用户73 TOP10推荐
| MovieID | Title | Genre | User(73) |
| 2858 | American Beauty (1999) | Comedy|Drama | 4.669429 |
| 2997 | Being John Malkovich (1999) | Comedy|Drama | 3.713606 |
| 608 | Fargo(1996) | Crime|Drama|Thriller | 3.325717 |
| 296 | Pulp Fiction(1994) | Crime|Drama | 3.244607 |
| 2762 | Sixth Sense(1999) | Thriller | 3.043435 |
| 50 | Usual Suspects(1995) | Crime|Thriller | 2.967508 |
| 593 | Silence of the Lambs (1991) | Drama|Thriller | 2.94804 |
| 1617 | L.A. Confidential (1997) | Crime|FilmNoir|Mystery|Thriller | 2.856124 |
| 318 | ShawshankRedemption(1994) | Drama | 2.833647 |
| 2599 | Election(1999) | Comedy | 2.748397 |
表5.2可以看出用户73评分最高的五类电影分别是:犯罪、魔幻、西部、恐怖、剧情。而表5.3中推荐给该用户的电影题材为:犯罪、剧情、喜剧、惊悚。前三部电影分别是:Americanbeauty,beingjohnmalkovich,fargo,都是剧情类电影,几乎与用户73所感兴趣的电影一致。
(2)用户3025 TOP10推荐
| MovieID | Title | Genre | User(3025) |
| 356 | Forrest Gump (1994) | Comedy|Romance|War | 3.695447 |
| 597 | Pretty Woman (1990) | Comedy|Romance | 3.282008 |
| 539 | Sleepless in Seattle (1993) | Comedy|Romance | 3.203592 |
| 1784 | As Good As It Gets (1997) | Comedy|Drama | 3.108846 |
| 1307 | When Harry Met Sally(1989) | Comedy|Romance | 3.075615 |
| 3255 | League of Their Own(1992) | Comedy|Drama | 3.039105 |
| 2918 | Ferris Bueller's Day Off(1986) | Comedy | 2.992783 |
| 1393 | Jerry Maguire (1996) | Drama|Romance | 2.953907 |
| 587 | Ghost (1990) | Comedy|Romance|Thriller | 2.918606 |
| 11 | American President(1995) | Comedy|Drama|Romance | 2.879049 |
(3)用户4861 TOP10推荐
| MovieID | Title | Genre | User(4861) |
| 11 | American President(1995) | Comedy|Drama|Romance | 2.879049 |
| 2571 | Matrix, The (1999) | Action|Sci-Fi|Thriller | 4.71435 |
| 589 | Terminator 2:(1991) | Action|Sci-Fi|Thriller | 4.207498 |
| 260 | Star Wars: Episode IV | Action|Adventure|Fantasy|Sci-Fi | 4.13472 |
| 1196 | Star Wars: Episode V | Action|Adventure|Drama|Sci-Fi|War | 4.070115 |
| 480 | Jurassic Park (1993) | Action|Adventure|Sci-Fi | 3.823875 |
| 1240 | Terminator, The (1984) | Action|Sci-Fi|Thriller | 3.66266 |
| 2628 | Star Wars: Episode I | Action|Adventure|Fantasy|Sci-Fi | 3.531843 |
| 2916 | Total Recall (1990) | Action|Adventure|Sci-Fi|Thriller | 3.494237 |
| 1200 | Aliens (1986) | Action|Sci-Fi|Thriller|War | 3.339601 |
| 1270 | Back to the Future (1985) | Comedy|Sci-Fi | 3.24642 |
六、总结与评价
1、模型的优点
2、模型的缺点
