那年这门课上课老师是Hui Zhang(神人之一,20多岁就在CMU任教了,学生包括了Ion Stoica,他是Spark作者Matei的导师),他有非常好的大局观,对于“Why”这个问题阐述非常到位。我是通过这门课才对分布式系统有了比较清晰的认识。两年之后我偶然发现我的一篇论文也在这门课的阅读列表里了,算是小成就达成 。 除了上课,j2直播,更重要是做研究。我去CMU的时候Alex那时还在Google,而且没经费,所以把我丢给了 Dave Andersen。于是我有了两个导师,一个做机器学习,一个做分布式系统。 前面半年都是在相互熟悉的过程。我们每周会一起聊一个小时。前半年因为Alex不在,所以我们只能视频。Alex那边信号经常不好,而且他有德国和澳大利亚口音,外加思维跳跃,经常我听不懂他说啥只能卖萌傻笑。还是靠着Dave不断的打字告诉我Alex说了什么才度过了前几次的会。 两个导师风格迥异。Alex是属于反应特别快,通常你说一点,他已经想好了接下来十点,要跟上他节奏很难。一般抛出问题的时候他就想好了好几个解决方法。这时候要证明自己的想法比他的更好不容易,需要大量的沟通和实验数据支撑。我想我大概是花了两年证明了在某些方向上我的方案一般更好,所以这时候他就不那么hands-on了。 Dave不会给很多想法,但会帮助把一个东西理解透,然后讲得很清楚。因为我研究方向主要是机器学习上,基本上前两年基本都是我在教Dave什么叫机器学习,而且是尽量不用公式那种教法。 我的第一个研究工作是关于如果划分数据和计算使得减少机器学习求解中的网络通讯量。Alex体现了他的强项,几分钟就把问题归纳成了一个优化问题,然后我们三各自提出一个解法。我做了做实验发现Dave的算法更好。接下来两个月把算法做了很多优化,然后又做了点理论分析就把论文写了。 可惜这个想法似乎有点超前,虽然我们一遍又一遍的改进写作,但投了好几个会审稿人就是不理解,或者觉得这个问题不重要。那个时候学术界已经开始吹嘘“大数据”,但我觉得其实大部分人是不懂的,或者他们的“大数据”仍然是几个GB的规模,烤U盘需要十来分钟的那种。 这是我在CMU的一个工作,我觉得挺有用,但却是唯一没能发表的。 当时跟我坐同一个办公室的是Richard Peng,他做的是理论研究。我经常跟他讨论问题,然后有了些想法合作了一个工作。大体思想是把图压缩的快速算法做到矩阵的低秩近似上。这个工作写了三十页公式但没有任何实验,我主要当做写代码间隙的悠闲娱乐,不过运气很好的中了FOCS。 坦白说我不是特别喜欢纯理论这种,例如在bound的证明中很多大量的项直接丢掉了,导致我觉得bound特别的近似。对于做系统的人来说,最后拼的是常数。这个工作中这种大开大合的做法我觉得很不踏实。所以我觉得以后还是应该做更实在点的东西。 在CMU回到了去百度前的一周七天工作无休的节奏。每周至少80个小时花在学校。如果累了就去健身房,我一般晚上12点去。不仅是我一个人,大家都很努力,例如凌晨的健身房,早3点的办公室,四处都可以见到中国或者印度学生。我那时候的室友田渊栋花在学校的时候比我多很多。 那一阵子有读了很多关于优化的文章。其中对我启发最大的是Bertsekas写于80年代末的那本关于分布式计算的书。此书可以认为是MIT控制领域黄金一代研究成果总结,换到现在仍然不过时。 受启发我转去研究异步算法,就是分布式下不保证数据的及时性来提升系统性能。我基于在百度期间做的算法,做了一些改进和理论分析,然后投了NIPS。 投完NIPS就动身去了Google Research实习。那时候Google Brain成立不久,在“宇宙的答案”42楼,包括Jeff Dean,Geoffrey Hinton,Prabhakar Raghavan好些大牛挤在一起,加起来论文引用率能超80万。 Alex跟我说,你去读读Jure Leskovec的文章,学学人家怎么讲故事。我在Google也尝试用了些用户GPS数据来对用户行为建模。可是写文章的时候怎么也写不出Jure的那种故事感,发现自己不是那块料。这篇文章因为用了用户数据,恰逢Snowden让大家意识到隐私的重要性,历经艰辛删了一半结果Google才允许发出来。有些累觉不爱。 (责任编辑:本港台直播) |