An Experimental Study on Implicit Social Recommendation

1 解决的问题及其结论

问题:

① 当显式信息不足时,隐式信息是否可以改进推荐质量?

② 隐式信息能否改进推荐系统的整体性能?

③ 如果有足够的显式信息,使用隐式信息与显式信息相比,那个更好?

结论:

① 使用隐式信息,包括相似用户的信息,可以有效改进推荐系统的推荐质量。此外,其还可以改善推荐系统的性能。

② 一个有趣的发现是,使用不同用户的隐式信息同样可以改善系统,这可以为提取数据对象提供新思路。

③ 在显式信息充足的情况下,显示信息比隐式信息改进推荐系统的能力略强。

2 模型优势

        在本论文之前,已有许多研究推荐系统的信息提取与学习方法,其中大多数为显示信息的提取。可是很少有社交网站可以做到提供完整的显示信息体系,所以经常会出现因显式数据不足导致推荐系统推荐质量与性能下降的情况。在近期,不少学者发现可以利用隐式信息对推荐系统训练,但由于研究时间不长,利用隐式信息的方法还尚待完善,且至今还没有使用该方法的具体论据。

        隐式信息可理解为不可直接见到的用户评价信息,通常具体表现在与其关系密切与无关的其他用户上,利用他们自身的评级信息和两者间交互信息,可以认为间接的获取其评级信息。具体关系表示可见图1,u_i代表第i个用户,其被蓝圈包裹,表示其显式信息,而紫色圈表示隐式信息,最外层矩形表示整体用户空间。

Figure 1: Explicit and Implicit Social Relationships

        本论文重点关注社交推荐体统,在总结大多流行的显示与隐式信息提取与训练方法同时,通过全面的实验,论证使用隐式信息改善推荐系统的可行性,并利用数据论证提取隐式信息的相关方法于未来改进推荐系统的重要性。

3 模型实现步骤

3.1 模型建立

3.1.1 整合数据的基本方法

        因为信息数据矩阵一般为庞大的稀疏矩阵,所以有必要先整合数据。整合数据流行的方法是矩阵分解,矩阵分解发展成熟,在运算性能和质量都有优势。传统的矩阵分解方法主要是奇异值分解<1>,本文将使用正则奇异值分解获得整合数据,可定义为下式:

L = \mathop {min}\limits_{U,V} \frac{1}{2}{\sum\limits_{i = 1}^m {\sum\limits_{j = 1}^n {{I_{ij}}({r_{ij}} - u_i^T{v_j})} } ^2} + \frac{{{\lambda _1}}}{2}\left\| U \right\|_F^2 + \frac{{{\lambda _2}}}{2}\left\| V \right\|_F^2

其中{{I_{ij}}}表示用户是否评价,uv表示列关系矩阵,{{\lambda _1}}{{\lambda _2}}表示正则化参数。学习更新uv的方法如下:

    {u_i} \leftarrow {u_i} + {\gamma _1}(\Delta _{ij}^{}{v_j} - {\lambda _1}{u_i}),   

    {v_j} \leftarrow {v_j} + {\gamma _2}(\Delta _{ij}^{}{v_j} - {\lambda _2}{v_j})

其中:\Delta _{ij}^{} = {r_{ij}} - u_i^T{v_j}{\gamma }表示学习率。

本论文基于该矩阵分解方法,整合并求得多种数据集合。

3.1.2 社会正则化模型建立

本文通过社会正则化(SR)方法为社会推荐做准确建模,其可表示为:

L = \mathop {min}\limits_{U,V} \frac{1}{2}{\sum\limits_{i = 1}^m {\sum\limits_{j = 1}^n {{I_{ij}}({r_{ij}} - u_i^T{v_j})} } ^2} + \frac{\alpha }{2}\sum\limits_{i = 1}^m {\sum\limits_{f \in {F^ + }(i)}^{} {{s_{if}}\left\| {{u_i} - {u_f}} \right\|} } _F^2 + \frac{{{\lambda _1}}}{2}\left\| U \right\|_F^2 + \frac{{{\lambda _2}}}{2}\left\| V \right\|_F^2

公式由矩阵分解公式改进得到,新增部分中\alpha 表示正则系数,{{F^ + }}表示用户外联信息,s_{if}表示用户if的关系相似度。同样的,学习更新方法如下:

{u_i} \leftarrow {u_i} + {\gamma _1}(\Delta _{ij}^{}{v_j} - \sum\limits_{f \in {F^ + }(i)}^{} {{s_{if}}} ({u_i} - {u_f}) - \alpha \sum\limits_{g \in {F^ - }(i)}^{} {{s_{ig}}({u_i} - {u_g})}  - {\lambda _1}{u_i})

{v_j} \leftarrow {v_j} + {\gamma _2}(\Delta _{ij}^{}{v_j} - {\lambda _2}{v_j})

其中F^-为内联信息,更新中加入链式关系用户间信息相关程度的影响,三个字母igh的关系为:用户i的相似用户为用户g,而用户g的相似用户为用户h。当学习收敛后,模型整体仍会进入和谐的状态。

3.1.3 隐式用户关系模型建立

        隐式用户的关系可理解为该用户与其他用户交互信息时的关系情况,为满足实验需求,本文将计算两者间的相关程度并排序,取前n名关系密切和后n名关系不同的用户作为作为最终隐式信息使用。本文采用皮尔逊相关系数(PCC)<2>量化用户间的关系,表达式如下:

{s_{ij}} = \frac{{\sum\limits_{k \in I(i) \cap I(f)}^{} {({r_{ik}} - {{\bar r}_i})({r_{fk}} - {{\bar r}_f})} }}{{\sqrt {\sum\limits_{k \in I(i) \cap I(f)}^{} {{{({r_{ik}} - {{\bar r}_i})}^2}} } \sqrt {\sum\limits_{k \in I(i) \cap I(f)}^{} {{{({r_{fk}} - {{\bar r}_f})}^2}} } }}

其中{I(i)}是用户i的评级集合,{\bar r}为其评级平均值。利用该式,我们可以将s_{ij}规范到[-1,1]间,之后再利用公式f(x)=(x+1)/2将范围规范到[0,1]。将最终结果导入至矩阵分解的式子中求解。

        对于不同用户,为了突出于相似用户的不同,我们采取文献[19]<3>的方法扩大不同用户的关系距离。其中主要工作是将s_{ij}取负,并将正则化公式中的{{s_{if}}\left\| {{u_i} - {u_f}} \right\|}变大。

3.1.4 社交项关系模型建立

        本文已经选择采用隐式社交信息作为更新系统的载体,得到的整合信息包括相关用户与不同用户的隐式信息。在处理信息后,自然也可以利用其社交项(这里不明白有什么关联,什么是社交项?)<4>获取更多隐式信息。社交项的相关定义与社会正则化及其相似,只是处理的对象不同。其表达式如下:

L = \mathop {min}\limits_{U,V} \frac{1}{2}{\sum\limits_{i = 1}^m {\sum\limits_{j = 1}^n {{I_{ij}}({r_{ij}} - u_i^T{v_j})} } ^2} + \frac{\beta }{2}\sum\limits_{i = 1}^n {\sum\limits_{q \in {Q^ + }(j)}^{} {{s_{jq}}\left\| {{u_j} - {u_q}} \right\|} } _F^2 + \frac{{{\lambda _1}}}{2}\left\| U \right\|_F^2 + \frac{{{\lambda _2}}}{2}\left\| V \right\|_F^2

{s_{jq}} = \frac{{\sum\limits_{k \in U(j) \cap U(q)}^{} {({r_{kj}} - {{\bar r}_j})({r_{kq}} - {{\bar r}_q})} }}{{\sqrt {\sum\limits_{k \in U(j) \cap U(q)}^{} {{{({r_{kj}} - \bar r)}^2}} } \sqrt {\sum\limits_{k \in U(j) \cap U(q)}^{} {{{({r_{kq}} - {{\bar r}_q})}^2}} } }}

学习更新为:

{u_i} \leftarrow {u_i} + {\gamma _1}(\Delta _{ij}^{}{v_j} - {\lambda _1}{u_i})

{v_j} \leftarrow {v_j} + {\gamma _2}(\Delta _{ij}^{}{v_j} - \beta \sum\limits_{q \in {Q^ + }(j)}^{} {{s_{jq}}} ({u_j} - {u_q}) - \beta \sum\limits_{h \in {Q^ - }(j)}^{} {{s_{jh}}({u_j} - {u_h})}  - {\lambda _2}{v_j})

公式参数\alpha变为\beta,变为表示社会项的正则化参数。项s的角标变为jqjh,表示的对象关系改为社会项,其余与igh的关系类似。(这里针对v的更新公式,论文采用的参数为\lambda_1,我认为这里有问题,应当使用\lambda_2并已在论文改正,不知老师怎么看?)<5>

3.1.5 整合模型

        综合以上的隐式社交模型和社交项模型,我们可以得到统一的隐式信息的数据整合模型,表达式如下:

L = \mathop {min}\limits_{U,V} \frac{1}{2}{\sum\limits_{i = 1}^m {\sum\limits_{j = 1}^n {{I_{ij}}({r_{ij}} - u_i^T{v_j})} } ^2} + \frac{\alpha }{2}\sum\limits_{i = 1}^n {\sum\limits_{f \in {F^ + }(i)}^{} {{s_{if}}\left\| {{u_i} - {u_f}} \right\|} } _F^2 + \frac{\beta }{2}\sum\limits_{i = 1}^n {\sum\limits_{q \in {Q^ + }(j)}^{} {{s_{jq}}\left\| {{u_j} - {u_q}} \right\|} } _F^2 + \frac{{{\lambda _1}}}{2}\left\| U \right\|_F^2 + \frac{{{\lambda _2}}}{2}\left\| V \right\|_F^2

学习更新模型整合如下:

{u_i} \leftarrow {u_i} + {\gamma _1}(\Delta _{ij}^{}{v_j} - \alpha \sum\limits_{f \in {F^ + }(j)}^{} {{s_{if}}} ({u_i} - {u_f}) - \alpha \sum\limits_{f \in {F^ - }(j)}^{} {{s_{ig}}({u_i} - {u_g})}  - {\lambda _1}{u_i})

{v_j} \leftarrow {v_j} + {\gamma _2}(\Delta _{ij}^{}{v_j} - \beta \sum\limits_{q \in {Q^ + }(j)}^{} {{s_{jq}}} ({u_j} - {u_q}) - \beta \sum\limits_{h \in {Q^ - }(j)}^{} {{s_{jh}}({u_j} - {u_h})}  - {\lambda _2}{v_j})

至此模型建立完成,利用整合模型和用户关系模型,可以通过整合数据、更新学习两个步骤改进推荐系统。

3.2 模型求解

3.2.1 数据准备

⑴ 隐式信息数据

        本文将采用网上开源的两个数据集:① Dataset MovieLens  ② Dataset EachMovie。他们是原始就用于推荐系统的测试和训练而建立,②的数据量相对①更大,分别用10维和50维的矩阵表示。具体的信息可见表1和表2。本文随机抽取每个数据集80%数据用于训练,20%用于测试,通过此计算求解查看最终的性能测试结果。

数据集基本信息

⑵ 显式信息数据

        本文将采用豆瓣网数据作为显式数据。其作为中国的社交评论平台,有着较完整的显示信息生态,可以很好地获取显式信息。数据集基本信息如表5和表6。(心得顺序与论文顺序不同)

数据集基本信息

3.2.2 求解数据介绍

        本论文省略了求解步骤,而对最终的数据有详细分析,现做如下数据项解释:

UserMeam:利用基线用户的平均值代替丢失值。

ItemMean:利用每一项的基线平均预测值表示丢失值。

RSVD:  假设分布为高斯分布,利用之前方法计算的矩阵分解的值。

{SR}_{[i_{[+or-]}]}^{[u_{[+or-]}]}:  SR表示正则值,角标表示不同的类型。其中u表示获取的是隐式信息,i表示获取社会项信息,+表示相似用户的信息,-表示不同用户的信息。选项可以组合使用。

SR_{[word]}^{[opt]}:   SR表示正则值,opt为选项,例如top_{10}表示前十名的用户。word表示信息选项,其中会有exp表示显式信息,imp表示隐式信息。

为了使最终评估结果更公平直观,本文采用平均绝对误差(MAE)和均方根误差(RMSE)两个估量进行比较,两者定义如下:

MAE = \frac{{\sum\nolimits_{ij} {\left| {{{\bar r}_{ij}} - {{\hat r}_{ij}}} \right|} }}{N},  RMSE = \sqrt {\frac{{\sum\nolimits_{ij} {{{({{\bar r}_{ij}} - {{\hat r}_{ij}})}^2}} }}{N}}

其中{{\hat r}_{ij}}表示评分预测值,N表示评分总项数。有了需要求解的基本数据目标,就可以求解模型得到数据,并进行结果分析。

4 模型结果评估与进一步分析

        模型求解根据开始的问题分为两个部分进行试验,一个是当显示信息不足,仅使用隐式信息时,一个是有充足的显示信息时,与隐式信息的性能比较。对于公式参数,设置\lambda_1=\lambda_2=0.01,\gamma_1=\gamma_2=0.05

4.1 仅使用隐式信息的实验

4.1.1 性能分析

        实验结果数据如表3表4所示:

数据结果

从表中,我们可以看到4个现象:

① 表中SR^{u+}方法的误差小于RSVD,比其结果更好,所以可以得出在没有显示信息时,隐式信息确实可以提高推系统的推荐质量。

② 表中SR_{i+}方法优于SR^{u+}方法,说明基于社交项的数据比纯隐式数据的改进效果更好。

③ 表中SR^{u+-}SR_{i+-}方法要分别优于SR^{u+}SR_{i+}。这说明加入不同用户的信息也能有效的改善推荐系统的推荐质量。

④ 表中SR^{u+-}_{i+-}方法展现了最佳的性能。总的说明了基于社交信息的改进推荐系统框架的有效性和灵活性。

4.1.2 准确度分析

        我们让用户在训练集中评分评估结果误差,图2图3为与rsvd算法比较的结果图:

Figure 2: Performance Comparison on Different Users (MovieLens) 
Figure 3: Performance Comparison on Different Users (EachMovie)

        图(c)是总体评级的分布情况,是训练集对每个用户的评级情况。从由此分布得到的图(a)和(b)看出,整体上SR方法的结果比RSVD方法好,且随着评级样本数的增多,SR方法比RSVD方法好的程度也会越来越大。

4.2 显式信息充足时的实验

        显示信息与隐式信息训练后的误差结果如表7:

数据结果

        从表7中可以看出,隐式信息的两种方法(尤其是对比前十名的SR方法结果)都比显式信息得到的结果略差一些,其中分别采用了不同的训练数据比例,分别是40%和60%,我们很想知道为何显式信息有如此可观的训练效果。针对这种情况,本论文提出一个问题:每个用户与其好友用户的相似性如何?是否他们之间有很大不同?针对该问题,我们对三种方法做一致性检验(consistence analysis)。为了检测一致性,我们采用均方根距离(RMSD)方法,其表达式如下:

RMSD = \sqrt {\frac{{\sum\nolimits_{f \in S(i)} {{{({s_{if}} - {{\bar s}_i})}^2}} }}{{\left| {S(i)} \right|}}}

式子表示用户i的均方根距离,其中S(i)表示当前用户的好友列表,s_{if}与之前的定义类似。利用该方法得到计算结果如图4:

Figure 4: Similarity Consistence Analysis

从图4中可以看到,SR_{imp}SR_{imp}^{top10}方法的距离及其相似。在一定范围内,SR_{exp}方法比前两者的均方根距离更大。均方根距离在一定程度表示信息的相似度,而SR_{exp}方法明显内容种类比前两者多。所以可以知道,显示信息更加优秀的根本原因是其用户信息多样性大,其可以对推荐系统性能的提高有很大帮助。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,366评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,521评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,689评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,925评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,942评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,727评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,447评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,349评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,820评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,990评论 3 337
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,127评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,812评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,471评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,017评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,142评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,388评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,066评论 2 355

推荐阅读更多精彩内容