Breezedeus

算法优化世界

Adaboost与指数损失

Adaboost是著名的ensemble分类算法,具体算法描述见下图1: 上面算法步骤里,有两个关键点: 在第$j$步迭代中,每个样本的权重为: \[\omega_i = \frac{\exp \left( -f(x_i)y_i \right)} {\sum^n_{i'=1}\exp \left( -f(x_{i'})y_{i'} \right)}, \ \ ...

SVM等于Hinge损失 + L2正则化

这里说的SVM是指最原始的2分类SVM,不考虑SVM的其他各种扩展。为简单起见,我们也只考虑线性SVM,对于带核函数的SVM,利用相似的推导我们可以获得相同的结论: 2分类SVM等于Hinge损失 + L2正则化。 下面是线性SVM的一般形式,其中目标分类$y \in \{-1, 1\}$,$C$为给定的惩罚系数: \[\begin{aligned} \min\limits_{...

L1正则化优化问题的一种求解方法

所谓的L1正则化优化问题,就是如下带$L_1$正则化的最小化问题: \[\begin{aligned} &\min\limits_{\theta} \left[ J(\theta) + \lambda \| \theta \|_1 \right] \\ &\triangleq \min\limits_{\theta} F(\theta) \ \ \text{。} \end...

L2约束与L2正则项优化问题的关系

所谓的L2约束问题,就是带L2约束的优化问题,见下式: \[\begin{aligned} \min& \ \ J(\theta) \\ s.t. &\| \theta \|^2 \leq R \end{aligned} \ \ \text{。}\] 而带L2正则项的优化问题则为: \[\min\limits_{\theta} \left[ J(\theta) + \f...

Spark介绍

前两天我在部门内部分享了spark介绍,内容从IDE到Spark里最重要的一些基本概念,以及MLlib和GraphX的简单使用。 分享slides:Spark介绍; 相关代码也放到Github上了:相关代码。 有兴趣的同学可以看看。

Python Web开发框架:Django

Django,Tornado和Flask是Python里比较著名的三个Web开发框架,本文我主要介绍Django里最重要的一些基本概念。 总览 下图是从用户输入网址到服务器返回结果的Django流程图。Django里几个重要的概念都涉及到了,接下来我就逐个说说。 URLconf URLconf其实就是起地址定向(或叫配对)的作用,浏览器中输入的不同地址定向到不同的处理逻辑上。 ...

(2011-)2014 年终总结:非技术篇

2011年刚加入世纪佳缘时,我从来没有带过团队,可以说对管理工作是一窍不通。当年跟老板刚刚接触时,我经常被老板骂的撕心裂肺。刚开始被骂时还总是提心吊胆的,后来被骂皮了,倒也“处之泰然”。(莫非这变成我的舒适区了?……)现在有些同事还是很怕老板,说很容易被骂,我就安慰他们说没事,骂骂挺好,老板骂完心情就好了,随后你也就好过了。 这几年的管理历练让我面对管理时不像之前那么手足无措了,这个过程也...

(2011-)2014 年终总结:技术篇

总结、温习,这两点让人成长。而不是你走得有多快! 这句话我写了半年了,这篇文章算是此话付诸实践的开端吧。 本文是我对自己这几年所接触的技术的总结,有些技术与工作直接相关,有些则纯属个人兴趣。具体说,本文分为两部分,第一部分介绍佳缘用户推荐系统的发展历史。这部分的介绍很好地反映我们对这个问题的思考和理解过程。这期间我们走了很多弯路,但也正是这些弯路让我们积累了很多婚恋交友推荐里独特...

ZooKeeper介绍

ZooKeeper使用了client-server(客户端-服务器)的架构,其中server指的是提供ZooKeeper服务的那些结点,而client指的是使用ZooKeeper服务的那些结点。1 客户端通过TCP协议连接到其中一台服务器,它通过周期性对已连接的服务器发送ping请求以便让服务器知道此客户端还是活的,而服务器对ping做出响应以便让客户端知道此服务器还活着。如果客户端在一定...

特征哈希(Feature Hashing)

在特征处理(Feature Processing)中我介绍了利用笛卡尔乘积的方法来构造组合特征。这种方法虽然简单,但麻烦的是会使得特征数量爆炸式增长。比如一个可以取N个不同值的类别特征,与一个可以去M个不同值的类别特征做笛卡尔乘积,就能构造出N*M个组合特征。 特征太多这个问题在具有个性化的问题里尤为突出。如果把用户id看成一个类别特征,那么它可以取的值的数量就等于用户数。把这个用户id特...

利用GBDT模型构造新特征

实际问题中,可直接用于机器学习模型的特征往往并不多。能否从“混乱”的原始log中挖掘到有用的特征,将会决定机器学习模型效果的好坏。引用下面一句流行的话: 特征决定了所有算法效果的上限,而不同的算法只是离这个上限的距离不同而已。 本文中我将介绍Facebook最近发表的利用GBDT模型构造新特征的方法1。 论文的思想很简单,就是先用已有特征训练GBDT模型,然后利用GBDT模型学...

特征处理(Feature Processing)

特征工程(Feature Engineering)经常被说为机器学习中的black art,这里面包含了很多不可言说的方面。怎么处理好特征,最重要的当然还是对要解决问题的了解。但是,它其实也有很多科学的地方。这篇文章我之所以命名为特征处理(Feature Processing),是因为这里面要介绍的东西只是特征工程中的一小部分。这部分比较基础,比较容易说,所以由此开始。 单个原始特征(或称...

Proximal Gradient Descent for L1 Regularization

假设我们要求解以下的最小化问题: \[\min\limits_x f(x) \ \ \text{。}\] 如果$f(x)$可导,那么一个简单的方法是使用Gradient Descent (GD)方法,也即使用以下的式子进行迭代求解: \[x_{k+1} := x_{k} - \alpha \nabla f(x_{k}) \ \ \text{。}\] 对GD的一种解释是$x_k$沿着当...

aDev第13期#个性化推荐技术#总结(Part III, Final: 稳国柱@豆瓣)

Talk3:寻路推荐,稳国柱@豆瓣 【ppt下载地址】 作者介绍了在豆瓣经历的三个推荐产品:电影推荐、图书推荐和电台的音乐推荐。 电影推荐。在电影推荐中如果纯粹使用CF算法,会产生比较严重的头部效应(热门电影同时被推荐)。用户在一家影院看完某部动作片后,他经常会对在这家影院同时上映的很多电影一起评分。如果直接把CF算法应用于用户的评分数据上,就可能导致喜欢动作片的也喜欢...

aDev第13期#个性化推荐技术#总结(Part II:江申@百度)

Talk2:面向广告主的推荐,江申@百度 【注:本文中很多语句都直接拷贝自作者的演讲ppt而并未加以标明,具体请对照原ppt。】 作者主要讲的是百度面向广告主的推荐产品,主要指拍卖词推荐。 技术目标要正确。在做产品时,我们当然会有一个目的目标,比如提升用户购买率,或者最大化公司收益等。但如何把这种目的目标数学化,也就是写成数学上可以表达的目标函数,其实非常不容易。比如豆...

aDev第13期#个性化推荐技术#总结(Part I:袁全@一淘)

Talk1:Large-scale Ecommerce RS in Etao,袁全@一淘 【ppt下载地址】 关于用户的行为数据,作者的经验是用户的点击与购买数据比收藏、打分与观看更有用。与购买数据相比,点击数据在做相关性推荐时(如用户在查看泳衣时给他推荐其他款泳衣)更有效,而做补充性推荐时(如用户购买了泳衣后就给他推荐泳镜)则是购买数据比点击数据更有效。想想用户产生这两...

机器学习里需要知道的12堂课

下图是我对Pedro Domingos 2012年的论文“A few useful things to know about machine learning”1的总结,大图可以在这里下载,xmind源文件也可以免费下载。翻译与理解不对的地方请大家指正。 这篇论文现在也有中文翻译了,可见这里。 References Pedro Domingos. A ...

Facebook的朋友推荐系统

Facebook的新朋友关系中有92%来自于朋友的朋友(FOFs),来自于Facebook的数据科学家Lars Backstrom在eswc2011的talk中介绍了他们是如何对FOFs进行排序,并最终为用户产生朋友推荐的全过程。上不了videolectures.net的童鞋也可以在这里下载对应的slides。 下面这幅图摘自演讲slides,是整个FOFs推荐系统的一个流程图。 例...

也说说EM

前几天看Andrew Ng 讲EM的视频,又温习了一遍这玩意。 EM的想法其实也比较简单。我要最大化似然函数(或者后验概率),但是直接最大化很难。 所以,我找一个似然函数的近似函数,这个近似函数小于等于似然函数,而且局部上充分逼近似然函数(保证至少在某个点两个函数有相同的函数值),而且这个函数比较容易最大化。 要找到一个全局逼近原来似然函数的简单函数(简单是说容易找其最大值点)显然非常...

基于内容的推荐(Content-based Recommendations)

Collaborative Filtering Recommendations (协同过滤,简称CF) 是目前最流行的推荐方法,在研究界和工业界得到大量使用。但是,工业界真正使用的系统一般都不会只有CF推荐算法,Content-based Recommendations (CB)基本也会是其中的一部分。 CB应该算是最早被使用的推荐方法吧,它根据用户过去喜欢的产品(本文统称为 item),...