HowTo

16 Mental Models for Founders and Leaders

Think of mental models as the operating systems (OS) that run in the background of your brain. They’re always running — and you’ve put them together, either consciously or subconsciously, from your experiences and information. Mental models give you a perspective or a frame of mind with which to view the world. They also increase your likelihood […]

HowTo

Don’t Focus On Your Situation, Focus On Your Trajectory

All of us have goals. There’s something we want to do, someplace we want to go, someone we want to be. It appears that we don’t intentionally plan to be stagnant. But are you progressing towards your intended destination? Or are you drifting away unknowingly? Most of us are terrible at assessing our current progress. […]

HowTo

55 things learned as a 19 year old VC

Quick background about myself: I somehow stumbled into a VC gig right after high school at age 18 as a full-time analyst at Binary Capital – an early stage consumer tech VC firm with $300m assets under management founded by Justin Caldbeck (former Managing Director @ Lightspeed) and Jonathan Teo (former Managing Director @ General […]

HowTo

CMU李沐:博士这五年

前言 12年8月提着一个行李箱降落在匹兹堡机场。没找住的地方,也不知道CMU应该怎么去。对未来一片迷茫,但充满乐观。 现在,刚完成了博士期间最后的一场报告,在同样的机场,不过是在等待离开的航班。 回想过去的五年,是折腾的五年,也是自我感悟和提升的五年。这里我尝试记录这五年主要做过的事情和其中的感想,希望对大家有所启发。 第0年:3/11-8/12 我第一次申请美国的博士是在11年,但拿到的offer并没有特别合适的导师,于是就北上投奔文渊去了。 我当时在百度商务搜索部门做广告的点击预估。具体是使用机器学习来预测一个广告是不是会被用户点击。 这时候离“大数据”这个词流行还有两年,但百度那时候的数据即使现在来看仍然是大的。我的任务是如何高效的利用数百台机器快速的在数十T的数据上训练出模型。 当时产品用的算法基于LBFGS,我于是想是不是可以换个收敛更快的算法。没几天就找到个不错 。但实现上发现了各种问题,包括性能,收敛,和稳定性。而且那时有的就是一个裸的Linux和很老版本的GCC,什么都是需要从头开始写。花了大量时间做系统优化,算法改动,和线上实验,最后一年后在整个广告流量上上了线。 现在再回顾会觉得整个一年时间都在打磨各种细节上,有时候为了5%的性能提升花上上千行代码。这些都导致算法过于复杂,有过度设计之嫌。但深入各个细节对个人能力提升很大,而且很多遇到的问题成为了之后研究方向的来源。一些算法上的思考曾写在这里,当时候深度学习刚刚出来,冥冥中觉得这个应该是大规模机器学习的未来,不过真正开始跟进是好几年以后了。 11年12月中的时候突然心血来潮随手把材料重新寄了一遍,就选了CMU和MIT,结果意外收到了CMU的offer。有天在百度食堂同凯哥(余凯)和潼哥(张潼)吃饭,我说收了CMU offer,在纠结去不去。他们立马说去跟Alex Smola啊,他要要加入CMU了,我们给你引荐下。 记得是离开的前一天才开始打包行李,早上去公司开完会,中午离职,跟小伙伴打招呼说出个国,然后就奔机场了。那天北京天气特别好,完全不记得前一天雾霾刚爆了表。 第一年:9/12-8/13 第一年的主要事情是熟悉环境和上课。CMU课程比较重,博士需要学8门课,每门课工作量巨大。而且要求做两门课助教,做助教比上课更累。 这一年上的课中对我最有用的是“高级分布式系统”。之前在上交ACM班的时候已经学过很多质量都还不错课,纯知识性的课程一般对我帮助不大。但这门课主要是读论文,然后大家讨论。不仅仅是关于知识,很多是对设计理念的领悟。大家知道对于系统而言,设计是一门艺术而不是科学,这是设计者审美和哲学理念的体现。同时系统界历史也是由一波又一波的潮流组成,了解历史的发展以及其中不断重复的规律非常有意义。 那年这门课上课老师是Hui Zhang(神人之一,20多岁就在CMU任教了,学生包括了Ion Stoica,他是Spark作者Matei的导师),他有非常好的大局观,对于“Why”这个问题阐述非常到位。我是通过这门课才对分布式系统有了比较清晰的认识。两年之后我偶然发现我的一篇论文也在这门课的阅读列表里了,算是小成就达成 。 除了上课,更重要是做研究。我去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才允许发出来。有些累觉不爱。 不过在Google期间我主要时间花在研究内部代码和文档上。Google的基础架构很好,文档也很健全。虽然没有直接学到了什么,但至少是开了眼界。 第二年:9/13-8/14 这学期上了Tuomas Sandholm的机制设计,此乃另一大神,例如最近德州扑克赢了专业选手,之前开公司也卖了上亿。不过这门课我是完完全全没学懂,连承诺的课程大作业都没怎么做出来。之后的两年里我一遇到Tuomas他都会问下有什么进展没。我只能远远看见他就绕开。 NIPS被拒了,发现审稿人不懂线程和进程的区别,有点沮丧。隔壁实验室一篇想法类似但简单很多的论文倒是中了oral,所以那阵子压力很大。Alex安慰说这种事情常有发生,看淡点,然后举了很多自己的例子。 之后想了想,一篇好文章自然需要有足够多的“干货”,或者说信息量, 但一篇能被接受的文章需要满足下面这个公式: 文章的信息量 / 文章的易读性 […]

HowTo

Welcome to The Emergent Era

As our information moves faster, we move faster. And as more of humanity comes online (2.3 billion more people in 2016–2017 alone), it’s causing a fundamental and spontaneous restructuring of our collective behavior. The overlay of our evolving planet wide digital nervous system has taken the perennial drivers of change — human needs, politics, geography, culture — and woven […]

HowTo

The Way You’ve Been Thinking About Willpower is Hurting You

Not so long ago, my after work routine looked like this: After a particularly grueling day, I’d sit on the couch and veg for hours, doing my solo version of “Netflix and chill,” which meant keeping company with a cold pint of ice cream. I knew the ice cream, and the sitting, were probably a […]

HowTo

How to Reach the Next Stage of Your Personal Evolution

“Every next level of your life will demand a different you.” — Leonardo DiCaprio Life is a multiple act play. In each succeeding scene in the play of your life, you will act in different roles, have different supporting cast members, and take on new challenges. Going from one scene to the next is a transition, involving […]

HowTo

The Best Decision You Will Make Before Making a Big Decision

Landing a great job. Choosing the career path we desire. Finding the person we want to marry. Determining where we want to live and the living quarters we’ll inhabit. These are big moments in anyone’s life. Big moments require big decisions. Big decisions aren’t easy. The fast-paced lives that many of us live require us […]

HowTo

冰河年鉴 2016

2016 年即将过去,回顾一整年的经历,起起伏伏,惊心动魄,十分不同于往年。人生的道路上总是有很多选择,不同的选择造就不同的人生。我在2016年里所做的一系列选择,真的很难说是对是错,但如果让我回到 2016 年初重新来过,十有八九最后也还是今天的结果。 首先介绍一下学习方面的情况。我从2014年9月开始留学生涯 ,原本为期两年的计算机科学硕士学位,是从一门数学课(“概率模型”,又名“随机过程”)开始走上“邪路”的。第一年第一学期我几乎没听懂任何内容,本来我可以不选修这门课,但我抱着不服输的态度花大量时间认真钻研教材并且在第二年的时候重听了一遍这门课,最终终于感动了教授,在2016年1月的口试中满分通过了这门课。由于时间几乎全部用来研究数学,其他课程里我只通过了另一门数学相关的选修课《博弈论》。如果我就此打住,从此专注于120学分之内毕业所需课程,可能到今天我早已顺利毕业了。 但我没有这样选择,我跟教授说我会继续选修2016年春学期他面向数学系研究生的高等概率论课程——站在计算机科学的角度来看这门课是毫无用处的,但我对概率论的本质十分感兴趣,不满足于只掌握它的初等部分。于是我在2016年整个上半年里继续钻研那些超出我记忆和理解范围的高等数学。这位老教授后来请我给他做一门计算机系本科生数学课程的助教,我虽然感到时间上不充裕但也答应了——因为毕竟也是一个巩固自身数学知识的大好机会。结果整个2016年上半年我几乎每天都在要么教数学,要么学数学,连梵语课的第二部分都没有充分时间复习和做作业。(不要忘了,我每周还要工作赚钱,最少20小时,最多40小时) 问题是尽管我努力学习,2016年暑假的时候试了两次还是没能通过高等概率论的口试,还把本专业的几门课程也给耽误了。暑假的时候忙里偷闲游览了一些意大利城市,买了很多不必要的东西,所以尽管大量时间用于工作,最后手头并没有攒下什么钱。在第二年第二学期的课程里,我又在毕业所需的学分之外多选了一门《密码学》并且花了大量时间钻研差分分析的相关书籍和论文。至此,两年课程期满,包括数学和梵语在内,我总共欠下了10门考试,还不包括毕业论文和实习项目。 其实根据意大利的大学制度,这也不算什么大事,因为在这里延迟一到两年毕业是非常普遍的现象。留学生语言不好,学习上遇到困难是十有八九的事情。意大利学生也有很大比例延迟毕业的,包括天资愚钝的,懒惰和贪玩的,以及像我这样需要打工来养活自己的。所以到了2016年9月份的时候我还没什么不好的感觉,因为工作还在顺利开展,我也确实把几乎所有其他时间都用在学习上了——只不过我想学的太多了。 转折点发生在 2016年10月初,我突然失业了。因为之前在工作上非常顺利,我一时放松了确保毕业所需的存款底线。结果一下子手头紧张起来,存款只能维持6个月生计。后来交了第三年的学费以后只能维持4个月(也就是说,只能活到2017年1月)。其实这份工作我做得并不顺心,工作团队里的新人总是觊觎我的位置,我的直接领导也不太喜欢我(要不是我的工作能力造就被开了),或者说整个公司的管理思路都有问题。再加上我也一直在考虑,每周40小时就这么一直工作下去的话实在是毕业无望,心中确实也不太想干了,只是出于责任心不愿意主动放弃我维护多年的软件,同时也想攒够了毕业所需的资金再离开。虽然事情发生得比较突然,但我决定坦然接受现实,所以也没有在复职方面作出一丝一毫的努力。还是那句老话:我努力珍惜自己拥有的一切,但也没什么是不能真正放弃的。 于是2016年的最后三个月里我开始全身心投入到学习和考试中,但进度也并不乐观。主要的原因是我给自己定的目标多少有点儿高:我不想草草做一个无用的项目了事,而是希望每一个考试项目都是有用的——要么能带来一篇高质量的论文,要么能得到一个有用的软件(作为开源项目)。我把剩下的十门考试排了一下序,然后一个个地做下去。10月里我先是把“密码学”的考试论文(一份关于差分分析的报告,外加一些实验性的代码)完成了,拿到满分。这是我最后一门“容易”的考试——通常学生们只要看几篇论文然后写一个综述再做个小报告就能拿到学分了,但我通常会花更多时间,看更多的书和论文。我其他的9门考试要么是口试(需要记忆大量内容),要么是项目(需要写代码)。另一门课“知识表示”的项目我在10月里做了一半然后卡住了,我想移植一个重要的Lisp软件包从ACL到SBCL,但距离成功还差重要的一步,结果并没有顺利拿到学分,这个项目搁置了。 11月份我专注于“自然语言处理”课程里的语音识别项目,只花了两周时间就得到一个基本的意大利语语音识别系统(基于 Kaldi 的),论文写得也可以。月底考试时只需讨论项目不用把课程里的其他内容背下来,拿到了满分。这个月的其余时间我在学习 Categorial Grammar,一种优雅的用逻辑方法来分析自然语言句子的技术。我看了几千页的相关书籍和论文以后觉得这正是我一直以来所寻找的东西。这个月我最大的进展就是终于把毕业论文的研究方向定下来了:先用定理证明器来实现 Categorial Grammar 的自动解析器,然后再用机器学习的方法来从语料库里自动生成 Categorial Grammar 的语法,最后再把整个方法用在意大利语上。这样一来,我就把计算机领域的热门方向(机器学习、自然语言处理)和我一直以来向往的偏冷门方向(逻辑和定理证明)结合在一起了,大方向仍然是人工智能。通过这个计划,不但可以轻松通过两门相关理论课程的考试,顺便还能加深对意大利语本身的理解,然后我所得到的框架将来也可以用于分析梵语。整个计划十分庞大,但是可以划分为三个部分,分别作为另一门考试的项目(定理证明部分),毕业所需的实习项目(机器学习部分),以及最终的毕业论文(意大利语部分),就由自然语言处理那门课程的教授作为我的导师,我跟教授介绍了我的计划以后他也同意了。所以看起来我毕业有望了,至少做什么总算是定下来了,最后能不能成功另说。 所以12月份里我继续攻读上述计划相关的书籍和论文,顺便复习逻辑相关并且终于开始认真学习几个流行的定理证明器,包括 HOL4、Isabelle 和 Coq 等。我最终用来实现毕业设计的是 HOL4,但为了完成整个计划的第一部分我必须先学会 Coq,因为前人留下了一些用 Coq 写的参考代码。 一旦毕业设计能顺利完成的话,我的下一步明确计划是在2017年9月份的时候在意大利开始攻读博士学位。我希望去意大利北部的特伦托大学专心研究自然语言处理,找个清净的地方为提高意大利在整个欧洲学术圈的地位尽我一份绵薄之力。读博是有工资拿的,虽然不多(每月一千欧元左右)但足够个人生活所需了,就这样再在欧洲度过三年的博士生涯的话也不错。另外我也希望能在博士入学之前,找个机会回国把离婚手续办了,我宁可放弃留在国内(杭州)的所有个人财产也要跟我夫人彻底断绝关系。我从不原谅任何对我做了错事的人,也从不指望在自己犯了错以后被人原谅。 临近年末时有点儿分心,不幸地在 Novalogic 的老游戏《Joint operations》上花费了总计超过两周的时间。10多年前我是 Novalogic《三角洲》系列的游戏迷,但那个时候玩得都是盗版游戏,从未体验过 Novaworld 联网的感觉。这个心愿最近算是完成的。我毕业所需的资金终于在手头穷得只剩下 800 欧元的时候通过家里解决了,基本上这就是我过去几年来工作挣的钱,本打算给我父亲改善住房用的,但现在情况紧急也只能拿回来了。我父亲他老人家从 11 月份开始已经每月拿退休金了,理论上从此不用我再担心了,另外老家的亲戚朋友对我父亲也很照顾,我十分感激也很放心。 最后想说的是,人生总是不完美的,要想做到事事顺心、每个环节都满意是绝对不可能的。一旦正确认识到生活的不完美性,很多事情就可以想开了,尤其是那种想把每件麻烦事都早日解决掉的思路是不可取的,因为这个过程可能是无止境的。我的思路是,既然人生的本质就是不完美的,那么如果主动地选择一些对自己来说无关紧要的部分作为不完美的部分,然后其他部分就得以保存,不会再出什么意外了。对我来说,要想取得一些学术成就,并且平静地生活在对健康无害的环境里,就必须放弃很多其他东西。另外不能忘记的一点是,生活中随时随地都会发生意外,把自己置身于险境的情况,就像今年刚刚失业时的那样,以后绝对不能再发生了。 令人期待的 2017 年,我来了。

HowTo

Want to Be a Billionaire? Solve “I want X but Y”

I’m obsessed with the future. Recognition and projection of future opportunities consume a vast amount of my waking time. The process I take is a meticulous: rigorously understanding current technologies and the implications those developments will afford to the birth of new industries. But I often find value in understanding the past, too. Historical precedent […]