Mar 8 2012

[书评]《科技想要什么》:我们是思考星空的星尘

对读《失控》时欲罢不能的阅读状态印象非常深。之前很少接触这类读物,于一个奔三正逐渐走向庸俗的普通理工男而言,当沉浸在这样一本谈论未来、生命、进化、智能的大厚书时,不仅是打开了通向另一个世界的窗户,也仿佛多少得到了一些超然于琐碎日常生活的进阶智慧。

于是很自然的拿起K.K的这本新书《科技想要什么》,他并没有让我失望。

《科技想要什么》可以看做《失控》的续作。后者的核心观点在于阐述人造物和自然生命的两种趋势——人造物越来越像生命体、生命越来越工程化;内容包罗万象:社会、经济、文化、历史和超生命体,笔触之广让人惊叹。

在此基础上,新书进一步讨论了“科技”(准确的说是“technium/科技元素”)的本质、发展历程和趋势,以及人类应该如何看待与科技的关系。

在K.K看来,科技是一个生命体,是生物界的第七王国,其发展与整个进化过程和宇宙的演变规律融为一体,长期看具有不可逆的必然性和清晰的走势。每种科技都会解决一些问题,使人类有了更多选择的可能性,也会带来一些新问题——而这些问题的解决又依赖于新的科技——这是个无限博弈的过程,而科技总体上是善的。

人类将同、而且实际上早就已经同科技构成了一个共生体,如何对待科技其实是不言自明的。印象中很有意思的一个例子是:人们很担心在有了电脑以后,自己的计算能力会大幅退化,造成对计算设备的很强依赖。而实际上,这种依赖早就存在了——没有纸和笔,绝大部分人算不了3位数以上的乘除法。

不更多的剧透了。全书的结构相对清楚(比《失控》要好),作者如往常一样用了大量的事例和数据来说明观点,中文翻译也比较不错。最关键的是,放在宇宙40亿年的尺度中去看待科技的进化,实在是个太深邃和迷人的视角了。非常推荐一读!

我辈本不是“朝闻道,夕死可矣”的蓬莱人。只是有时候很真的需要跳出熙熙攘攘的生活之外,略带敬意的想一想我们做为无限卑微存在身处的这个宇宙。

是的,我们是思考星空的星尘。


Feb 23 2012

[书评]《facebook效应》:一个不寻常的过程

这里荒废了很久。上书评一则充数,后续要勤快起来。

-----

facebook确实是最近很长一段时间内,泛科技圈内最炙手可热的话题之一了;本月的IPO申请可谓又添了一把柴火。这般热闹我一向不爱去凑,印象里类似体裁大多会落入造神+背书的俗套——把刀尖舔血跌跌撞撞的创业历程,写成某些领袖人物雄才大略、王霸之气的必然产出。外行传记作家或者从成功的结果去回溯原因、或者扯出各种狗血八卦来强化冲突增加代入感(参考电影《社交网络》),总给人隔裤搔痒的蛋疼感。

春节前美院念摄影的文艺青年表弟,居然专门给我发短信推荐这书,还跟我一来二去聊起创业的事情。于是周末找来翻了翻,于是一气读完,然后认真的五星推荐。

个人观点,本书基本清晰完整的还原了facebook直到2010年的创业发展历程,称得上严肃认真。有很多地方很有意思。

你会发现现在看来理所当然的设计和对问题的理解,都经历了漫长孵化和尝试的过程。从常青藤到所有大学,再到高中,再到开放注册,一路完全不是水到渠成。每一步核心团队都在拷问自己:是否会丧失精英化的立足之本、是否会造成现有用户的使用障碍、是否能真正满足各个年龄段的社交需求,每一步都有反对和见好就收的声音,也有过隔离不同社群的不靠谱尝试(facebookhigh)。

本质上,这是对扎克帮理想和理念的检验。他们也在过程中不断修正、强化认识。从最简单的个人简介到照片分享,再到Newsfeed,再到开放应用平台化,进而到朋友关系的改进——facebook不断在被重定义,而非从结果看上去的将一个大拼图逐渐补全。

这个过程的内容颇为丰富精彩。

如何解决资金和运营的问题,处理与投资人的关系?帕克在之前两个公司被扫地出门的惨痛经历,造就了扎克帮对风投情感上的抵触、警觉,以及对公司绝对控制权的高度重视。这保证了facebook能独立的走到现在变成这般模样。即使如此,对钱并不看重的扎克也有那么挣扎纠结的经历,有那么一两个时间点facebook无限接近被收购。

充满黑客色彩、行为不羁的20+创始团队,在公司逐渐变大时如何hold住局面?最初通过猎头招募的高管团队碰上了不小的磨合问题,扎克在学习做一个CEO过程中要花很多学时。很多问题甚至是独一无二的——当你给予每个用户在网络媒介的发言权时,如何沟通和引导他们?

扎克很长一段时间的思路“只关注增长,不考虑赚钱”。这过于理想化或者赚钱真的只是个时机问题?不管如何,facebook怎么来建立与自己规模和外界预期相匹配营收模式呢?他们挖来了G家的桑德博格任COO,做了次全面的梳理。最终演化成了方式ABCD,但总的来说,手握如此多用户和用户信息的facebook还有太多的想像空间。

最后几章,作者对隐私问题、facebook对未来的影响也做了阐述。里面的一些观点值得关注,比如扎克所说未来的透明化,比如人们对隐私问题看法的不断变化。

很多地方书中着墨不多,回到那个时刻,代入成自己——你将如何想、如何做?结合结果和想像,颇是次不错的体验,有很多值得学习和推敲的东西。

这确实是个不寻常的过程,或许有一天我也将身处其中。


Aug 31 2011

8月

这个八月,暗流涌动。

忙了一场,复杂坎坷折腾程度可谓近几年之最。悲催的是,绝大部分参与者都对事情的价值和意义充满了怀疑,包括我在内。很难相信这样的事情之前没有人做,如今又是以这样的方式来推进。这一番过后,对环境、人和很多东西有了更多认识,其中一点便是:很多东西都是奢侈品,比如“志同道合”。

病了一场,持续发了一个多周的烧。上次类似情况还是两年前,差不多也是这个时候;必须要承认如今身体完全是在吃老本了。发烧是种很神奇的状态,有时候仿佛你的灵魂从身体里飘了出来,冷眼看着眼前这个大夏天穿着抓融衣服汗流浃背的脑残家伙。

梦了一场,多年积蓄情绪、想法的爆发,最终还是被自己弹压了下去。当以告别和游离的状态看着眼前为自己所不忿的工作和生活时,必须要承认还是有那么些子留恋。于是重新审视,长期以来对北京的无爱甚至是厌恶,是否至少有一部分源于对生活热爱的不足,这样不足可取。

结束的时候总结一下,这是个挣扎而不麻木的8月,我算是满意。


Aug 1 2011

迷惘与小扯蛋

刚开始标题写的是《迷惘的一代》,但哥谁的代表不了,更何况是一代人?

至少从我个人来讲,最近的一两年确实是陷入了无名的迷惘和狂躁中。现实生活还处于鸡飞狗跳中,就不折腾写字了——仅贴一下跟某童鞋的聊天记录。权当若干年后自我剖析和批判的材料吧:)




May 2 2011

喜马拉雅之南-印度行草记

从来没想过会跟印度这个国家有什么交集。机缘巧合,公司安排参加今年的www会议,地点正是斯充满神秘色彩的国度。3月末4月初停留了10天,无论参会还是游历,都留下了深刻而美好的印象。有不少有趣好玩的事情,回来后却一拖再拖迟迟动不了笔;如今实在无法给自己个交待,今天就先把行程简单记录一番,会议等更多相关改天再述吧。

无比麻烦的签证和会议方低效的响应,一点好念想都没给我们留下。出门前更是被宣灌了各种惊悚的说法,最夸张的莫过于那个连“洗澡都不能唱歌”的笑话。从一片神奇的土地要去到另一片神奇的土地,哥做了最坏的打算和最充足的准备:两大五小七瓶矿泉水、两卷卫生纸、三打卫生湿巾、七八种药、数十包泡面+饭盒、塞满一个大象的若干各类战备物资,还有慷慨赴shi的信念。机场也给了咱一个下马威,安保的同志们听闻有去印度的,精神面貌立马从伪军变成了共军,开始打了鸡血般不断吆喝“谁是947、有几个947、947这边来”云云。

不管怎样,经新德里转机,第二天上午到达目的地海德拉巴(印度的第六大城市,位于中部偏南)。一出关就发现,机场到处是卖瓶装水的售货机。其实后来无论是上档次的饭店、本地餐馆还是街边的早点摊(同行有猛男),饮食上都没有出过什么差池。但除此之外,很多关于这里的传说都证实了,也见识了不少彪悍之处:

  • “公交车外面挂人”。确实,公交车几乎都没有门,人人练就了行进中上上下下的绝技,感觉相当穿越;
  • “木有厕所,游客都要在饭店管够”。确实,坐车路过类似中关村大街的地方,人民群众大白天对着墙奏嘘嘘,基本跟我们这边丢垃圾或吐痰一般自在。号称海德拉巴最繁华的5层商厦,一共奏两个厕所,男的在4楼,女的在2楼。好在旅游点基本还算人道;
  • “本地人上厕所不擦pp”。这个,没有证实⋯⋯手指,哦不,是手纸还是有的。
  • “四处都在安检”。确实,从酒店、商场到麦当劳,都有阿三弟弟要检查一番,不愧是曾盛产红头阿三的国度哈。
  • “城市里很多贫民窟”。走马观花难下定论,但确实发现很多烂尾没窗户没门的建筑里,都住上了人;最夸张的是有些“房子”只有三面墙、两面墙⋯⋯

会议期间主要是两件事情,开会和坐台。

公司是本次的金牌赞助商,有两个展位由哥几个轮番坐台,因此也多了不少跟天南海北的文西们聊天的机会。给他们介绍公司、框计算、新浪微博、人人,不过提到长城和老外的兄弟站点,兄弟我还是有点不好意思。(photo by 流浪的天行):

站台就在google的旁边,他们有专业布展、有主题日程、有活动游戏、还有ppmm,给了我们很大的刺激。差距是全方面的,只能说我们才刚上路哈。

酒店和会议中心在一起,还是相当给力。(photo by PC):

海德拉巴的标志性建筑,建于1591年的查哈尖塔。(photo by YiXuan):

走在海德拉巴和新德里街道上,感觉如此遥远的一种文化和生活方式就在你身边。顶花盆的小男孩:

路口乞讨的小姑娘:

新德里拉风的公交汽车(photo by PC):

擦肩而过的一瞥(photo by 流浪的天行):

会议结束后,我们返回新德里,利用清明假期停留了几天。住的青年旅社临近火车站,印度风十足(photo by YiXuan):

印度门,偶遇拉萨来得藏族大哥。他几乎不懂英文,却独自一人从西藏到尼泊尔再到印度,游历数月。据这位大哥说,恒河给他的印象及其深刻。牛都不愿下去的水质,人民照样在里面洗澡、喝水。我们没有成行,颇有遗憾。(photo by 流浪的天行):

包车往返8小时,从新德里到泰姬陵,一路上两边是接天的麦田。泰姬陵的照片太多,给一张内部的灵柩吧。

时间短暂,对于一个国家,很难说有啥客观深刻的认识。我所看到的,是混乱中的有序、分化中的和谐、破落中的生机,让人不由得对于这个有着古老历史文化、深厚宗教传承的民族和人民,有一种敬畏和喜爱。

这一行也让我若有所悟:世界太大,是如此的不同而精彩。我愿用余下的日子行遍天下,一窥她的美丽。


Apr 6 2011

带不走的丢不掉的随便说说吧

三周前听闻消息的时候,就灰常心神不宁。某天早到公司,啥事没干只在微博上写了段话:“对我来讲,公司不是什么大厦、logo、股票以及他们所代表的东西,公司是身边一个个活生生的人和我们一起做的、做过的事情。这些年,有的人走了有的人来,有的事成了更多的事败,虽有大大小小的伤感和缺失,却感觉根基和联系从未动摇。仿佛我在这里,他们就还在,事情也还终有不坏的那一天。”,然后内牛满面。

转发和评论的同学不少,却未必知道这其中的事故。出差回来,一切如所料尘埃落定。现在坐在新的工位上,刚刚把几年积攒的东西搬了一半;倒意外发现一个纪念我司五周年的徽章。之前也曾狠狠鄙视自己这种泛滥的感伤,但稍后又想,这般忐忑起伏无非是两类原因:对未来的不确定和缺乏自信,对过去时光和心血的凭吊——前者显然不是,既然是后者,也没有那么多丢人的顾忌。天下没有不散的宴席,对于那些带不走丢不掉的东西,就坦然而大声的怀念吧;只是阅后即焚、安心上路。

07年11月到11年4月,在news三年半。从最初的毛头小p孩,成了组里几乎最老的人。迎来送往一茬儿又一茬儿,也无数次在心里默默打着离别邮件的草稿。一直yy的,却是民工一场,能把产品做出个名堂,然后功成身退远走他乡。这样的念头,从最早安排啥就干啥的文西,到对pm一肚子怨气觉得有无限可能只是他们脑残的文西,到与pm有些默契知其艰辛不易的文西,到有些无奈却不甘拼命挖坑不断给自己deadline的文西,一脉相承。道理很明白,每天那么多产品生老病死,很多事情天时地利人和非人力可为,更何况自己绝非什么不世出之人物;这种坚持,说的好听是执着,说的难听些,恐怕跟泡妞未遂却不愿放手反而更加来劲、厌恶帝都抱怨挂在嘴上写在脸上却不曾离去等等等等这些行为难分贵贱。

可心里压倒性的想法一直是:选择在北京和我司,就是选择了这样一种生活,就是要做些什么,为了自己。换公司没有意义,没有什么区别;换地方没有意思,不捡别人的落地桃子。要的就是自己从头看着这东西一点点强大,一切困难和障碍只是事成后的陪衬,只是为了显得这事情多么牛X。

更理性的来看,这样年过去,已经逐渐变得沉稳有余激情不足,多少有点暮气尽显;对事对人都形成了固有的想法,却未必靠谱。正是借此机会,砸破旧的坛坛罐罐重新开始的时候。感谢这些年给我无数帮助的文西们,从你们身上学到了太多;祝愿留下的同学们,衷心希望在你们手上,news更加强大实现几拨人的夙愿。

出门这段时间感受颇多,世界太大,过于纠结于眼前所见太不可取;尔曹身与名据灭,不废江河万古流。是时候翻开这新的一页。

这些年,好好坏坏只能说是冷暖自知,颇应自己的那句话:这个世界上,理想主义和现实主义的人都活的很好,真正挣扎痛苦的,是夹在其中的那些。

小波说,生活正在不可避免的走向庸俗。那么,向在这个过程中不断挣扎的人儿们致敬吧!


Mar 21 2011

提问的智慧:利用决策树进行推荐系统新用户引导

图灵测试大家都很熟悉,通过问答形式来区分人和机器。小时候也做过假托《镜花缘》的逻辑题,需要你通过提问区分两个怪蜀黍谁来自“真话国”谁来自“假话国”。回到现实中,绝大多数推荐系统都无法回避冷启动问题——面对素不相识的用户,需要尽快把握其好恶给出尽量靠谱推荐。这时候通过问问题套瓷观察对方的反应,就是很常见和有效的做法(跟社交场合一样)。考虑到对象是形形色色千差万别的人,如何提出恰当给力的问题,就很值得研究和琢磨了。本文就来讲讲利用决策树的做法,源自论文《Adaptive Bootstrapping of Recommender Systems Using Decision Trees》。

背景

先说点题外话。几周前推荐系统论坛举办的相当成功。(这里感谢组织者的辛苦工作,以及淘宝同学的给力赞助。论坛官方已经放出材料和视频,几位同学的参会总结也相当给力,本文最后将一并给出链接。)

就我个人来讲,Koren博士的talk给我印象最为深刻。首先,极大的改造了我对netflix竞赛的看法。之前个人过于孤陋,觉得类似offline prediction竞赛,基于确定的数据集和目标函数,解决的不过是一个纯数学/算法问题:参赛者不用关心领域知识和用户需求(充其量看看数据的统计分布),不断的调整堆砌模型就ok了,离真正的推荐应用差之甚远。听了一圈发现,这些参赛者对于数据集其实有相当深刻的理解和思考,比如bias和temporal dynamics、用户不同反馈的理解,都很精彩且有启发性。这与实际构建推荐系统在很大程度上是契合的,首先要找到产品需求和数据中的规律,然后再加以利用。

其次,talk内容的针对性很强,不是一些形而上的抽象总结的或偏general的介绍,很多点跟实际应用的联系非常紧密。比如提到的bootstrapping a recommender,正是自己最近在琢磨的一个问题。最近构建的应用新用户比例过半,迫切需要解决对用户的judgement和profiling。由于工作没有深入到这里,之前只有一个大致的想法:人工或者机器找出一些区分度和接受度都较强的item,混合后提供给用户,通过用户的使用反馈逐渐确定其偏好;整个过程即可以是显式的用户引导(比如初始选择喜欢的item),也可以隐式的直接推荐。

结果Koren直接介绍了他们最近在这方面的工作,即《Adaptive Bootstrapping of Recommender System Using Decision Trees》这篇发表在WSDM2011的paper,提出用决策树的方法进行自适应的用户引导和判断。上周花时间找来读了一遍,写的相当清晰也很有意思。这里记下来备忘,如能帮同学们节约些时间更善。

设定

应用场景很明确,就是一个initial interview的过程,依次给出一些item要求用户进行显式的反馈,以此来构建对用户偏好的基本了解。
暂不考虑如何挑选,先来看看候选集合中的种子(即提出的问题)需要满足什么样的条件。作者认为,至少需要考虑以下几个因素:

  • 流行度(popularity)。需要尽量给出流行或用户熟悉的item,更容易让对方接受并做出选择;
  • 区分度(contenttion)。同样很好理解,好恶一边倒的item出现在候选序列中,不能提供多少信息量;
  • 覆盖度(coverage)。这里更多指item的泛化能力。如果这个item只能关联上非常少的其他item,后续真正可做的事情也会非常有限;

以上只是针对单个item,更理想的情况是考虑item间的关联和序列关系,充分利用之前答案的信息来调整后续的对话,打出一套组合拳。

应用于推荐引导的决策树

将决策树应用于推荐引导,是一个很好理解且自然的过程。从根节点开始,向用户提问,每个节点对应一个特定问题(item/电影);依据用户的不同反馈,进入相应的子节点;不断迭代上述过程,直到到达叶子节点或满足其他退出条件。用户的profilling过程,就是一条从根节点到叶子节点的访问路径。
先看看论文中给出的一棵生成树。

论文的工作都是基于Netflix数据集。如图可见,用户有三种回答,喜欢(like)、不喜欢(dislike)和不知道(unknown);rmse值是对落到该节点所有用户预测评分的均方误差,马上会讲到。

基本的构树过程比较简单:

  • 将所有的用户评分数据映射到<like, dislike, unknown>三维空间上。Netflix评分为1-5星,这里将1-3星映射为dislike ,4-5映射为like,未评分则对应unknown;
  • 从根结点开始,选择最佳的分割item,自顶向下建树;
  • 终止条件,同时考虑以下三种:
    • 设定树的最大深度;
    • 设定最佳分割item的误差阈值;
    • 设定当前节点的最少评分数量;

来看看对分割item的评价。整个决策树的优化目标是使得RMSE最小,这里为使树均衡和方便计算,在每个结点使用了和方差。

  • 对于给定用户集合t,我们都可以计算评分的和方差
    • 任选一个item i,可以计算针对该item的平方误差,R(i)是所有对item i评分的用户集合,是集合用户对item i的平均打分;
    • 和方差,即将该用户集合t所有评分item的平方误差相加;
  • 对于给定用户集合t,任选一个item i作为分割,都会将用户分成三组:评分喜欢、评分不喜欢、未评分,分别记为tL(i)、tH(i)、tU(i)。这样可以计算出三个集合的和方差之和。
  • 决策树的每个结点对应一个用户集合,即其父结点的一个特定划分。对于根结点,这个集合就是全体用户;
  • 为每个结点寻找最佳的分割item,就是找到一个item i使得三个集合和方差之和最小:

具体实现中,还有如下的一些考虑:

  • 在计算评分误差时,考虑user bias;
  • 通过将item的损失误差转化为其被选择的概率,支持一定程度上的随机树的生成;
  • 针对性的性能优化
    • tU(i)集合的用户数目是占大多数,通过公式变化转化为对结点全体用户t和tL(i)、tL(i)的运算;
    • 通过数据结构设计,将集合划分实现为对某item对应user数组的排序操作,由于是评分只有三个值,计算复杂度为O(n);

文中给出了构树的伪代码:

建树完成。当用户通过一系列选择到达某结点时,就可以使用该结点用户集合的平均评分来进行预测对各item的喜好,甚至可以基于预测评分得到一个ranked-list提供最简陋的推荐。文中作者也做了相关的讨论:

  • 首先需要考虑对于某个item该结点下用户评分数目过少的情况,这样很容易出现过拟和。因此引入层次平滑(hierarchical smoothing),将父结点对于该item的评分也纳入来考虑,实现的相当精巧;
  • 直接基于预测值排序的推荐可能过于保守,作者建议比较该结点的预测值跟全体用户的平均值,倾向取差值较大的item;

评估

最终的评估还是RMSE,计算测试集上,决策树判定节点的预测得分与用户实际打分的差异。作者对比了HELF和Entropy0(综合popularity和熵)、Var(利用item方差)等方法,如图所见,决策树的方法使用少数几个item的效果要优于其他方法使用20、30个item的结果。

同时还比较了训练集中用户评分数据的多少对效果的影响,基本上符合常识数据越多越靠谱。

评估部分相对讲的较少,有点意犹未尽。

多棵决策树

作者认为可以考虑使用多棵决策树:

  • 互为补充,防止用户对给出的item无感。通过数据分析可知,对于unknown分支上的用户,预测准确率低;
  • 用户界面考虑,更喜欢同一页面下评分多个item(这个地方存疑,不过一次多评几个也没啥坏处);
  • 决策树属于“weak learners”,使用多棵提升准确率;

多棵树的生成参见前述的随机生成,如何合并多棵树的结果,也是很有意思。一般使用均值、线性加权的做法,不是很适用——尤其是考虑对于不同用户不同树的贡献很可能是不同的。作者着重考虑了两类因素:

  • 命中的结点深度。假设反馈越多,判定应该越准;
  • 反馈类型,like、dislike、unknown分别考虑。假设置信度like > dislike >> unknown;

最后作者进行了验证,证明混合多棵树还是能有一定的效果提升。

一些感想

  • 整个思路和实现都并不复杂,简单是种大美。不需要额外的标注、不需要进行用户/item聚类,对于数据充足、缺乏较强领域知识和强悍pm的应用完全可以快速尝试;
  • 对于数据不充足的应用,类似的做法局限性较大。之前也跟几位同学讨论过,或许可以考虑把挖掘目标从领域内的兴趣描述(喜欢什么类型的音乐、电影),转移到对用户通用属性(如性别、年龄段)的挖掘上,带入先验知识再来做处理;

附:推荐系统高峰论坛的其他链接


Mar 9 2011

Hello world!

又折腾了一次,买了域名、空间搭了个独立博客。

其实很久没认真写了,一直觉得有必要但懒得动手,这样越发觉得下笔无物。

基于之前的经验,发一次狠、搞个类似从头开始的过场对我而言很有用。因此我放下屠刀,坐等成佛。

后面这个博客会以技术和行业的文章为主,间或一些生活闲笔。除了之前导入的文章外,不再帖转载充数了。

-----分割线-----

超简单的独立博客搭建

其实昨天一时兴起,因为wordpress.com不能支持插件而决定搞个独立博客。刚开始看见谷歌和百度那一堆广告就晕,稍微研究一下一路折腾发现,即使是对于我这样网上购物的小白,整个过程还是很简单。记述一下,以飨后人。

步骤:

1. (备选)申请paypal帐号,关联信用卡。不是必须,但个人感觉还是要安全很多,比在完全没听过的网站上敲卡号要踏实许多。流程设计和中文支持都很友好,整个过程大约20分钟;

2. 申请域名和主机空间。顺序无所谓,我都是在godaddy.com上完成。提供wordpress的搭建一站式服务,相对还是比较省事。整个过程30分钟内就能搞定,但网站设计灰常挫浪费我不少时间。再吐槽一下:号称是全球最大的域名服务商,满屏幕的推荐商品却尤似天朝的垃圾网站,不过比较厚道没啥阴人的勾当。

3. 接下来就是等待服务器设置和dns生效了,也就是30分钟,官方的说法是24小时内搞定。

4. 至此已然搞定,顺利的话总体时间不到2小时。哥悲催的用了一晚上⋯⋯

总结一下。

  • 花费2年域名$50、空间$100。应该不算便宜仅供参考;
  • 另外强烈建议不要用facow.com,每次付款完了丫说处于安全原因要进行人肉审查,哥被他折腾的够呛;

Mar 8 2011

[翻译]Is the KDD Cup really music recommendation?

原文链接:http://musicmachinery.com/2011/02/22/is-the-kdd-cup-really-music-recommendation/
KDD Cup:http://kddcup.yahoo.com/index.php

背景

这是第一次尝试翻译文章,在google translate的帮助下,大约用2小时完成本文。希望原作者Paul Plamere能原谅未征得其许可,他是我目前找到的音乐推荐中MIR流派最勤奋和有价值的博客作者。

KDD Cup 2011的主题是音乐推荐,虽然数据集还没有正式公布,但相关的讨论已经开始预热了。本次数据集合的一个特点,是评分对象不光是歌曲,还包括专辑、艺术家和音乐流派,这使得用户的偏好相对更丰富和层次化;但content-based的研究者意见很大,音乐信息也被搞成匿名使得他们基本没法玩了。

其实个人认为,即使有了用户评分和资源数据,类似这样以特定目标函数为优化对象的竞赛,距离实际应用的音乐推荐系统还有蛮大的差别。毕竟我们没办法拿几个prediction指标来评价效果,更何况对于一个日常实际应用来讲,在更新相对缓慢的音乐数据集合上想要做的不是一个单次推荐。还是那句正确的废话,数据、算法、产品一个都不能少。

译文

KDD Cup是一年一度的数据挖掘和知识发现竞赛,由the ACM Special Interest Group on Knowledge Discovery and Data Mining主办。今年KDD Cup的主题是learn the rhythm, predict the musical scores(理解节奏韵律,预测音乐评分)。雅虎音乐提供了超过1百万匿名用户的3亿条评分数据,这些评分分别针对歌曲、专辑、艺术家和音乐流派。这次比赛的目标是:(1)准确的预测用户的评分(2)区分用户喜爱的歌曲与其他歌曲。

这是一个非常令人兴奋的数据集;也许是有史以来最大的公开音乐数据集。一定程度上我们可以期待这个数据集在音乐推荐领域带来类似Netflix奖的巨大推动作用。然而存在一个问题,这些数据是完全匿名的:不光用户匿名,歌曲、专辑、艺术家、流派,所有东东都是匿名的。所以每条数据看上去不是“用户X给了春哥一个5星评价”,而是“用户X给了歌手Y一个五星评价”。下面是一个数据样本:

3|14  # user ID 3 has 14 ratings
5980    90      3811    13:24:00   # item 5980 got a score of 90/100
11059   90      3811    13:24:00   # 3811 is a day offset from an
21931   90      3811    13:24:00   #     undisclosed date
74262   90      3811    13:24:00   #
146781  90      3811    13:24:00   # 13:24 is the time on day 3811
173094  90      3811    13:24:00
175835  90      3811    13:24:00
180037  90      3811    13:24:00
194044  90      3811    13:24:00
267723  90      3811    13:24:00
290303  90      3811    13:24:00
366723  90      3811    13:24:00
432968  90      3811    13:24:00
451800  90      3811    13:24:00

无法将item ID与实际的音乐item对应,使得这项比赛更像是一场关于协同过滤算法(CF)而非音乐推荐的竞赛了。正如Oscar Celma(《Music Recommendation and Discovery》的作者)在KDD Cup论坛中说的那样:

没有歌手/歌曲名,我对这数据集不感兴趣(如果不能理解你要预测得东西,那么预测本身便毫无疑义)。现如今,这并不是一个真正的“音乐数据集”或“音乐推荐”竞赛,而仅仅是要将CF算法应用于一个巨大的数据集。在某种程度上,这确实是CF研究者的利好消息。但对于这个领域来讲并不能产生任何新知识…恕我直言,它没有任何意义。

研究者Amelie Anglade补充到:

如果拿到真实的艺术家和曲目名,便能有很多可以做的事情:使用音乐信息检索技术,我们可以分析音频数据(节奏、和弦、旋律、音色等)、得分、歌词、艺术家间关联等等等等。实际上越来越多的人正在进行这些方向上的工作,本次竞赛除了流派(作用很有限)外不提供任何内容信息,是对整个研究分支的忽视。

慷慨提供数据的雅虎员工实际上也认识到,真实音乐信息的缺失对音乐信息检索社区的研究人员参与竞赛带来的困难。但今年KDD Cup的组织者之一Noam Koenigstein说,提供匿名数据主要是考虑到围绕用户评分数据的大量法律争议和诉讼风险(见Netflix的诉讼)。Noam强调:

经过在这个数据集上6个月的工作,我可以很大胆的说,基于音乐的CF和其他类型CF存在差异。比如音乐和电影(Netflix)在流行趋势上的不同;因此,需要考虑时间效应的CF系统在音乐领域也会不同。还存在其他方面的差异,但我不便透露更多了。

我赞同Noam的观点,音乐评分数据与其他数据间存在很多有意思的差异,研究这些差异将提升CF的研究状况和技艺水平。但我也赞同Oscar和Amelie:如果我们知道实际被评分的item就可以做的更多。

音乐推荐领域已经有两个非常活跃的研究社区。RecSys社区采取传统推荐系统的方法,依靠协同过滤技术产生推荐。在这个社区看来,基于用户行为数据的挖掘就足以进行推荐了。音乐信息检索(MIR)社区则非常注重音乐本身,基于音频数据分析和content-based(CB)的方法来构建推荐应用。每种方法都有自己的长处和短处(CF具有冷启动、头部叠加反馈、对hack水平敏感等问题,而CB方法则面临更大的计算挑战、同时区分好坏音乐也是一个问题)。最好的系统往往需要结合这两种方法。

KDD Cup数据集是一套很棒的数据,我敢肯定,这些数据将帮助RecSys社区改善CF算法。而MIR社区也在生成自己工业量级的研究数据——最近将发布的Million Song Data Set用来改善CB技术。我希望有一天我们将能够提供综合数据集,包含大量的评分数据和内容数据。如果把这些数据交到研究人员的手中,所得将不言而喻。或许,这就是真正的问题。正如Jeremy Reed的推特所言:生物医学研究人员可以获取非法物质的研究,但我们却不能;因为这样我们可能会找出那些没品的用户!


Dec 24 2010

[阅读笔记]《music recommendation and discovery in long tail》

阅读:2010.12.13 - 2010.12.24
目的:了解音乐推荐领域相关知识和背景,服务于电台工作
作者:Òscar Celma http://www.dtic.upf.edu/~ocelma/

简评

最近对音乐推荐的相关应用比较感兴趣,因此找出这本新书翻了一遍,断断续续花了10来天。

整体上感觉一般,亮点不多。
  • 作者对音乐推荐的需求和问题、常用做法和效果评价做了一个大体的介绍,大部分内容都比较general,相对来讲介绍效果评估的五、六、七这三章倒是值得细读一下,尤其是network-centrial的分析。
  • 从思路上,作者特别强调音乐推荐的多样性,认为用户的满意程度主要取决于在familiarity、novelty和relevance之间的折衷。我个人观点偏保守一些,特别是针对音乐电台这样的应用,多样性可能只是锦上添花的东东,而且极容易带来负面作用,需要慎重考虑。
  • 关于音乐推荐这个问题,作者的一些看法还是比较认同(也是比较常识性的东东):
    • 音乐推荐最核心的目标是perceived quality和usefulness,无法依靠accuracy、recall等系统指标来衡量效果,需要把基于数据和基于用户等多种方法结合起来考虑
    • 不同类型用户对推荐结果有不同的要求和预期,如书中作者考虑不同专业程度的用户对多样性结果的需求差异
    • 在不同使用场景中用户对推荐结果有不同的要求。这个似乎更多要靠产品设计来解决
关于音乐电台,douban.fm已经是很成功的应用了,但离完美满足用户日常听歌需求,还有很大的提升空间。相较其他推荐应用,电台在数据方面的问题要少一些,个人认为的重要性排序是:产品 > 数据 > 技术。

原始记录

  • 第一章:问题定义
    • music != movies and books
      • 偏好收集和立即反馈
      • 存在“语境”,用户不同情况下可能喜欢不同风格
    • predictive accuracy && perceived quality
    • 作者观点
      • 音乐推荐,以perceived quality为主要目标
      • 均衡考虑familiarity、novelty、relevance
  • 第二章:关于推荐
    • 问题定义:拆分为两类子问题
      • 预测问题:预测user对item的喜爱程度
      • 推荐问题:给出一个N有序列表
    • 推荐引擎的若干使用情形(这个有点意思)
    • user profile presentation
      • 初始化。比较有意思的包括:training set,stereotyping
      • 维护(短期更新)
      • 适应(中长期更新)
    • 推荐方法(针对个人or针对群体,书里讲前者,后面跟进了解后者
      • demographic filtering:基于人群
      • collaborative filtering
      • content-based
      • context-based
        • 本书添加,基本也属于hybrid的方法,只是糅合了很多信息
        • web mining:content、structure、usage
        • social tagging:<user, item, tag>三元组。可以直接使用,或考虑将3元组展成<user-tag, item-tag, user-item>三个矩阵
      • hybrid
        • weighted。线性合并
        • switching。类似于自省、基于规则
        • mixed。数据扩展
        • cascade,级联
    • 推荐效果问题
      • serendipity(意外收获),多样性和相关性的均衡
      • explainability,可解释性
      • cold start,冷启动
      • data sparsity and high dimensionality
      • coverage
      • trust
      • temporal effects
      • understanding the users,用户偏好的建立
  • 第三章:音乐推荐
    • 实现case
      • 大部分做法:将user与一个歌手列表或歌曲列表关联
      • 一些可借鉴思路:关联挖掘
        • co-occurrences(web data mining)
        • content-based
        • 关注:user evaluation
    • 用户描述表示
      • 用户类型划分
        • 按照音乐需求的专业或沉溺程度
        • 不同用户类型,其推荐结果和策略应该具有不同倾向性
      • 用户描述表示
        • user modelling for Information Retrieval
        • MPEG-7 User Preferences
          • MPEG-7标准
        • FOAF
    • item属性表示
      • mip
        • 内容三个层次的抽象
          • low-level基础属性,如码率
          • mid-level语义信息,如吉他独奏
          • high-level人为概念,相似xx
        • 属性两个维度拆解
          • 属性来源,如音频分析
          • 属性抽象程度:
            • signal,如音频属性、nlp属性
            • musical concepts,音乐类型、命名实体
            • human knowledge
            • user、social relationship
      • editorial metadata
        • 可以认为音乐内容分析以外的一些核心信息
        • 如歌手、专辑、流派等信息
      • cultural metadata
        • 隐式包含在各种数据中的一些信息
        • 如tag、相似性
        • 获取方式
          • Web-MIR,从互联网抓取处理得到结构化数据
          • 社会化tag
      • acoustic metadata
        • low-level signal features
        • higher-level semantic descriptors
          • 音色和乐器
          • 旋律
          • 合声
          • 强度
          • structure、片段
    • 推荐方法
      • 协同过滤
        • 显式反馈,基于评分。关注Racofi,协同+一些规则。
        • 隐式反馈,基于试听行为。
        • 注:可以看看last.fm等开放数据集
      • 基于内容
        • 自动特征提取
        • 人工特征提取。pandora
      • 基于context
      • hybrid
  • 第四章:推荐系统中的长尾
    • 长尾定义
      • 定性分析
      • 定量分析,用一个非线性模型进行回归
    • 长尾分布特性:是否服从幂律
    • 动态的长尾:增长、变化和调整
    • 多样性、熟悉和相关性
  • 第五章:评价指标
    • 评价类型
      • 以系统为中心:评估系统的预测准确率
      • 以网络为中心:评估item或user网络拓扑结构的相似性
      • 以用户为中心:评估推荐的用户接受程度和有用性
    • system-centric
      • predictive-based:MAE、MSE、RMSE
      • decision-based
        • 基于推荐排序和兴趣相关两个象限将结果划分为4类情况
        • 相应的precision、recall、F-measure、accuracy、ROC定义
      • rank-based:针对有序列表
      • 其他方法
        • half-life utility。考虑次序对效果的影响
        • ndpm
        • A/B testing
      • 局限性
        • item bias
        • 不可衡量:覆盖率、多样性、可解释性、信任程度、接受质量
    • network-centric(想法不错,值得琢磨一下)
      • 基于相似性网络,不受限于推荐方法(协同、内容、混合等)
      • navigation(补一下图的基本概念)
        • average shortest path && diameter
        • strong giant component 强连通分支
      • 连通性
        • 度数分布。针对top-N,衡量是否又hub节点
        • 度数相关性。
        • mixing patterns
      • clustering
        • local clustering coefficient
        • global clustering coefficient
      • 音乐信息检索领域的相关工作
        • 相关paper可参考学习
      • 局限性
        • 未考虑user相关因素
        • 不可衡量:准确率、可解释性、信任程度、接受程度
    • user-centric
      • 用来衡量用户接受程度,依赖于用户的反馈。相比system-centric可评估未看的item
      • 标准
        • 显式和隐式的反馈。显式:询问之前是否了解、是否喜欢
        • perceived quality:用户评分
        • novelty:标识是否了解。综合上者,发现用户对新事物的接受程度;
      • 局限性:重度用户参与
  • 第六章:基于网络的评估
    • 网络分析和长尾模型。评估长尾不同位置上item的连通性,用以说明拓扑结构和推荐数据特性之间的关联关系
    • 音乐家网络分析
      • 对比CF、CB、HE三种推荐方法
      • 分析其结果对于长尾不同位置的偏好
      • 数据集
        • CF:last.fm,社会化网络信息
        • HM:all music guide。
        • CB
      • 网络分析
        • small-world phenomena,主要考虑覆盖率
        • clustering coefficient,主要考虑连通性
        • indegree distribution
        • assortative mixing
        • mixing by genre,
          • 利用社会化tag,来识别方法对不同类型的区分能力,值得参考
          • 不同数据集对风格的bias、不同风格之间本身的关联
      • 流行分析
        • 增加考虑歌曲、歌手的热门程度
        • artist similarity,相似和热门之间的相关程度
        • artist indegree,歌手入度与其热门程度的相关性
      • 讨论
        • 到达长尾还是存在一定困难
        • 多样性
    • 用户网络分析
      • 数据集
        • 社会化、协同过滤生成:last.fm
        • content-based:歌曲内容相似性+用户试听列表
      • 若干类似于artist的分析
      • 讨论
        • 不同类型用户对于最终推荐的影响
          • CF:试听热门的用户,具有较大的影响
          • CB:试听次数较多的用户,具有较大影响
  • 第七章:用户为中心的评估
    • music recommendation survey
      • 显式用户调查
        • 三种推荐算法
        • 两种反馈:是否知道、是否喜欢
        • procedure
          • 询问信息,demographic(年龄、性别)、音乐知识(none、basic、advanced、professional)、每日听歌时间
          • 给出若干组歌曲列表,由用户打分
            • 是否知道(不知道、歌手名、歌曲名)
            • 喜好程度(1-5星)
        • 数据集:CF、CB、HY(EX+CB)
        • 参与者
          • 年龄、性别
          • 音乐知识(none、basic、advanced、professional)
          • 每日听歌时间
          • 经常听歌环境(工作、读书⋯⋯)
          • taste,基于last.fm的top20试听歌手
    • 结果
      • 数据:5573首歌曲,288调查者(平均19首)
      • 接受程度与多样性、熟悉程度:从熟悉到陌生得分递减(除音频外无其他任何说明信息)
  • 第八章:应用
    • searchsounds
      • seach engine。搜索结果+基于内容相似性的推荐
      • FoaFing。结合用户profile、试听历史、社区tag、内容的分析的混合推荐
  • 第九章:结论和进一步研究
    • 结论
      • 基于网络的推荐系统评估
      • 基于用户的推荐系统评估
    • 局限和进一步研究
      • 动态和静态数据。现实世界中数据是变化的、用户兴趣也是变化的
      • 领域特性工作。特别是在评估方法上,基本还是通用的框架和策略,没有进行针对性优化