|||
2012年注定是微博纵深发展的技术年。8月12-16日北京将举办《国际知识发现和数据挖掘年会-Knowledge Discovery and Data Mining, KDD 2012》[1], 腾讯微博先声夺机与ACM KDD Cup 联手,将推出本年度数据挖掘竞赛项目的优胜者。这也是中国微博走向世界的一次漂亮“转身”,意义重大。同时,KDD Cup 是全球计算机、电子、数学和统计等专业同行学术交流的一个国际舞台,专家云集,高手如林。特别是腾讯派出强有力技术团队辅助赛事,并设5K美元的“巨额”头奖。到目前为止,已有636个团队报名,760个竞赛者参与。由于竞赛结果在线展示,参赛者摩拳擦掌,旁观者翘首以待,气氛十分激烈,参见图1的5月10日的赛板排行。
本文介绍 KDD Cup 2012 的第一个竞赛项目: 预测用户对腾讯微博管理系统推荐对象的关注 (Predict which users (or information sources) one user might follow in Tencent Weibo) [2]。由于微博机制研究是个新的领域,加上KDD是著名的国际学术会议,对此项活动的描述都是英文文本,即使从事这方面的国内研究人员也会在参赛时遇到不少问题。笔者以研究札记形式,用中文具体介绍:竞赛目的、微博术语、数据文档、报告格式、精度评价和竞赛方式等内容。为腾讯微博大赛造势,为国内参赛人员提供方便。
1. 预测微博用户对系统推荐对象的关注
预测用户对腾讯微博管理系统推荐对象或资源的关注度,即是否被用户接受。这里讲的推荐对象是腾讯微博的特殊用户,例如名人影星、机构组织、商品服务和会议活动等信息资源。出于种种原因,腾讯微博管理系统会向众多热情粉丝,3.2亿腾讯微博注册用户,推荐这些对象。而腾讯微博和相关机构非常想知道哪些对象被关注、被哪些用户关注等等。
图1 KDD Cup 2012 腾讯微博预测竞赛在线排行榜前5名,5月10日[2]
2. 腾讯微博基本术语
为了便于参赛者理解和表达,腾讯微博技术团队和 ACM KDD Cup(以下简称竞赛主办方)推出微博若干术语的英文表述。这些术语也是对腾讯微博机制的解释,笔者基本上遵循这些定义,同时也提出一些修改建议。
对象(Item):腾讯微博的特殊用户,会是名人影星、机构组织、商品服务和会议活动等信息资源。腾讯微博管理系统将这些对象推荐给广大用户,例如放到用户页面醒目地方等。本次竞赛,主办方专门列出对象介绍数据文件,大约有6千多位,下节将专门介绍这些数据。
微博短信(Tweet 或 Weet): 中文微博起码有三个意思,一种短信式在线社交网络平台的意思,如腾讯微博和网易微博等;第二是指微博短息,如在系统里发140个字以内的短信;第三嘛,就是新浪微博的域名。微博的这些中文表述,大家都能理解。但竞赛组织者把微博短信的英文表述为 Tweet,即借用西方著名在线社交网络推特 (Twitter) 内微博短信的专用名词。为了避免混乱,本文建议使用 Weet 来作为国内微博短信的英文表述。
微博转发(Retweet 或 Reweet): 微博用户可以转发另一用户的微博短信。在推特, 微博转发表生动地表述为 Retweet。在这次大赛,主办方仍借用 Retweet 来表达腾讯微博的转发。本文建议使用 Reweet 来作为腾讯等国内微博短信转发的英文表述。
评论(Comment): 微博用户可以评论一个微博短信。该评论将保留在发博者平台内这条微博的后面。微博评论不会随微博短信被其他用户转发。
被关注/关注者 (Followee/follower): 如果用户B被用户A关注,B是被关注者,A是B的关注者,中文习惯上称 A是B的粉丝。B发出和转发的微博都会传播给其粉丝。
笔者认为,对微博短信和转发的英文描述 Weet 和 Reweet 是有意义的。例如成龙先生分别在推特 (Twitter)和腾讯微博开户。用中文可以说:某日成龙在推特发3个微博、转发2个;在腾讯发2个微博、转发3个。用英文可以说:Jakie Chen sent 3 tweets and retweeted 2. He also sent 2 weets and reweeted 3 in Tencent Weibo.
3. 数据文档说明
为便于参赛团队研究腾讯微博,竞赛主办方推出一系列数据文件。主要有:训练数据集、测试数据集和用户信息文件组三套数据资料。其中信息文件组有:用户基本资料、对象分类资料、用户行为记录、用户间关系和用户关键词等5个文件。这些附加文件,如用户档案中的年龄、性别和兴趣等反映了他们的关注特性。用户关注演变和对象分类目录等资料,都可为参赛者提供参照,开发思路。
这些数据资料是腾讯微博精心准备和公开发表的微博机制研究素材。其中包括上百万个用户和几千个对象的丰富信息,是各团队建立预测模型的最佳机遇。出于保护个人隐私的原因,主办方对所有用户名(ID)进行技术处理,由随机数代替。微博涉及到的资料、姓名、分类和关键词等所有中文内容,都采取随机数字串进行编码。这样可以免去理解中文参赛者的语言优势。
3.1 训练和测试数据文件
训练数据集的文件名为 rec_log_train.txt,内有2个GB的数据。测试数据集的文件名为rec_log_test.txt,有近1个GB的数据。
两个文件的格式均为: (UserId)t(ItemId)t(Result)t(Unix-timestamp)。表1列出的4行数据取自测试数据集。其中第1列为用户编号(UserId)。第2列为对象编号(ItemId),对象实际上是腾讯微博系统的推荐用户。所以,有的用户编码可能出现在第1列,也可能出现在第2列。第3列为关注结果(Result),如果用户接受系统推荐,此值为1;不接受推荐,此值为-1。接受推荐的表述方法有关注、微博转发和评论微博等等。第四列为用户的关注对象的历史时间记录,表1显示的是测试文件列出的时间。
表1训练和测试数据文件实例
用户编号(UserId) |
对象编号(ItemId) |
关注结果(Result) |
时间(Unix-timestamp) |
1525431 |
1771958 |
1或-1 |
1321027200 |
1587150 |
1774422 |
1或-1 |
1321027200 |
1587150 |
1774934 |
1或-1 |
1321027200 |
2064344 |
1505267 |
1或-1 |
1321027200 |
为避免博文过长,博客版暂略以下小节:3.2 用户基本资料文件;3.3 对象分类数据文件;3.4用户动作数据文件;3.5用户关系数据文件;3.6用户关键词数据文件。敬请原谅。
4. 报告、评价和竞赛
4.1 提交预测报告
大赛主办方提供测试数据文件名为(rec_log_test.txt),预测建模和方法不限,参赛者可将自己的预测结果填入该文件的result字段:1为用户接收推荐对象,-1为不接收推荐。上交预测报告时应转换为 *.csv 文件。主办方建议两种格式,含和不含用户,表7格式是包含用户。
表7 提交预测报告文件格式
用户编码(UserId) |
接受的推荐对象编号(ItemId),最多3个 |
100018 |
1774717 1774505 218438 |
100020 |
1606574 1774684 |
100025 |
1458847 655717 1774797 |
100030 |
1606609 1606574 1774532 |
表7中第1列为用户编号(UserId),循序严格按测试数据文件中的用户循序。第2列为接受的推荐对象编号(ItemId),每行最多3个对象,循序严格按测试数据文件中的用户对应的推荐对象循序,各对象编号间用空格分开。
4.2 结果评价
主办方采用通用的信息检索评价理论和方法评价预测结果。为便于读者了解评估方法,首先定义相关概念。本节内容参考资料为[2,3,4]。
1) 样本分类:用户接受推荐对象,类别为正例,取值1,假设有P个用户取该类样本;用户不接受推荐对象,类别为负例,取值 -1,假设有N个用户取该类样本。
2) 参赛模型对正例预测:TP个用户接受推荐,取值为1的正例,同时被参赛模型正确预测为正例;FN个用户接受推荐,但被模型错误预测为负例;有P=TP+FN。
3) 参赛模型对负例预测:FP个用户不接受推荐,取值为0的负例,但被参赛模型错误预测为正例;TN个用户不接受推荐,被参赛模型正确预测为负例;有N=FP+TN。
4) 召回率(Recall rate):参赛模型正确预测出用户接受推荐数与所有实际用户接受推荐数之比,Rr = TP/(TP+FN)。召回率反映了模型正确预测的正例与实际正例样本的比例。
5) 精确度(Precision rate):参赛模型正确预测出用户接受推荐数与参赛模型预测出所有用户接受推荐数之比,Pr = TP/(TP+FP)。精确度反映了模型正确预测的正例与模型预测所有正例样本的比例。
6) 单一用户预测平均精确度(Average Precision):参赛模型对单一用户接受推荐预测结果的评价,应同时考虑召回率和精确度。此综合参数的具体计算公式为:AP = ∑ Pr(i)∆Rr(i),i = 1,2,...n。式中,n为用户接受推荐对象数,本次竞赛n取值3;Pr(i)为预测用户接受对象i的精确度;∆Rr(i)为预测用户接受对象i-1到i时召回率变化值。
7) 全体用户预测平均精确度(mean Average Precision):参赛模型全体用户接受推荐预测结果的评价,为单一用户预测平均精确度在全部用户样本集的平均值。具体计算公式为:mAP = ∑ AP(j)/M,j = 1,2,...M。式中,M为用户总数。
在上述概念定义的基础上,通过若干例子来说明平均精确度的具体计算。
8) 如果系统推荐5个对象给A用户,A接受1、3和4号对象,则参赛模型对该用户接受对象的预测平均精确度为:AP = (1/1+2/3)/3 ≈ 0.56。
9) 如果系统推荐4个对象给B用户,B接受1、2和4号对象,则参赛模型对该用户接受对象的预测平均精确度为:AP = (1/1+2/2)/3 ≈ 0.67。
10)如果系统推荐3个对象给C用户,C接受1和3号对象,则参赛模型对该用户接受对象的预测平均精确度为:AP = (1/1+2/3)/2 ≈ 0.83。
11)参赛模型对用户A、B和C三个用户接受对象的预测平均精确度为:mAP = (0.56+0.67+0.83)/3 ≈ 0.69。
4.3 在线竞争
KDD Cup的竞赛是在Kaggle 平台上实现的,在参赛者提交预测报告后,Kaggle的演示板会很快给出预测平均精度和排行名次。图1显示5月10日竞赛演示板的前5名参赛者的评估结果。这种在线竞赛的方式,很是刺激,但并不时最终赛结果。因为主办者目前只是比较53%的预测结果,给出预测平均精度。在6月1日竞赛结束时,主办方会对各参赛者的结果进行100%的评估,给出最终预测平均精度和排行榜。前三名分别获得5、3和1千美元的奖励。
5. 结语
本文详细介绍KDD Cup 2012 的第一个竞赛项目: 预测用户对腾讯微博管理系统推荐对象或资源的被关注度。文中主要参考主办方的网站[2],介绍参赛的基本资料和笔者的一些体会。特别是第二节有关微博的术语定义和第四节预测精度评估,反映出笔者的个人意见。如果读者要参加竞赛,建议以主办者的原文说明为准。
作为本学期给研究生,《人工智能课》中介绍KDD一课的讲义。写作时参考KDD Cup 2012竞赛规则原文[2]和星语心愿~的中文翻译[5]。笔者带领团队参加这项活动,主要是让学生们准备数据、学习方法和研究模型,为毕业论文研究提供案例。同时,对类似ACM KDD这些高端学术活动有个认识和体会。
在以后的博文中,将进一步介绍笔者团队参加该项目的研究方法和结果,以及本届竞赛的第二个项目:基于用户信息和查询内容预测对广告的点击率(Predict the click-through rate of ads given the query and user information),敬请读者稍候。
相关博文:微博研究系列:科学网微博三问
参考资料
[1] KDD 2012,ACM SIGKDD,Knowledge Discovery and Data Mining conference, August 12-16,Beijing,China。http://kdd2012.sigkdd.org/
[2] KDD Cup 2012,ACM SIGKDD,Knowledge Discovery and Data Mining conference, August 12-16,Beijing,China。http://www.kddcup2012.org/c/kddcup2012-track1
[3] Information retrieval,Wikipedia, http://en.wikipedia.org/wiki/Information_retrieval。
[4] Zhu, Mu,Recall, Precision and Average Precision,2004。
http://sas.uwaterloo.ca/stats_navigation/techreports/04WorkingPapers/2004-09.pdf
[5] 星语心愿~,数据挖掘竞赛主题一:预测围脖的潜在关注者(腾讯赞助),博客园,2012。http://www.cnblogs.com/aloe/archive/2012/03/17/2403017.html
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-12-22 12:00
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社