赛题解说|“达观杯”个性化推荐算法挑战赛技术讲解

达观杯推荐算法大赛开赛将近一个月,获得了大量选手的踊跃参与。为方便大家更好的理解赛题,本次将做一个较为全面的讲解,包括对赛题背景、赛题数据、评分规则等的详细讲解,以及对解题的一些思路提示。

1“达观杯”个性化推荐算法赛题背景;

2赛事数据说明、评分规则详解;

3解题思路提示。

讲解人:纪传俊,达观数据联合创始人,承担公司重大紧急项目的架构设计和研发管理工作,复旦大学计算机专业硕士,曾任职于盛大创新院推荐组负责起点中文网和酷六视频的相关推荐,为有你社交app开发好友推荐系统,后任职于盛大文学数据中心全面负责大数据挖掘任务调度系统,智能审核系统和反作弊系统。对大数据挖掘技术,机器学习算法,分布式集群搭建和任务调度有较深入的理解和实践经验。

赛题背景

达观数据拥有中国领先的数据挖掘和搜索推荐技术,致力于为客户开发大数据系统,提升客户的经营业绩,已成功服务数百家著名企业。

达观团队由来自腾讯、百度、阿里、盛大的技术精英组成,CEO陈运文博士曾担任盛大首席数据官、腾讯数据中心高级总监、百度搜索技术专家。

达观团队曾参加过多次国际顶级数据挖掘比赛,并荣获ACM CIKM比赛和EMI Hackathon比赛两次冠军,以及一次KDD-Cup的亚军。

目前主打3大核心功能,包括文本语义理解(NLP技术)个性化推荐引擎(本次赛题的来源)、垂直搜索引擎等。每个功能都是用户的痛点,也是达观非常擅长的领域,有着深厚的技术积累。

达观数据服务客户的宗旨是以效果说话。与客户的合作,都会保证客户的关键指标能得到明显的提升。图中是某视频网站接入我们服务之后,活跃量、播放量和观看时长都有了明显的提升。

介绍完达观数据提供的产品服务,也就很直接的可以知道这次赛题的背景。

达观杯赛题源于真实的资讯信息的个性化推荐场景。资讯推荐本身是个比较难的问题,难点主要有3个:

资讯总量大,更新频率快:

现在每时每刻都会有新的资讯产生出来,国内的国外的新闻娱乐科技等等不同类别的资讯,每天会新增大量的资讯。加上之前时间积累下来的,会导致资讯总量非常庞大,推荐系统的候选资讯集合就会非常庞大,从里面挑出用户感兴趣的内容会变得更为困难。

用户数量多、行为多,用户行为的成本低:

现在拿着手机刷资讯是非常普遍的现象,每天阅读资讯的用户量也会非常大,等于推荐系统要对一个很大的用户集合和一个很大的资讯集合求差集,系统的计算难度会非常的高。此外,用户的行为数量也比较多,因为资讯阅读是免费的,行为成本很低,用户很容易就多看一些,比如晚上睡觉前多刷一刷。

用户存在“浮动兴趣”:

所谓“浮动兴趣”,即不是用户最最感兴趣的,有时候可能因为一些热点事件或者猎奇心理,用户会去看一些原本不关注的内容。

本次赛题数据来源于真实的用户阅读行为。我们达观给出了两个典型的资讯APP的示意图,当然这两个不是我们本次比赛的数据来源,只是以此举例。资讯APP一般都会包含多个板块,比如热门、推荐、发现以及各个垂直类别的板块。用户进入APP的时候往往会选择不同的板块。因此,在我们给出的赛题数据里,只有一部分流量是走达观的推荐引擎,因而大家预测用户对资讯的行为,并不是在拟合达观的推荐系统。对于没有推荐算法的板块,资讯的展示顺序可能是当下的热门,或者编辑推荐的结果,或者按照时间由新到旧排序,资讯APP也会倾向于推出更新的资讯。

赛事数据解说

至此我们明确了本次赛题的来源背景,资讯推荐本身是个很难的问题。因此,现在榜单的分数比较低也是正常现象,我们自己也做过尝试,可以告诉大家,绝对分数不会很高,但是现在榜单的分数还有挺大的提升空间。接下来我们看看赛题数据的具体情况。

首先,本次比赛的题目,是给定一批用户ID(candidate.txt),给每个用户推荐最多5个资讯,资讯必须从候选集(news_info.csv)中选。推荐的资讯,只要用户在N+1天发生过任何行为,即为推荐成功。如图中所示,我们根据第N+1天的用户行为来构建计算榜单的数据。用户发生行为的资讯的顺序不会影响分数的计算。我们还提供了过去3天(第N-2, N-1, N天)的行为数据(train.csv),用于构建推荐模型。

排行榜分数的计算采用的是采用MAP@5计算得分。首先我们会针对每个用户ID计算其ap@5得分,再对所有用户的ap@5求平均值。公式如图中所示,其中ap@5公式中的P(k)是前k个推荐结果中,用户产生行为的资讯数占比。如果第k个推荐结果用户没有行为,则P(k)=0。注意,ap@5的分母是第N+1天用户有行为的资讯数量m和5之间的最小值,即如果用户只对3个资讯产生行为则分母为3,如果对超过5个资讯产生行为则分母为5。

给出几个榜单分数计算的具体例子。Kaggle网站上(https://www.kaggle.com/wiki/MeanAveragePrecision)也有非常详细的讲解。注意,提交的结果中,给每个用户推荐的itemid不能有重复,否则视为无效提交,无效提交会消耗提交次数。

接下来是各个数据文件的介绍

首先是candidate.txt,包含了所有待推荐用户的ID,每行一个ID,共28501个用户。然后是news_info.csv和all_news_info.csv。news_info.csv是候选的资讯内容,是all_news_info.csv的真子集,含资讯类别和时间戳。给用户推荐的itemid必须包含在该文件中。all_news_info.csv是全量资讯内容,会存在较久以前的资讯,因为用户在train.csv里确实对这些资讯产生行为。train.csv里出现的资讯都会在这里面,但不一定会在news_info.txt里。

train.csv包含了3天(第N-2、N-1、N天)的用户对资讯产生的行为数据。行为类型包括view(点击)、deep_view(完整阅读)、collect(收藏)、comment(评论)、share(分享)。所有行为没有正面负面之分,只有发生和没发生。所有行为都是用户真实发生的行为,至少是用户对资讯产生了点击。其中,view和deep_view行为占绝大多数,因为其他行为成本较高。train.csv每个行为都包含了时间戳。本次比赛不提供资讯的展示数据,即给用户展示过的资讯(用户不一定有行为)。因为比赛数据是真实的线上数据,会存在很小量的噪音,比如view时间戳比deep_view晚,或者没有view只有deep_view的情况。有deep_view即可认为发生过view,只是数据采集有缺失。

test.txt是第N+1天另一小部分用户及其产生行为的资讯列表,格式和sample_submission.txt一样。train.csv和计算排行榜的数据中都不包括test中的用户。test.txt从一个小的局部反映出第N+1天的情况。需要强调的是,test的效果是有限的,从现在榜单的结果也可以看出来。大家可以更多的从train.csv里去挖掘规律,目前看来train.csv还没有得到很好的利用。

思路提示

train.csv的利用,可以有很多方法,目前选手尝试的还比较少。我们先给出一些最基本的思路供大家参考。

推荐系统的基本思路大概就是这些。对于个性化推荐,很直接的就能想到基于用户的协同过滤,直接给每个用户产生结果。当然,基于内容的协同过滤同样可以用,也是很常规的做法。还有基于用户标签的推荐,基于train.csv可以挖掘出每个用户的兴趣标签。

矩阵分解和机器学习是比较高级一点的模型算法。不管是推荐系统还是推荐比赛,矩阵分解都是必须会用到的重武器。机器学习的问题是,本次赛题没有提供负样本,需要选手自行构建,目前也已经有选手成功进行构建并取得了一定效果。

之前交流群里也有选手提到了基于规则的方法,这也是算法,对于刚参加比赛的选手,不放用规则算法来先练练。规则看似简单,但是是选手经验的总结,往往也会有出其不意的效果。

最后是集成学习(Ensemble),数据挖掘比赛中,取得前几名成绩的一般都得用到集成学习。只使用单一算法想赢得比赛,或者在实际系统中想取得好的效果,往往很难。每个算法都有其试用的环境,最好的做法是将多个算法的结果进行融合。

简单总结,算法也好,工具也好,都应该更多的进行尝试。网上有一些经验总结会说某某工具比另一个好,但这也不是绝对的,问题变了数据变了,工具产生的效果也会变。同时大家可以更多的关注行为类型和时间戳对权重的影响,这是会对算法效果产生影响的因素。

最后,大家可以关注达观数据官方微信公众号,本次比赛的进展、比赛说明、评审结果、颁奖典礼、奖金发放等等信息都会通过公众号实时更新,当然也包括我们的人才招聘、技术干货分享等内容,相信大家都会收获满满。

原文发布于微信公众号 - 大数据挖掘DT数据分析(datadw)

原文发表时间:2017-05-31

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏人工智能

学了这么久机器学习,你真的了解它的概念吗?

引言 我们曾在之前的快讯里提到,Dataversity 最近上线了一个 What is 系列,介绍了数据科学相关的多个概念,之前我们曾介绍了大数据与数据科学(可...

2056
来自专栏Java学习网

软件开发人员的能力模型

不知觉做软件开发已经有6年了,回看自己的经历,可以说是相当有成就感,6年中通过不断的学习的实践,从一个菜鸟成长为一名软件架构师,这个过程可以说充满乐趣...

4745
来自专栏机器之心

业界 | DuerOS普罗米修斯计划:30页国际专家PPT全面剖析对话式AI数据集

机器之心发布 百度 DuerOS 美国西部时间 11 月 9 日,百度 DuerOS 普罗米修斯计划在美国硅谷召开启动发布会。一周后,2017 百度世界大会上,...

34110
来自专栏新智元

潘建伟团队光量子计算机TDA新算法横空出世,人工智能量子计算破局

来源:ArXiv;quantamagazine 编译:文强 米乐 【新智元导读】日前,潘建伟团队完成了首个在光量子计算机上进行拓扑数据分析(TDA)算法的验证演...

2876
来自专栏量子位

谷歌大脑小姐姐亲授:如何应聘成功羡煞旁人的AI工程师岗位

不如听听过来人怎么说。最近,谷歌大脑的小姐姐Catherine Olsson上了一堂名企应聘公开分享,手把手教你应该以怎样的姿势开始AI安全类工程师求职之旅。

932
来自专栏挖掘大数据

5个典型实例启发:什么是数据可视化

大数据时代,数据是非常重要的,怎样把它的重要之处展示出来成为我们需要掌握的既能,这也就是本文要讲的重点——数据可视化。

20410
来自专栏专知

干货|85页最新《人机对话系统》神经方法综述论文,微软与谷歌研究员联合出品:

【导读】来自微软研究院的 高剑锋, Michel Galley ,以及来自 Google的李力鸿, 最近在ArXiv上发布了关于《人机对话人工智能的神经方法-任...

2842
来自专栏量子位

AI有了更强的想象力!DeepMind又立功了 | 附两篇新论文

陈桦 编译自 DeepMind Blog 量子位 报道 | 公众号 QbitAI ? 人类,可以在行动之前预想到后果,这是我们认知能力中一种强大的工具。 举例来...

3136
来自专栏专知

前途光明的机器学习将走向何方?这里有 5 个关于它的未来预测

机器学习目前是 IT 领域最热门的话题之一,这是因为它在看似无限的应用场景中都能发挥自身的作用。从检测欺诈网站到自动驾驶汽车,再到识别你的“金牌会员”身份以进行...

3556
来自专栏携程技术中心

搭建技术分享平台,携程技术中心深度学习Meetup回顾

今天由携程技术中心主办的深度学习Meetup在凌空SOHO举办。作为上海最顶级的深度学习大会,活动吸引了BI、机器学习、大数据等领域的工程师和高校教授们参与,会...

3426

扫码关注云+社区