自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 Key Points from "Introduce to Data Science"

Week 1Data Science refersto an emerging area of work

2014-07-21 23:05:46 733

原创 数据结构复习(二)—— 栈

import java.io.IOException;import java.io.InputStreamReader;import java.io.BufferedReader;import java.io.OutputStreamWriter;import java.io.PrintWriter;import java.io.StreamTokenizer;import

2014-07-01 19:31:32 571

原创 Hadoop YARN 安装

Hadoop 2.X的配置教程不多,这里有一篇很好的guide。这里大概摘了几个要点:Hadoop之前几乎是MapReduce计算模型的代名词。而从2.X起,Hadoop致力于发展成在集群之上的一个抽象层,在这个抽象层之上可以运行不限于MapReduce的计算,比如用于图处理的Giraph和用于一般的基于内存的计算的Spark。实现这种分离的关键在于YARN(Yet Another Res

2014-06-29 22:18:08 662

原创 算法复习(二)—— 最短路径

经典的Dijkstra最短路径算法只适用没有负边的qin

2014-06-28 00:09:42 545

原创 算法复习(一)——最小生成树

求最小生成树有两种算法:

2014-06-27 22:21:48 575

原创 数据结构复习(一) —— 最小堆

以前做ACM, 写代码用的是C。一毫一厘的细节都得自己码。现在倾向于问题本身的分析:该用什么算法,什么数据结构。因此Java是不二之选。建立最小(大)堆的复杂度为O(nlogn), 更新的复杂度为O(logn)hdu 4006 一题中, n代码如下:import java.io.BufferedReader;import java.io.IOException;

2014-06-27 21:12:58 517

原创 SVD与PCA

PCA(主成分分析)其实只是SVD(奇异值分解)的一个应用。本文讲述了SVD和PCA的实现过程。并带有两个图像处理的例子,以及python源代码。出于美观和效率角度考虑,我还是直接上传latex生成的pdf文档。可点击这里下载部分截图如下:

2014-02-25 22:11:46 1129

原创 使用吉布斯采样求解LDA模型

LDA原论文用Variational Inference方法求解参数,但那个方法深究比较复杂。后来发现,统计之都中有个LDA的系列文章讲解十分清晰、到位。这里用我自己理解的思路组织了这篇文章。用latex生成,可以到这里下载LDA模型求解.pdf

2014-02-19 13:19:11 4089

原创 从logistic regression到MCMC

在博客里写数学公式是个很头疼的问题。我厌倦了一直使用截图的办法,使用mathtex也没有直接写latex方便。所以一个好的办法是写好latex,上传生成的pdf。简介: logistic regression是个很强大很常见的模型,其实它对应概率模型里的最大似然估计——求出概率最高的那个参数取值。但若我们要知道不同的参数分别取什么概率,则需要进行全贝叶斯估计。这时就会出现无法积分的问题

2014-02-19 13:11:38 1056

原创 广义线性模型(三)

注:所有图片均来自[1]前两篇分别介绍了线性回归和logistic regression。可以看到这两个模型参数更新公式是一样的。这并非巧合,而是因为它们都属于广义线性模型(Generalized Linear Models)。首先引入exponential family的概念。如果一类分布(a class of distribution)属于exponential family,那么

2014-02-12 20:57:07 1134

原创 广义线性模型之logistic regression(二)

注:本文若没特殊声明,所有截图均来自cs229 Machine Learning Lecture notes 1Logistic regression的hypotheses为 其中被称为logistic function或者sigmoid function。由于 sigmoid 函数的输出介于0~1之间,因此我们可以把它看成概率。令 则p(y|X;t

2014-02-12 19:05:31 1257

原创 广义线性模型之线性回归(一)

注:本文若没特殊声明,所有截图均来自cs229 Machine Learning Lecture notes 1监督学习中,最常见的是线性回归和分类问题。然而,我们熟知的linear regression和logistic regression这两个机器学习算法其实只是一个更广泛的模型family的特殊特殊情况——广义线性模型(Generalized Linear Models)。本系

2014-02-12 18:40:54 2495

原创 生成模型中的高斯判别分析和朴素贝叶斯

设样本为X(大写X表示向量),其类别为y。下面的图片若非特殊声明,均来自cs229 Lecture notes 2。用于分类的机器学习算法可以分为两种:判别模型(Discriminative learning algorithms)和生成模型(Generative Learning algorithms)。判别模型试图直接求出p(y|X),如logistic regression,或者直接将样

2014-02-11 23:01:00 1172

原创 YouTube的视频推荐算法

这篇是来自google 2007关于YouTube上视频推荐的文章。它的一个重大意义在于,让我们了解实际工程中,尤其是像YouTube这样的大型视频分享网站,推荐系统的架构是怎么样的,以及所遇到的问题。文章指出YouTube上视频推荐面临着很多的挑战:①由于用户可以自己上传视频,因此视频的数量大概和用户的数在一个数量及上(现实中,一般情况下物品数是要远远小于用户数的)②用户

2014-01-14 00:55:21 1922

原创 使用mapreduce并行化基于物品的协同过滤算法

由于item-based CF算法能对新用户进行推荐,并且能对推荐做出合理的解释,因此它在商用中的应用是很普遍的。[35]主要的贡献则是将item-based CF算法使用map-reduce框架并行化。作者指出,在0-1评分下,基于物品的相似度的计算可以写成这个这样子(A是以user为行,item为列的矩阵,S是要计算的物品相似度矩阵):  其中,a_u表示用户u在A中对应的行,也就是u

2014-01-14 00:01:19 2212

原创 LDA原论文的部分解读

本文主要是针对“Latent Dirichlet Allocation”部分的解读。该paper除了提出LDA,还将其与LSI,pLSI以及其他生成模型做了对比。另外它提到了LDA的一个简化版本,其实这个简化版本就足够用来做tweet的情感分析了。I Latent Dirichlet Allocation文本处理中,最传统的做法是将文档用tf-idf向量表示。这里,tf-idf

2014-01-12 15:46:45 1928

原创 使用Knowledge Base实现跨领域的推荐

跨领域的英文叫法是Cross Domain。 除了文本信息,如今网络出现了越来越多的多媒体信息:图片分享,视频网站,在线音乐网站等等。这给像百度这样的广告中介带来的了问题:因为上下文广告推荐的思想是广告与用户当前浏览的页面越相关,其点击率越高。而传统的文本技术无法判断多媒体与广告的相关性。这篇文章介绍[2]提出的使用knowledge base来做图片与文字间跨领域推荐的方法。在传统上

2014-01-09 23:53:44 1927

原创 top-N推荐中以recall为指标的实验设计

如何很亮top-N推荐的性能,是个重要的问题。其中,recall的计算并非那么直观的。下面,先看几个paper里不同的计算方法,然后做个总结。[27]的实验方法:记处理后的(隐式)评分矩阵为S,其中用户u有过隐式反馈的物品集为u+,没有的集合为u-。对于每个用户u,作者从u+中随机抽取10个相关的物品,作为测试集u_test。作者从u-中随机抽取K|u+|个物品,记为u* ——由于增加

2014-01-08 16:39:25 4496

原创 直接优化物品排序的推荐算法

一直以来,推荐系统使用的都是使用Collaborative Filtering(协同过滤)算法:利用用户和物品间的相似关系,计算用户对物品的喜好程度。然后将预计用户最喜欢的前N个物品推荐给它,以实现个性化推荐。可以看到,这其实可以当成一个rank问题:将用户喜欢的物品排序,然后推荐前N个它最喜欢的。虽然如此,model-based CF(如Matrix factorization, FM)和mem

2014-01-07 00:12:54 5737

原创 不同情境下用于评测推荐系统准确率的指标

Evaluating Recommendation Systems [25]将准确率分成3类:①预测评分的准确率 ②预测usage的准确率 ③排序的准确率①预测评分的准确率Root Mean Squared Error(RMSE)是最常用来衡量评分的准确率的。还有个是Mean Absolute Error(MAE)。RMSE 与MAE的区别在于RMSE会放大误差大的评分。如[25]

2014-01-06 11:57:05 2393

原创 如何利用knowledge base来做推荐

首先介绍一点背景信息。Dr. Gautam Shroff在《Web Intelligence and Big Data》里提到语义网(semantic web)大致的vision是:将facts和rules从现有的web里面提取出来。老的facts又和rules产生新的facts,于是semantic web不断壮大。他指出这样的semantic web虽然没有被实现,但能跨领域地表示knowle

2014-01-04 00:47:39 4284

原创 推荐系统如何给新用户提问题

简单地归类下,有两种方法:采用问问题的方式 和 利用已有的信息(比如用户配置)。本文先只讨论第一种方法。推荐系统冷启动问题有个很“简单”的解决方案:给几个物品让用户评分,而且鉴于用户不喜欢一次评很多东西,通常只给很少的物品,比如5-10个。但这个问题其实不简单:如何选择这几个物品呢?随机给用户分配要评分的物品太不靠谱了。一个简单有效的方法是拿整个系统内最流行的物品给用户评分。就满意度来

2013-12-28 19:29:01 1068

原创 矩阵分解模型MF如何进行在线更新

目前在评分预测方面,Matrix factorization模型是performance最好的一个模型。但它的缺点是整个模型训练完后是静态的。所谓静态是指模型无法对更新做出灵活的改变。而更新在现实情境下十分常见的,比如用户新评价了一个物品,一个新用户注册了,一个新物品被添加了。这就要求模型能较好地反映出这些变化。那为什么即使用SGD训练模型,也不能直接在评分r_ij对应的用户i特征向量和物品j特征

2013-12-27 20:21:10 3013

原创 如何将用户表示成机器可以处理的形式(基于内容的推荐)

当用户信息(如年龄,性别)和物品信息(如制片方,上映年份,所属类型)可用时,如何在推荐系统中利用这些信息?也是实现所说的基于内容(content-based)的推荐。其实基于内容的推荐要解决两个主要问题:item profile 和 user profile。即如何将这些人类的知识转化成机器可以处理的形式。CB里面常见的一个词是Ontology(本体),它的含义就是一种可被机器处理的人类知识的表现

2013-12-27 13:45:41 717

原创 一个memory-based协同过滤算法的改进(基于隐式评分)

先来看定义。“显示评分”俗称打分,如Netflix中允许用户给每部电影打1-5分,豆瓣电影也允许用户给电影评星级(很差—力荐)。而“隐式评分”是指用户的浏览记录,购买记录等等,用binary数值0表示没有浏览/购买,1表示浏览/购买过;或者是标示次数的信息:浏览/购买过几次。可以看到,隐式评分不能反映用户对一个物品的喜好。如果评分r_ij为0,不能代表用户i不喜欢物品j,可能只是因为用

2013-12-25 22:57:19 2608

原创 如何使基于梯度下降的机器学习并行化

本文,讨论batch-gradient和stochastic gradient descent的并行化。首先来看batch-gradient。batch-gradient的每次更新都要在整个训练集上计算获得。比如,logistic regression的更新公式为:(1)图片来自coursera上的《Machine Learning》截屏因此若训练集很大(m很大),这种做法是十

2013-12-24 23:14:51 4378

原创 使用概率矩阵模型在推荐系统中整合多种信息

做推荐时,往往会有不同的数据可用。如Netflix数据集中,有用户的显示评分信息(1-5),也有用户隐式评分信息(即用户观看记录,但没有评分);在上下文广告推荐中,有用户访问网页信息R1、用户点击广告信息R2和广告与网页关联度信息R3。那如何集成这些不同的信息,来做更好的推荐呢?首先,SVD++算是一种集成。它通过在原有评分矩阵分解的基础上集成了隐式评分信息,但它的集成过程不是十分直观

2013-12-23 00:54:04 1749 2

原创 如何捕捉推荐系统中随时间变化的动态信息

首先来看为时间信息建模的重要性事物是动态变化的。不仅是人的喜好、品味会随着时间的推移改变(比如,一个喜欢看韩剧的用户渐渐喜欢上了国产“恐怖片”;或用户打分的标准比以往更严格了,感觉极好的也只打4分)。物品的流行度也会随着其他物品的出现,时间的发展而改变(文中显示,老电影评分tend to 比新电影的高)。因此,让推荐系统捕捉到用户和物品的改变能显著地提高推荐的准确度。[2]进一步,

2013-12-21 22:13:52 1251

原创 推荐系统中的协同过滤算法

协同过滤Collaborative Filtering (CF)算法是推荐算法的一个大分支,基本思想是推荐相似的物品,或者推荐相似用户(隐式或者显式)评分过的物品。CF方法主要可以分为两类:基于邻域和基于隐语义。基于邻域的方法利用“两个用户共同评分过的物品”或者“共同评价两个物品的用户”分别计算用户间的相似度和物品间的相似度。但由于实际用户评分的数据是十分稀疏,用户之间可能根本没有相同

2013-12-21 18:49:39 2625

原创 基于《Web Intelligence and Big Data》的自我梳理 五

五、CONNECT有了facts 和 rules,我们可以进行推断。比如:fact: Obama is president of USArule: X is president of C => X is leader of C我们可以推出 Obama is leader of USA。Semantic Web 语义网大致思路就是从网上抓取facts (如,Wekipedia)

2013-12-17 23:59:21 827

原创 基于《Web Intelligence and Big Data》的自我梳理 三、四

三、LOADLOAD可以理解为数据实际上的处理。首先看看数据库。传统关系型数据库主要是面向事务的。最早基于row-oriented存储,使用B+树索引。由于不同事务间的并发,为了满足ACID(原子性,一致性,隔离性,持久性),传统关系型数据库加入了锁以及其他维护数据库一致性的机制。随着,数据表的增大,一个表可能有很多个列。假使我只要查询记录中的某几个字段,基于行存储的数据库仍然要读取所有的字段

2013-12-16 22:44:24 898

原创 基于《Web Intelligence and Big Data》的自我梳理 一、二

总共分为7个模块:LOOK, LISTEN, LOAD, LEARN, CONECT, PREDICT。一、LOOK(搜索)首先,大家对搜索都不陌生。搜索引擎为每个文档建立反转索引。但由于文档数太多,光靠关键字匹配起不到信息过滤的作用。可以另外引入“重要性”的概念,即pagerank所要解决的问题:它使用随机游走模型,从一个点开始,计算所有网页被访问的概率。可以证明这个概率矩阵是可以收敛的

2013-12-15 21:53:10 692

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除