2014年10月第35卷 第10期
计算机工程与设计
COMPUTERENGINEERINGANDDESIGN
Oct畅2014Vol畅35 No畅10
基于遗忘曲线的微博用户兴趣模型
于洪涛1,崔瑞飞1+,董芹芹2
(1.国家数字交换系统工程技术研究中心,河南郑州450002;2.天津财经大学研究生院,天津300222)
摘 要:为解决微博用户兴趣漂移问题,以人类记忆学中遗忘曲线为基础,提出一种微博用户兴趣模型,利用用户历史信息预测当前兴趣。在预测过程中,用户关注某信息的时间距离当前时间越远,该信息越容易被遗忘,其对用户当前兴趣的影响越小;用户关注某一领域的信息越多,印象越深刻,对该领域的兴趣度越高。这两点与人类对知识逐渐遗忘和重复学习的过程具有高度相似性,因此该模型预测准确性更高。实验结果表明,该模型能较好地预测微博用户兴趣,召回率可达85畅3%,实用性较强。
关键词:微博;预测;用户兴趣;重复学习;遗忘曲线
中图法分类号:TP393 文献标识号:A 文章编号:1000‐7024(2014)10‐3367‐06
收稿日期:2013‐12‐18;修订日期:2014‐02‐20
基金项目:国家863高技术研究发展计划基金项目(2011AA010603、2011AA010605)
作者简介:于洪涛(1970),男,辽宁丹东人,博士,教授,研究方向为通信与信息系统;+通讯作者:崔瑞飞(1989),男,山东淄博人,硕士研究生,研究方向为通信与信息系统;董芹芹(1988),女,山东淄博人,硕士研究生,研究方向为管理科学与工程。E‐mail:cuiruifei0815@163畅com
Micro‐bloguserinterestmodelbasedonforgettingcurve
YUHong‐tao1
,CUIRui‐fei
1+
,DONGQin‐qin
(1.NationalDigitalSwitchingSystemEngineeringandTechnologicalR&DCenter,Zhengzhou450002,China;
2.PostgraduateDepartment,TianjinUniversityofFinanceandEconomics,Tianjin300222,China)
Abstract:Tosolvetheproblemofthemicro‐bloguserinterestdrift,amicro‐bloguserinterestmodelbasedontheforgettingcurvewaspresented.Thecurrentinterestwaspredictedbythehistoryinformationofusers.Inthepredictingprocess,thelongerthetimefromtheusers’attentionforamessagetothecurrent,theweakertheinfluenceofthemessage;andthehigherinterestdegreetothefield,themoreattentionuserspaidtoaconcernedfield.Thesetwopointsareregardedastheprocessofhumangraduallyforgettingandrepeatedlylearningknowledge.Therefore,themodelpossessesahigheraccuracy.Experimentalresults
showthatthemodelcanpredictthemicro‐bloguserinterestbetterwiththerecallrateof85畅3%andgoodpracticality.Keywords:micro‐blog;predict;userinterest;repeatedlearning;forgettingcurve
0 引 言
微博中的用户兴趣分为长期兴趣和短期兴趣[1]。长期兴趣是指用户本质上的、固有的对某方面内容的偏好,它是基本稳定的,这也是我们通常所理解的兴趣。短期兴趣是用户阶段性的兴趣,它反映的是用户在某时间段对某方面内容的喜好,随着时间推移这种喜好也随之变化,本文讨论的用户兴趣指的是短期兴趣。
目前有关微博用户兴趣建模的研究并不成熟,尚处于起步阶段。Wu等[2]从用户发布的微博中抽取若干关键词作为该用户的个性化特征,来描述用户的兴趣。但由于微博的随意性和简短性,这种提取关键词的方法并不是很理想。孙威[3]分析了关注对象对用户兴趣的影响,认为关注对象
中的名人或人气类用户的兴趣能很好地反映用户的兴趣。但这种从关注对象中挖掘自身兴趣的方法比较片面,因为它忽视了自身一些因素(如标签、微博内容)的影响。Weng等[4]把每个用户发布的所有微博组合成一个大文档,
然后使用标准LDA模型来挖掘用户兴趣;ZhihengXu等[5]改进了标准LDA模型,提出了更适合微博的
Twitter‐User模型。基于LDA模型的方法引入了潜在语义的概念,在一定程度上解决了微博文本的随意性和简短性带来的数据稀疏性问题。
以上研究在虽然不同程度上都取得了一定的成果,但是也普遍存在着一个问题:没有考虑用户兴趣漂移[6]带来的影响。兴趣漂移是指随着时间推移,用户可能会产生新的兴趣,也可能对过去感兴趣的东西不再热衷;即使兴趣
 计算机工程与设计
2014年
目标没有发生改变,在不同时期对不同兴趣的喜好程度也可能不同。事实上,微博网络的动态性和即时性[7]是很强的,兴趣漂移现象比较严重,因而要想准确地对微博用户兴趣建模就必须考虑用户兴趣漂移带来的影响。基于上述分析,本文在考察用户兴趣漂移机理的基础上,借鉴人类记忆学中遗忘曲线的相关知识,提出了一种微博用户兴趣模型,对用户兴趣进行实时度量。
1 微博网络中的用户兴趣分析
1畅1 微博内容与用户兴趣的相关性分析
在微博网络中,发布(原发或转发)微博是用户最基本的行为,而且这是一种主观性的行为。所以从宏观上看,微博内容在一定程度上反映了用户的兴趣;但在微观层面,由于微博的随意性以及用户使用微博方式的多样性等特点,并非每一篇博文都能很好地反映用户兴趣。ZhihengXu
[5]
等依据能否反映用户兴趣将微博分成两大类:兴趣相关微博和兴趣不相关微博,如图1所示;图1还列举了兴趣不相关微博的3个实例,可以发现,从这类微博中很难挖掘出用户的兴趣。所以,不能把所有微博文本用于用户兴趣挖掘,
必须过滤掉兴趣不相关微博。
图1 微博兴趣相关性
上海交通大学的王广新
[8]
基于这一思想设计了朴素贝
叶斯与支持向量机相联合的分类算法来实现对兴趣不相关微博的过滤,取得了良好的效果。本文采用此算法对实验数据进行预处理。1畅2 用户兴趣表示
当前,关键词向量法是表示用户兴趣比较常用的方法。但是在微博网络,这种从文本中提取关键词的表示方法具有一定的局限性。
(1)微博文本的语法往往非正式、口语化程度高、缩写和拼写错误也比较常见。这使得提取出的关键词非常杂乱,标准性差,不方便比较和管理。
(2)兴趣向量的维数会非常大,需要占用大量的存储空间,造成存储空间浪费和计算困难。
为了解决以上问题,本文采用改进的向量空间模型表示用户兴趣。首先将用户兴趣空间分成若干个兴趣类,这些兴趣类互不重叠并且所有兴趣类的并集为整个兴趣空间;然后,分别计算用户对每个兴趣类的兴趣度;最后,用向
量空间模型表示用户兴趣,其表示方法如图2
所示。
图2 改进的基于向量空间的用户兴趣表示方法对于特定的兴趣集C={c1,c2,……,cN},用户i的兴趣表示为式
Ei={ei1,ei2,…,eiN}
(1)
式中:eij———第i个用户对第j个兴趣类的兴趣度,且
j=1
eij=1。
为了得到兴趣集C,本文参考了新浪、搜狐、腾讯和网易四大门户网站的板块划分情况。最终得到C={军事,经济,科技,体育,娱乐,教育,政治,医药,交通,环境},共10个项集。1畅3 用户兴趣与遗忘曲线
本文的基本思路为根据用户历史信息预测当前兴趣,这个过程刻画为式
It=F(Wt-1,Wt-2,…,Wt-n)
(2)
式中:t———当前时间,It———用户当前兴趣,Wt-1、Wt-2、…、Wt-n———用户历史信息。在这个预测过程中,需要考虑2个关键点:
(1)用户历史信息距离当前时间越近参考价值越大(近因效应),反之则越小;换句话说,信息的参考价值随时间推移逐渐衰减,这与人类的记忆随时间不断衰减的过程非常类似。因此,此过程可以用人类遗忘曲线来刻画。
(2)用户对某一类内容关注越多则用户对该类别兴趣度越高。这就好比人们重复学习某一知识,重复学习的次数越多,则记忆量越大,直到记忆稳定。重复学习的过程本质上也是对遗忘曲线的调整过程(2畅2节做详细介绍)。
所以,本文基于人类记忆学中遗忘曲线的相关知识,提出一种兴趣建模的方法。下一节将详细介绍该方法。
2 基于遗忘曲线的微博用户兴趣模型
本节首先对遗忘曲线的相关知识作简要介绍,然后详细介绍户兴趣度多阶段量化方法,最后建立能够适应兴趣漂移的微博用户兴趣模型。2畅1 遗忘曲线
德国心理学家艾宾浩斯揭示了人类的遗忘规律,指出了记忆时效随时间的变化特征[9],见表1。
·8633·
第35卷 第10期
  于洪涛,崔瑞飞,董芹芹:基于遗忘曲线的微博用户兴趣模型 
表1 人类遗忘规律
Elapsedtimesincelearning
Retention/%
Immediately10020minutes581hour449hours361day332days286days2531days
21
曾东红等[10]对上述规律进行了数学分析,并采用负指数曲线拟合了此规律,在记忆学中该曲线又称为遗忘曲线,其量化函数为式(3)
p(t,
k)=p0e-kt,t∈(0,∞)(3)
式中:p0———初始记忆量,k———遗忘速率,它是反映遗忘
曲线衰减差异的主要参数。2畅2 兴趣度多阶段量化方法
遗忘曲线体现了单个时间段内记忆量随时间的变化趋势,本小节将以此为基础提出一种兴趣度多阶段量化方法。
针对同一兴趣类别c,重复学习是指用户多次发布该类别的微博,重复学习的时刻即为微博发布时刻。令t1、t2、t3表示3次相邻重复学习的时刻,用户兴趣度的变化过程如图3
所示。
孙涛
图3 兴趣度多阶段量化方法
从图3中可以看出,重复学习的时刻把整个过程分成了多个阶段,每个阶段都是一个新的遗忘过程,不同阶段的区别在于阶段初始值和遗忘速率不同。如果能确定任意阶段的初始值pn和遗忘速率kn,那么就可以实现用户兴趣度的实时度量。下面分别介绍pn和kn的确定策略。
(1)阶段初始值
从图3中可以看出,第n个阶段初始值pn是sn与hn
叠加的结果,sn为上一阶段剩余量,hn为重复学习带来的新叠加量。sn很容易确定,其量化函数可表示为式(4)
sn=pn-1e-kn-1(tn-tn-1)
(4)
下面来分析如何确定hn。人们重复学习同一知识的时候,每次获得的新记忆量并不是一致的;随着重复学习次数的增加,对某知识的记忆总量会不断增加,这个过程并不是线性的,而是逐渐趋于平缓并最终收敛于某最大值(表明已完全掌握该知识);因此,重复学习次数越多,每次获得的新记忆量会不断下降。基于以上分析,本文使用负指数曲线来描述hn与n的关系,如式(5)所示
hn=p0e-n
(5)
因此,第n个阶段初始值pn可以表示为pn=pn-1e
-kn-1(tn-tn-1)
+p0e
-n
(6)
(2)遗忘速率
令tn-1和tn为重复学习的任意相邻时刻,kn-1为遗忘
曲线从tn-1到tn的遗忘速率,那么对于类别c,该遗忘阶段的量化函数为
pc(t,
kn-1)=pn-1e-kn-1(t-tn-1),t∈(tn-1,tn)(7)
为了分析相邻阶段遗忘速率的关系,将后一阶段遗忘曲线先向y轴反向平移,然后再向x轴反向平移,使之与前一阶段遗忘曲线具有共同起点,该操作过程如图4
所示。
图4 遗忘速率调整分析
在图4中,β为tn-tn-1时间段内相邻两条遗忘曲线的
衰退差异。根据式(7),β的大小可表示为式(8),其取值上限为pn-1(1-pc(tn,kn-1))
β=pn-1(e-kn(tn-tn-1)-e-k
n-1(tn-tn-1))
(8)
由式(8)可得kn和kn-1之间的关系
kn=
ln(e-kn-1(tn-tn-1)+β/pn-1)-(tn-tn-1)
(9)
将β的取值上限pn-1(1-pc(tn,kn-1))划分为θ个线段,那么β的取值可表示为式(10)。θ称之为惰性因子,它反映了一次重复学习对遗忘速率调整的程度,若两个相邻重复学习时刻的时间间隔越大,说明用户越懒惰,θ的取值就越大
β=
pn-1(1-pc(tn,kn-1))θ
(10)
将式(10)代入式(9),得到kn的计算公式
kn=
ln(1+(θ-1)e-kn-1(tn-tn-1))-lnθ-(tn-tn-1)
(11)
从式(11)中可以看出,如果已知kn-1、惰性因子θ
和时间间隔tn-tn-1就可以确定kn的值。
·
9633·
 计算机工程与设计2014年
通过以上分析,可以得到任意阶段k和p的值,进而可以计算用户在任意时刻对某兴趣类的兴趣度。
2畅3 用户兴趣模型
依据2畅2节描述的方法,本小节首先设计兴趣度多阶段量化算法(interestdegreemuti‐stagequantization,ID‐MQ),用来快速计算用户对某兴趣类的兴趣度。算法的输入为时刻t和List<Date>格式的对象,List列表里面的数据按时间升序排列,第i条数据表示用户第i次反馈的时间(即第i条微博的发布时间)。算法输出为用户在时刻t对当前兴趣类的兴趣度,这是一个绝对的数值(未归一化)。IDMQ算法的伪代码见表2。
表2 IDMQ算法流程
输入:时刻t和用户反馈时间列表list。
输出:用户在时刻t对当前兴趣类感兴趣程度(绝对)。
初始化:设置初始遗忘速率k0,首阶段初始值p0和惰性因子基数θ0
算法:
(1)M=list畅size();
(2)t0=list畅get(0);
(3)FORi=1:M-1
(4) ti=list畅get(i);
(5) pi=pi-1e-k(t-t)+p0e-i;
(6) ki=ln(1+(θ-1)e-k(t-t))-lnθ
-(ti-ti-1)
(7) θ←根据时间间隔ti-ti-1调整θ;
(8)ENDFOR;
(9)RETURN兴趣度;
在本算法中,θ的具体取值为当前相邻2个重复学习时刻的时间间隔ti-ti-1(以天为单位,不足一天按一天算)与惰性因子基数θ0的乘积。
通过IDMQ算法,能够得到用户在时刻t对某一兴趣类的兴趣度。对所有兴趣类依次做处理,就可以得到用户在时刻t对每个兴趣类的兴趣度。由于这个计算用户兴趣的过程以遗忘曲线为基础,所以本文把这个求解过程称之为基于遗忘曲线的微博用户兴趣求解算法(computemicro‐bloguserinterestbasedonforgettingcurve,CIBF),其伪代码见表3。
其中,时间阈值T的含义是需要参照的历史信息的时间跨度。Category[i]表示属于兴趣类ci的所有微博的发布时间集合。
TextClassify()表示文本分类算法,分类器性能的好坏将对CIBF算法的结果产生关键影响,所以分类算法的选择至关重要。Hong等[11]该根据微博文本的特点,提出了一种基于LDA模型的分类方法(USE
Rscheme),很好地实现了微博文本的分类,其准确率可达到82畅92%,本文使用此方法来实现微博文本的分类。
本算法还对兴趣度做了归一化处理,因此E(t)为用户的兴趣分布向量,它的每一个分量代表用户对某兴趣类的兴趣度。
至此,得到了用户在时刻t对各个兴趣类的兴趣度分布向量E(t)。下一节将通过实验来验证模型的准确性。
表3 CIBF算法流程
输入:用户U和时刻t。
输出:用户U在时刻t对各个兴趣类的兴趣度E(t)(相对值)。
初始化:兴趣类列表C(N),时间阈值T;
算法:
(1)AllTweets←用户U在(t-T,t)内发布的微博集合;(2)Category[i]←TextClassify(AllTweets),i∈(1,N);(3)FORi=1:N
(4) Category[i]←Category[i]按时间升序排列;
(5) ei(t)←IDMQ(Category[i],t);
(6)ENDFOR;
(7)Sum=∑
i=1
ei(t);
(8)FORi=1:N
(9) ei(t)=ei(t)/Sum;
(10)ENDFOR;
(11)E(t)={e1(t),e2(t),……,eN(t)};
(12)RETURNE(t);
3 实验
3畅1 实验准备
3畅1畅1 实验数据
(1)网络数据
本文实验数据来源于腾讯微博开放平台,原始数据包括5000个用户的用户信息以及这些用户于2013年8月至10月发布的微博信息。根据本实验需求,在这些数据中剔除了3个月内发博数不足10条的用户及其发布的微博(这类用户发博较少,很难从其发布的微博中挖掘出兴趣,没有研究意义)和不能表征用户兴趣的微博。最后得到了4336条用户信息和118431条微博信息。
(2)调查数据
用户兴趣是主观性的概念,而呈现给我们的微博是叠加了外部因素影响的结果,所以本文采取人工调查的方式来获取用户兴趣的真实情况。
在所获取的4336个用户中挑选500个用户(亲友等认识的用户约占11%;不熟悉网络用户约占89%,该部分用户是随机挑选的),于10月20对这些用户发放问卷,让用
·
0733
·
第35卷 第10期  于洪涛,崔瑞飞,董芹芹:基于遗忘曲线的微博用户兴趣模型 
户在兴趣集C里面选择自己感兴趣的1至5个兴趣类别
(对相应类别打勾即可),10月25日对问卷的回收情况做了
汇总分析。结果显示,亲友用户中约有63%做出了回复,
不熟悉用户中约有24%做出了回复,共回收了139份问卷。
剔除其中不符合要求的问卷,最终得到112份有效问卷。
3畅1畅2 实验参数的设定
本实验需要设定的参数包括:初始遗忘速率k0、首阶
段初始值p0和惰性因子基数θ0,具体数值见表4。
表4 参数设定
参数名称参数意义取值
k0初始遗忘速率1畅0
p0首阶段初始值1畅0
θ0惰性因子基数10
各个参数的具体含义在前文中已经详细阐述,这里不
再赘述。
时间阈值T的选取会对模型的预测效果产生一定的影
响,本文将通过实验选取最优的T值。
3畅1畅3 评价指标
(1)召回率
召回率(Recall)表示用户感兴趣的兴趣类别被模型预
测出来的概率[12]
R=1N∑N
u=1|Y(u)∩Z(u)|
|Y(u)|(12)
式中:N———用户总数,Y(u)———用户u感兴趣的类别集合,Z(u)———模型预测的用户u的前|Y(u)|个类别集合。
(2)排序准确性
在讨论用户兴趣的时候,往往关注更多的是用户对哪一兴趣类更感兴趣,所以本实验采用排序准确性指标MAP(meanaverageprecision)来评价模型的性能。MAP表示模型预测的兴趣类别顺序对应真实用户兴趣
排名的平均准确率MAP=1M∑Mu=11|Y(u)|∑|Y(u)|j=1jrank(u,j)(13)式中:M———用户个数,Y(u)———用户u感兴趣的类别集合,模型预测列表中第rank(u,j)个类别是用户u喜欢的第j个类别。
举个例子,假如用户u选择了4个感兴趣的类别,本文模型预测的该用户兴趣分布情况为:RNRNNRRNNN(按兴趣度降序排列,R的位置为u选择的4个类别在列表中的位置,分别为1、3、6、7,N的位置为u未选择类别的位置)。那么,其排序准确率
MAP=14(11+23+36+47)
它是一个0‐1之间的数,其值越大,准确性越高。3畅2 实验结果与分析
3畅2畅1 时间阈值T对模型性能的影响
图5为随时间阈值T的增加,模型Recall和MAP的变化趋势。从图5中可以看出,T取值较小的时候模型性能较差,这是因为参考的历史信息太少致使偶然性增大的缘故;随着T的增加,模型性能逐渐提高,当T在30至45天这一范围时,Recall和MAP基本稳定,这是因为偶然性导致的问题逐渐被剔除;当T大于45时,Recall和MAP略有下降,这是由本模型的特点导致的,随着参考信息的增加,用户对各个类别的“记忆量”(2畅2节)都趋于收敛使得模型区分度下降的缘故。从图5中还可以看出,T取35时,Recall和MAP的值最优,因此下文的实验中T均取
35。
图5 时间阈值T对模型性能的影响
3畅2畅2 模型准确性实验
(1)召回率
图6为基于遗忘曲线微博用户兴趣模型的召回率结果图。其中,实心点代表每个用户的召回率,菱形点为每10个用户取一次平均值的结果,水平横线代表所有100个用户总的平均值。从图中可以看出,超过40%的用户Recall为1,约82%的用户Recall大于0畅75,总的平均值约为0畅853。这说明模型基本可以把用户标注的感兴趣类别排在
最前面。
图6 模型召回率
·
1733
·