在上一篇文章豆瓣13万电影数据统计与分析里面,笔者对豆瓣的电影数据进行了基本的统计和分析,通过数据我们对电影的整体情况有了初步认识。为了进一步利用好这份数据,本文将开启本博客新的知识领域——知识图谱。基于这13w豆瓣电影数据,提取出图谱数据,并以此建立图谱数据库,构建电影知识图谱。

Read More »

早在2016年,写过几篇关于爬虫的文章,并且针对新浪微博编写了一个小爬虫WSpider,用于爬取用户信息和评论内容,可惜的是相关数据没保留下来,有点遗憾。最近,为了完善和巩固自己的知识体系,于是又动了动手爬取数据的念头。又考虑在NLP、推荐系统、深度学习业余项目中也能使用,最终选择了豆瓣电影,总共从豆瓣里爬取了13w+的电影,外加28万+影评(截止2019年8月上旬),电影内容包括电影名称、上映日期、国家、语种、导演、演员、标签、豆瓣评分、投票数量等条目。看到这些数据,真是让人心潮澎湃,为了探索电影数据背后的意义,本文将从各个不同的维度对电影数据进行分析。关于爬虫相关的内容,后续有时间再分享出来吧!

Read More »

关于排序模型,可以采用传统的GBDT+LR模型,也可以采用FM系列算法,这两种模型笔者先前也有介绍,读者如有疑问,可花点时间前去回顾下。本文主要针对排序任务,介绍两种排序模型:Wide & Deep 和 DeepFM。原本打算将两个模型分开单独成文,后来考虑到内容上的相关性,就将这两种模型写在一起了。文章编写时间紧凑,文中如有不对的地方,还请读者指出。另外,本文的所有截图和数据均来自DeepFM的相关paper。

Read More »

在上篇文章Boosting模型:XGBoost原理剖析一文中,详细介绍了陈天奇等人于2014年发布的XGBoost的内在原理,同时阐述了其特有的几大优点。然时代变化之迅速,新技术如春笋般应运而生,与日俱进。继xgboost之后,2016年微软进一步发布了GBDT的另一个实现:lightGBM。据悉,与XGBoost相比,在相同的运行时间下能够得到更好的预测性能。同时,在multi-class classification、click prediction和排序(learning to rank)都有很好的效果。本文将基于lightGBM的原始paper,对其原理进行归纳总结,以供后续参详,温习之用。

Read More »

继前两篇文章Boosting模型:GBDT原理介绍CTR预估经典模型:GBDT+LR之后,本文将继续探究下一个Boosting模型:XGBoost,全称eXtreme Gradient Boosting。XGBoost,听着名子就觉得特霸气,给人一种威风四面、震慑八方的实觉。事实上,其在实际比赛和项目实践中的效果也绝不含糊,名副其实呀!具体的数据这里就不展开了,明白就行。XGBoost本身是GBDT的一个高性能的开源库,是陈天奇等人于2014年开发,即可用于分类,也可用于回归。本文主要是介绍XGBoost的原理,同时深入分析下其在GBDT的基础上做了哪些改进点。关于XGBoost的实践,可以参考A Beginner’s guide to XGBoost,是一篇很好的入门级应用教程。

Read More »

上一篇文章,提到了Facebook 2014年发表的一篇采用GBDT构建特征的论文:Practical lessons from predicting clicks on ads at facebook。为了深入学习GBDT,本文将重点分析这篇文章的思路,即CTR预估经典模型:GBDT+LR,一个曾风靡Kaggle、至今在工业界仍存有余温的传奇模型。同时采用scikit-learn里面的GBDT和LR来完成GBDT+LR的实验。

Read More »

说到GBDT,很多人都熟悉,那么我为什么还要在这里编写这篇文章呢?原因很简单,对我来说,在算法学习过程中,喜欢探究算法背后的公式推导,有时候自己也是一头雾水,但目的就是把每个步骤弄清楚,而每次重新回顾算法的时候,或多或少都会领悟到一些与之前不一样的东西,然后惊叹:噢,原来这里是这样,之前怎么就没领悟到,“书读百遍其义自见”大概就是这个道理!这篇文章其实很早之前就写了一部分,只是一直没有完整的整理出来,每次看到这篇文章放到draft里面,就总觉得有种有始无终的感觉。这回,在文章后面引入了实例解析部分,主要是希望后续回来温习的时候,能够快速地理解。

Read More »

在神经网络里面,会经常用到activation function,不管是CNN还是RNN亦或是其他带有神经元的网络,activation function都扮演着重要角色。刚接触神经网络的时候,脑子里总会浮现很多问题。为什么会有这么多activation function?为何这个函数就比另一个效果好?这么多函数,我们该使用哪一个?出于学习目的,本文将对activation function进行简要的归纳,旨在屡清各个函数的应用场景。

Read More »

原文链接:http://www.csuldw.com/2019/03/24/2019-03-24-anomaly-detection-introduction/

“黑中有白,白中有黑,没有绝对的白,也没有绝对的黑,黑可衬白,白可映黑。万物皆可转换”。
本文是笔者首篇关于异常检测类的文章,主要介绍了八种不同的无监督异常检测方法,篇幅较长,实验部分仅供参考。全文表述中如有不明之处,读者可在下方留言。

Read More »

首先说明一下,本主题源自Hexo Next主题,经过笔者长期以来的修改,源代码中很多地方都有所变动,因此衍生出一个新的花名FreeSky,目前版本为FreeSky v0.4.0,GitHub地址:csuldw/FreeSky。起初博主并没有意料到会有其他人也使用这一主题,毕竟修改的地方有点多,而且略微粗糙,没有去仔细修正,适合自用。最近在浏览GitHub的时候,看到用户ooobug提了一个issue,这也让我开始怀疑,这个BUG是否已经存在很久了。

Read More »

“学而时习之,不亦说乎”,趁着过年几天假期,多写几篇文章。上一篇文章基于Embedding的推荐系统召回策略介绍的是一种召回方法,本文将介绍一种用于推荐系统排序阶段的方法FM,全称Factorization Machines,该算法的目的是解决稀疏数据下的特征组合问题,被广泛应用于广告推荐等CTR预估场景。关于FM算法的介绍数不胜数,读者也可以去阅读paper。本文纯粹是笔者实践过程中的个人总结,内容简要浅显,不敢与其他行家媲美,如若读者在阅读过程中发现疑问,还请留言告知,谢谢!

Read More »

推荐系统主要试图预测user对item的评分或是偏好,通过评分的高低进行针对性的推荐。纵观各互联网大公司,几乎都会采用使用到推荐服务,比如:新闻推荐、广告推荐、商品推荐、书籍推荐等等。本文主要介绍如何使用keras训练embedding weights进而进行推荐。

Read More »

最近,在浏览towardsdatascience上面的机器学习相关文章的时候,无意间看到一篇关于异常检测的文章,刚好与自己的工作内容有点契合,文章讲解的是两种分析思路:第一种、PCA + Mahalanobis;第二种、AutoEncoder训练模型进行检测。兴奋之下,决定将这篇文章分享出来,如果内容有理解不当的地方,还请读者指出,深表感谢。

原文链接: How to use machine learning for anomaly detection and condition monitoring

Read More »

前阵子,丫姐说18年快过了,看你以前每年都写总结,今年的总结什么时候写,写完告诉我,我去看看!

的确,一年又要过了。从读研那年起,就开始写年总结,久而久之,便成了一种习惯。记得还是14年的时候,少不经事,懵懵懂懂,写的内容也是东拼西凑,词不尽意,流水般的记录下自己一年的“奇葩”经历,犹如游记一般。现如今,五年过去了,虽然这两年没怎么写博文,但年度总结终归还是不能落下,毕竟,过了今天,又是一年呢!

Read More »