热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

诺道医学算法工程师王则远:2017全球高校学生数据科学大赛(DSG)经验分享

雷锋网(公众号:雷锋网)AI科技评论消息,由法国萨克雷大学主办的2017全球高校学生数据科学大赛(DataScienceGame2017)近日落下帷幕。在初赛上,来自中国的Medi

诺道医学算法工程师王则远:2017全球高校学生数据科学大赛(DSG)经验分享

雷锋网(公众号:雷锋网) AI科技评论消息,由法国萨克雷大学主办的2017全球高校学生数据科学大赛(Data Science Game 2017)近日落下帷幕。在初赛上,来自中国的Medicinovo Inc.(诺道医学)团队一路过关斩将,最终获得全球第八、全美第一的佳绩;决赛中酣战20多个小时,Medicinovo Inc.(诺道医学)团队成功挤进全球前20强。

雷锋网 AI科技评论第一时间联系到团队成员王则远,就他在参赛过程中的一些诀窍和经验展开了探讨。

他们团队共有四名成员,大家都为美国史蒂文森理工大学商业智能与分析专业(数据科学方向)硕士生,其他三名队员分别是张仁宇、刘畅、张璐。

在比赛过程中,王则远主要负责确定初步的算法思路以及数据的一些处理方式,另外的同学主要负责编写爬虫,实现并行运算,处理缺失值和变量等。大家在比赛中分工合作,并结合自己的经验进行了充分探讨。

诺道医学算法工程师王则远:2017全球高校学生数据科学大赛(DSG)经验分享

上图从左至右:张仁宇,张璐,王则远,刘畅

试题讨论

据王则远介绍,在初赛中,主办方为选手提供了Deezer上用户一个月的听歌历史数据,通过分析历史数据,他们需要预测用户是否会喜欢Deezer推荐的歌曲。这个问题被归纳为二分类问题,与广告点击率、用户的购买行为预测等系统类似。

“目前业界对这类问题的关注很多,例如腾讯的社交广告算法大赛,阿里云的广告点击率预估算法等。不过音乐跟前面提到的广告算法其实还是有一些差别的,很典型的一点就是音乐需要考虑的维度更多,比如说歌曲特性、歌手特性,甚至是语言,另外还有国家、地区的特性,用户的喜好等。这次比赛提供的数据集就覆盖了欧洲、美洲、非洲以及一些西班牙语地区等。”

音乐推荐系统中需要关注的点有这么多,那么Medicinovo Inc.(诺道医学)团队在这次比赛中是如何考虑的呢?

在与雷锋网 AI科技评论的交流中,王则远表示,总的来说,这次比赛需要考虑的特性可以归为用户、歌曲和歌手这三个大的维度。此外他也向记者阐述了这次比赛与广告算法、用户购买推荐系统具体的不同点:

音乐需要考虑到歌手的特性,而广告算法需要考虑的可能只是广告特性和用户特性,大家不用考虑广告制作人的特性。另外用户购买行为推荐系统也是一样,并不会说喜欢某个人做的推荐系统算法,就会喜欢这个人做的算法推荐出来的东西。

比赛过程

主办方提供的基础数据集有30多个变量,原始数据有500多万条,这些数据大概涉及到3万多个用户。除了这些基础数据,主办方还另外公布了一个API链接,里面涉及到音乐网站上相对而言不那么重要的数据。

“参赛选手需要编写爬虫下载这些数据,然后再把所有的数据结合起来,得到整体数据集。”王则远说道。

拿到整体数据集之后,他们就开始进行一系列预处理操作了,包括缺失值的检验、变量间的相互独立性、偏斜性,还有一些异常值的检测、降维等。

他们团队在降维过程中具体用到什么算法?有什么经验可以分享呢?

王则远对AI科技评论讲解到,

“这次比赛用的降维算法主要是PCA和高斯映射。在进行降维时有一个小诀窍,在把各个非连续变量拟合成连续变量的时候,不要只用PC拟合出主成分,可以试一试把主成分放回到原有数据当中,比如原来有一百个变量,拟合出一个主成分,将主成分再放回数据集,变成101个变量,然后再进行结果的预测,可能会发现意想不到的效果。”

数据预处理之后呢?王则远表示,他们把所有数据结合起来之后,只得到了40个左右的变量。“用这些变量肯定没办法跟其他选手进行PK,所以需要利用变量工程挖掘出一些新的深度信息。”

他进一步阐述到,在这次比赛当中,变量工程主要是提取歌曲、歌手特性等。“例如我们需要对歌手名字进行解析,去看这个名字是属于什么语言,然后再把歌手与国家结合起来,挖掘出一些更深度的特性。歌手的性别、风格,在哪段时间最火,这些也要考虑到。”

歌手风格是如何提取的呢?在推荐系统中能起到什么作用?王则远说道:

歌手可能会分为乡村、民谣、摇滚等风格,但我们无法提取出风格,不过可以提取用户在不同的时间段(如上午、下午、晚上)分别喜欢听什么歌,然后再把歌手对应起来。在早上上班或是精力比较旺盛的时候,大家可能会想听一听摇滚风的歌手,而在晚上比较累的时候,大家可能就会想听一些舒缓的歌,就可以为大家推荐舒缓曲风的歌手。

谈完歌手之后,他也详述了在歌曲的处理中所使用的一些方法。

“其实歌曲和歌手的特性很接近,不过歌曲会存在专辑和播放时间的问题。歌曲的时长分布基本属于正态分布曲线,大致集中在一到三分钟之间。对于歌曲的时长,我们会设定一个阈值,比赛当中设定的是小于30秒和大于十分钟,小于30秒的歌曲全部会归为30秒,大于十分钟的全部归为十分钟。”

在变量工程中,他们还发现了哪些有意思的事情呢?

王则远表示,在这次比赛中,他们发现把歌曲在专辑中的位置跟歌曲特性结合起来,对识别主打歌作用很大。而这也带来了新的思考:这些特性的发现,都需要大家不断去想,不断去尝试。

另外,他也提到实验中这一阶段的一些小诀窍:

“做变量工程的时候,需要分开去试。我们在实验中会先提取一些深度特性,然后是一次加三个新特征,再看删去哪一个精度会上涨,通过这种方式一点点去删除,这样才形成最后的那套数据集。”

变量工程是实验中需要重点考虑的一环,除了变量工程,还有哪些是需要重点考虑到的呢?

据AI科技评论了解,这次比赛历时只有一个多月,远远短于Kaggle上的大多数比赛,对于这种时间紧、任务重的比赛,所以也需要考虑到速度。

王则远表示,他们试过在Kaggle比赛中使用频率较高的XGboost,但要想跑完数据集需要30个小时左右,这样会对后续的调参影响很大,而LightGBM能把时间压缩到三个小时,因此在模型训练阶段最终使用的是LightGBM。另外,在Stacking阶段他们也选了一些速度比较快的算法,这样能相对快速去进行调参。他同时也提到一点,在选取Stacking算法的时候也需要考虑到数据集的大小以及算法的多样性。

除了对模型和算法的考虑,他们还集合大家所有的计算资源,搭建了一个局域并行环境。

“在搭建小型局域网络之后,相当于把数据分拆成四个部分,然后分别放到四台电脑上去。这样去跑模型会稍微快一点。”他对AI科技评论这样说道。

除了前面提到的这些工作,像这种大量数据集,最容易遇见的问题肯定是过拟合了。那么,为了防止过拟合,他们做了哪些工作呢?

“调参的目的是为了防止过拟合。对于过拟合问题的话,我们需要进行正则化。加正则项之后,我们每次不会考虑所有的样本,可能会抽取80%进行考虑。在实验中的调参阶段,我们先调的是subsample和d-level这两个参数,最后调学习率。”

他进一步说道,“另外还有树的深度和广度。像这种比赛中树的深度一般是在3、4、5这三个数之间,广度基本上默认的就OK。”

此外,他表示,为了防止过拟合,在实验中也需要跑交叉验证。这次实验他们选择的是5-fold交叉验证,在数据集中,每次抽20%,连抽五份,抽出来部分的当测试集,剩下四个当训练集。

比赛中碰到的问题

在这次比赛中,会碰到哪些比较罕见的情况呢?他们又是怎么处理的?

王则远对AI科技评论说道,在这次比赛的测试集中,一个用户只放了一个ID,不像平常是随机抽取测试集的,这样的话ID有可能有重复,因此很容易对模型成大量干扰,产生过拟合。

“这种情况我们见得比较少,这可能是符合真实世界的一种情形,我们也试了很多种特征工程方法。最开始原始数据里没有排行榜,比如歌曲的年度推荐排行榜或者月度推荐排行榜,但是里面有这首歌被听的时间,那我们就可以提取出时间信息做出排行榜。基本上比赛的最后阶段我们都在做特征工程,也试了很多方法,才一点一点把问题攻克掉。”

他也提到,在这种情况出现的时候,他们当时还发现了一个神奇变量——歌曲月度推荐排行榜。加入这个变量之后,影响非常大,实验的精度提高了很多。

对大家的建议

在采访的最后,他也分享了他的一些比赛经验:

  • 首先来说,类似这种比赛的数据集,其实70%的努力都是在变量工程上。如果变量工程做得好,最后的结果一定不会很差,它的重要性要远比建立一个好的模型要高,所以建议大家把精力大部分都要放在变量工程上面。

如何做好变量工程呢?AI科技评论对他提出了这个问题。

这个其实也没有定式,是要充满想象力一些,提取出变量的深度特性。我们现在所有的模型都是在关注列,但要以行为基准去进行变量工程的操作。在这个过程中,还是以group by为主,把行进行拟合变换。这是一种很好的方式。另外还有现在的降维算法,大家也要多多考虑。

  • 另外,这个比赛的数据是非连续变量,非连续变量与连续变量相比,相当于是损失了一部分信息,难度会稍微大一些。它的维度很高,对于模型的判别存在很大的干扰,噪音数据的量可能稍微大一些,降维的时候也比较费劲。总的来说非连续变量存在很多问题,提取深度特征的时候也比较难。现在市面上有很多的方法,大家需要多多关注,在非连续变量有着天生缺陷的情况下,通过特征工程如何把它拟合成一个新的连续变量去处理。

  • 最后,现在国内的比赛也在慢慢变多,但我觉得大家对这种类型的比赛重视程度稍微差一些,这个比赛其实跟真实世界很像。大家后续可以多关注一下这类比赛,多多参与,多多积累经验。

比赛扩展

除了对比赛的一些经验分享,他也对比赛和现在的实际情况提出了自己的看法:

这次比赛中遇到的问题确实是现在实际应用当中的一个痛点,包括各大公司做的比赛也都专注在这个方面,进行用户个性化推荐系统的定制。但推荐系统现在整体的精度不是那么好,现在市面上一些音乐系统可以优化的地方还有很多,例如在真实世界的情况下,如何做好间接性推荐,这也是对推荐精度存在着影响的一个因素。

关于诺道医学:诺道医学是一家医疗人工智能领域的创业企业,开发的人工智能辅助诊断产品覆盖影像、心血管病、消化系统疾病、神经病学、临床药学等多个领域。


诺道医学算法工程师王则远:2017全球高校学生数据科学大赛(DSG)经验分享


推荐阅读
  • Netflix利用Druid实现高效实时数据分析
    本文探讨了全球领先的在线娱乐公司Netflix如何通过采用Apache Druid,实现了高效的数据采集、处理和实时分析,从而显著提升了用户体验和业务决策的准确性。文章详细介绍了Netflix在系统架构、数据摄取、管理和查询方面的实践,并展示了Druid在大规模数据处理中的卓越性能。 ... [详细]
  • 探索电路与系统的起源与发展
    本文回顾了电路与系统的发展历程,从电的早期发现到现代电子器件的应用。文章不仅涵盖了基础理论和关键发明,还探讨了这一学科对计算机、人工智能及物联网等领域的深远影响。 ... [详细]
  • Codeforces Round #566 (Div. 2) A~F个人题解
    Dashboard-CodeforcesRound#566(Div.2)-CodeforcesA.FillingShapes题意:给你一个的表格,你 ... [详细]
  • 本文探讨了如何在 PHP 的 Eloquent ORM 中实现数据表之间的关联查询,并通过具体示例详细解释了如何将关联数据嵌入到查询结果中。这不仅提高了数据查询的效率,还简化了代码逻辑。 ... [详细]
  • 毕业设计:基于机器学习与深度学习的垃圾邮件(短信)分类算法实现
    本文详细介绍了如何使用机器学习和深度学习技术对垃圾邮件和短信进行分类。内容涵盖从数据集介绍、预处理、特征提取到模型训练与评估的完整流程,并提供了具体的代码示例和实验结果。 ... [详细]
  • 华为智慧屏:超越屏幕尺寸的智能进化
    继全球发布后,华为智慧屏于9月26日在上海正式亮相,推出65英寸和75英寸版本。该产品不仅在屏幕尺寸上有所突破,更在性能和智能化方面实现了显著提升。 ... [详细]
  • Python 工具推荐 | PyHubWeekly 第二十一期:提升命令行体验的五大工具
    本期 PyHubWeekly 为大家精选了 GitHub 上五个优秀的 Python 工具,涵盖金融数据可视化、终端美化、国际化支持、图像增强和远程 Shell 环境配置。欢迎关注并参与项目。 ... [详细]
  • 创邻科技成功举办Graph+X生态合作伙伴大会,30余家行业领军企业共聚杭州
    9月22日,创邻科技在杭州举办“Graph+X”生态合作伙伴大会,汇聚了超过30家行业头部企业的50多位企业家和技术领袖,共同探讨图技术的前沿应用与发展前景。 ... [详细]
  • 智能投顾机器人:创业者如何应对新挑战?
    随着智能投顾技术在二级市场的兴起,针对一级市场的智能投顾也逐渐崭露头角。近日,一款名为阿尔妮塔的人工智能创投机器人正式发布,它将如何改变投资人的工作方式和创业者的融资策略? ... [详细]
  • 江苏启动鲲鹏生态产业园首批应用孵化项目
    2019年9月19日,在华为全联接大会上,江苏鲲鹏生态产业园正式启动了首批鲲鹏应用孵化项目。南京市委常委、江北新区党工委专职副书记罗群等多位嘉宾出席并见证了这一重要时刻。 ... [详细]
  • 三星Galaxy S8/S8+即将登场,全面解析新旗舰
    3月29日晚11点,备受瞩目的三星Galaxy S8/S8+将正式发布。作为三星在Note 7爆炸事件后的重磅产品,S8/S8+不仅承载着恢复消费者信心的重任,其创新的设计和技术也备受期待。 ... [详细]
  • 帝国CMS多图上传插件详解及使用指南
    本文介绍了一款用于帝国CMS的多图上传插件,该插件通过Flash技术实现批量图片上传功能,显著提升了多图上传效率。文章详细说明了插件的安装、配置和使用方法。 ... [详细]
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
  • vivo Y5s配备了联发科Helio P65八核处理器,这款处理器采用12纳米工艺制造,具备两颗高性能Cortex-A75核心和六颗高效能Cortex-A55核心。此外,它还集成了先进的图像处理单元和语音唤醒功能,为用户提供卓越的性能体验。 ... [详细]
  • 2017年苹果全球开发者大会即将开幕,预计iOS将迎来重大更新,同时Siri智能音箱有望首次亮相,AI技术成为大会焦点。 ... [详细]
author-avatar
灬哭着说再见灬
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有