王辉的博客

是什么让我对未知世界始终充满热情?

亲情,友情都可以感动人。今天,我被一股炽烈的学习热情所感动。

这么多年来,无论是在学校,还是在企业,亦或是各种会议上,我从来没有看到过,有这么一群人,他们渴望,听到老师说的每一个字,看到老师演示的每一个动作,然后忘掉时间,全神贯注的沉浸在学习与创作中。这群人,是自费参加Ferrandi法国甜品师资格认证的学员们。我在他们的开放日现场感受到了这份渴望学习的热情。

起初,作为旁观者,我只是观察他们如何工作,后来,听到他们的老师回答一个观众的问题,说道, ”我们学校有两种学习班,一是针对年轻的孩子们,他们的父母给交学费,希望孩子们能在餐饮业发展;另一个是资格认证班,学员都是有过职业经验,然后自费来学习的大人们,都在30岁左右。和教那些孩子们不一样,我们这个班的目的,是整理学员们已有的但是比较零散的知识和技能,然后帮助他们系统化自己的知识体系。对他们讲授的内容,都比较难。但是他们吸收起来,却很快,因为他们学费是自己交的,都特别有学习的动力。“

听完这段话,我意识到,眼前的这群人,不仅仅是在学着如何搅拌巧克力,而是一群,从事过不同工作之后,发现了真心所爱,追求梦想的人们。他们中,有的是法国人,有的中国人,有的是墨西哥人;有的是工程师,有的是律师,有的是空乘,有的是餐厅的厨师,有的是家庭主妇;有的在巴黎,有的从外地搬来了巴黎;有的人单身,有的人生了小孩,还有的人孩子都可去旁边的孩子班了。

这么多拥有不同背景的人,在一个基本上不允许你再犯任何错误的年纪,非常坚定的走在了一起。他们所迸发出来的学习热情,如火焰般炽烈,我看到了他们的勇敢,他们的执着,和他们对生活深深的热爱。

站在他们身边,我自己都感觉到生活特别的美好,因为这里流淌着一股让人感动的学习热情。

作为程序员,我曾经困惑过,怎么说服领导采用我的解决方案?带着这个问题,我读了誉满全球的说服大师,西奥迪尼,写于1984的经典著作《影响力》。读完,与其说是我学会了影响别人,倒不如说如何不受他人影响。虽然没有找到我想要的答案,但这本书依然教会了我很多,尝试影响你的人永远都不可能告诉你的秘密。从中找几个对我触动别较大的分享一下。

如何让孩子下水学会游泳

前一段时间见一个朋友,他感叹孩子长大了,说话都开始像大人了。有一天,朋友带着孩子学习游泳,孩子怕水不敢下,朋友试图说服孩子,说水没什么好怕的。可孩子还是不愿意,像大人一样说,“你就不要再强迫我下水了”。

听到朋友给我讲这个故事,我就立刻想到了《影响力》书中所阐述的社会认同原理:我们会根据他人的行为来判断自己怎么做才合适,尤其是在我们觉得这些人跟自己相似的时候。书里的一位家长,也是无法说服孩子游泳,后来孩子在参加过一个夏令营之后,突然敢下水了,孩子告诉家长,“我都三岁了,小明也三岁了,他都敢下,我想我也可以!”。孩子们也会像大人们一样,通过别人的行为来衡量自己,只不过,他们更愿意看别的孩子是怎么做的,而不是家长。

长得好看又不能当饭吃

这两天,看新闻,说一个女孩相亲,嫌对方长得丑,不愿意。后来,女孩她妈告诉她,你都这年纪了,就别挑了,长得好看能当饭吃吗。

没读《影响力》之前,我也觉得,长得好看没什么用,还是得看真本事吃饭。可读完之后,就不完全这么认为了,因为光环效应:我们会自动给长得好看的人添加一些正面特点,比如有才华,善良,诚实和聪明等。而且我们在做出这些判断的时候,并没有意识到外表魅力在其中发挥的作用。研究表明,就连长得好看的犯罪嫌疑人,比那些丑的,入狱的概率都低。看吧,陪审团,法官也会不知不觉的以貌取人。

除了上面说到的,还有互惠,承诺和一致,喜好,权威,稀缺等提高影响力的武器。这些武器的共同点,就是它们利用了人类的条件反射。我们有时就像音乐娃娃一样,只要一按播放按钮,我们就开始唱歌。像所有的武器一样,看使用他的人,是出于好意,还是另有所图。对于那些另有所图的人,我们要学会如何辨别,如何防止让人操纵。以免买了自己根本都不愿意买的东西,还有苦说不出。

这已经是第四篇关于服务精神的文章了,前面谈过如果通过培养服务精神来超越自我,建立反馈循环,做职业规划。这次我想谈一谈,程序员进入管理层后,如何升级服务精神。我得出的结论是,在管理层上走得越高,所要服务的人就越多。

在我接触到的管理者中,有些人对自己位置的解读很耐人寻味。我曾经问过一个管理者,你觉得当上管理者以后有什么变化,他说他可以找更有意思的Bug来修,那些无聊的Bug就扔给手下了。

我觉得以上的反映,主要关注在了,能从权利中获取的利益,而忽略了服务的对象。管理者的服务对象,有两个方向,一是更上一级的管理者,一是下属。服务于上一级的管理者,这是自然而然的事情,很多人都不会忽略。然而服务下属,就没那么显而易见了。

我接触过很多程序员,有的人兢兢业业,只求靠写代码能过上衣食无忧的生活。还有一个程序员,真事,他为自己拿到的报酬感到羞愧,因为他觉得自己做的东西不配拿那么高的工资。我觉得作为管理者,应该服务好这种会感到羞愧的程序员。并不是所有的下属都会有很强烈的诉求,但有的人心中确实有需要,需要的是一个舞台。这种情况下的管理者,就应该给下属们找到最适合的战场,给他们施展拳脚的机会。

开头的时候我说,管理层越高,需要服务的人就越多,其实写到这我觉得话说反了,应该是服务的人越多,管理层才会上的越高。

过拟合(Overfitting),是机器学习里很容易犯的错误。观察琢磨之后,发现,不仅是在机器学习里,在生活,学习,工作,特别是创业中,也需要我们多加小心。

什么是过拟合

什么是过拟合?让我们举个考试的例子说明,我敢保证,如果你是学霸没经历过,你身边的吃瓜群众肯定有过。

说快要期末考试了,大辉有点慌,因为整个学期把功夫都用到了小微身上。临考前几天,他搜集到了过去五年的期末考卷,疯狂的刷题,背答案。经过通宵达旦的训练,终于把五套卷子烂熟于心。考试的日子到了,大辉脚步轻盈的走进教室,扫了小微一眼,信心满满的坐下,心想,一定要第一个交卷,让小微崇拜一下。可当他拿到试卷的时候,发现失策了,之前的五套试卷都白背了,一个题都没能再现。这就是过拟合,你把全部精力都放在了过往的数据上,而当不确定的未来真正来临的时候,你惊鄂的发现,在猛虎面前,你拿了个苍蝇拍。

考试的例子,通俗易懂。在机器学习里的过拟合,看起来高深莫测,也是同样的道理。说你要做一项研究,预测一个人的幸福感和婚龄的关系。你做了很多调研,统计了很多人在结婚前三年和后三年的幸福感,然后用了很多参数画了一条美妙的曲线,把大家的幸福感都准确的圈到了,你觉得你发现了史上最重要的幸福定律。然而当你拿着你的曲线,去问一对在一起四十多年的夫妇的时候,你发现,你的曲线就其实是个笑话。

不过话说回来,过拟合也不是你想办就能办的到的,只有像诺依曼那样的人才能说出这样的话,“用四个参数我可以拟合出一头大象,而用五个参数我可以让它的鼻子摆动”。

为什么会出现过拟合

为什么会出现过拟合?因为你太天真了。还拿考试的例子来说。过去五年的试卷,先不说你收集的是不是假试卷,即便是真的,出题的教授,今年也很有可能被勇敢的女学生举报。然后,新老师为了学生的前途负责,把题换了。机器学习也是同样的套路,不要天真的以为,眼前的训练数据,都是出淤泥而不染的青莲,它们很可能都沾上了污泥,你得用清水给冲净了,再用,即便表面冲净了,可你能确定它们的心是红的吗?

所以,当你根据已有数据,做决定的时候,一定要考虑到他们的不确定性。如果你明明知道,帮你做决定的数据,本身就存在不确定性,你还会在他们身上浪费大量的精力吗?感谢巴黎大数据从业交流微信群,从业界的最前线给我分享了,在深度学习里使用贝叶斯方法来处理模型不确定性的论文,这让我深受鼓舞,说明我们找到了数学的方法,来解决我们过于天真的问题。

过拟合的危害

如果,你只是因为死记硬背往年试卷,挂了科,那么你还有补考的机会。可如果你在创办企业,过拟合,会让你花光所有的钱,用尽所有人的耐心,做出一款没人用的产品。说白了,过拟合的危害,就是造成没必要的浪费。

在创业的过程中,你有一个令人魂牵梦绕的点子,初期在朋友中的调查也反响特别好,你觉得这个产品能改变世界。如果你握着这个点子和朋友的鼓励,闭门造车,那么你很可能就是在天真的过拟合了。而明白过拟合危害的创业者,会时刻提醒自己,所有的点子,所有的反馈,都存在不确定性。我的目的,是在漆黑的道路上,不断的摸索,利用这些不确定的微光,在所有的资源耗费殆尽前,找到一条可以盈利的路。

缓存,从兜里的手机,到家里的厨房,再到我们的大脑,无处不在。了解缓存,不仅能让你成为一个更好的程序员,更能让你在生活中成为一个利用空间的能手。不出意外的话,还能帮你理解处在风口浪尖上的“新零售”的概念。

什么是缓存

我保证,你不听我的解释,就可自己找到答案,你只需要在厨房里转一圈。如果你现在进不了厨房,就可在脑子里设想一下,请不要错过这个主动学习的机会。

我找到的缓存,是冰箱。它缓的是离我家十公里外的一个中国超市(巴黎一共没几家中国超市,所以离的远很正常)。当我想喝一瓶青岛啤酒的时候,我就想它在冰箱里冷冷的等着我,不用想喝的时候,还得开车到十公里以外的超市里去买。

所以缓存是什么?缓存是一块存储空间,能把东西从很远的地方存到里消费者更进的地方。冰箱是超市的缓存,家里的书桌是图书馆的缓存(如果你借书的话)。CPU旁边有内存的缓存。

缓存满了怎么办

世界杯的夏天,你会买上一箱啤酒,放到冰箱里,可发现冰箱满了。这时候你要给啤酒腾地方。你会选择消灭什么?这个问题我专门请教了我老婆,她选择那些快过期的东西。经济的角度上,可以解释,这些东西快过期了,再不吃就可能扔了。问题和答案都非常简单,却反映了缓存里最重要的问题:缓存的置换算法。

大家仔细想一下,冰箱里为什么会出现快过期的东西呢?因为这些东西,你不常用。不常用的东西,为什么要放冰箱里呢?请注意,这里是你成为生活中利用空间能手的机会。不常用的东西,就不要缓,万一缓上了,也要优先置换掉。离你近的缓存都是非常昂贵的,除了你家的冰箱,还有你家的储物间,房价那么贵,如果你缓了一个占地一平方米的东西,还不常用,那我劝你,算算它值不值你那一平方米的房价。

不缓,那需要的时候怎么办?直接去超市买吧。设想如果超市就开在你家楼下,你打个电话两分钟就能送上来,这时候你还需要冰箱吗?罗振宇在刚过去的跨年演讲里说道,现在还没有多少人能把新零售讲明白,我觉得不妨从缓存的角度一试。

这里打个岔,如果你是一名程序员,你一定要知道LRU(least recent used)的算法,因为它在缓存置换里扮演着非常重要的角色,如果你还是一个Java程序员,你一定要知道LinkedHashMap是怎么实现的,因为那里有你需要的LRU。

缓存的大小

大家有没有注意到,越是近的缓存,它就越小(比如CPU里的一二三级缓存)。有些人认为这是造价的问题,但比造价更重要的,是查找速度。试想一下,如果把你家的冰箱,变成了一个大冰库,你从里面拿出一个鸡蛋的时间必定要更长。

一旦明白了东西越大,查找所需时间就越长的道理,我们就不难明白,为什么人越老越容易记不起来事情。人老了,并不是大脑转不动了,而是随着阅历的增加,人脑里存放的东西变多了。一个十几岁的初中生,记一个东西,只需要在十年的东西里找个缝,七十多的老爷爷,要在七十年的光阴中找个缝,你说谁快谁慢。

结语

你能忘记什么,和你能记住什么一样重要。

友情链接,八年前我写博客的时候就存在了。在人工智能蓬勃发展的今天,友情链接如何完成升级换代?

什么是友情链接

什么是友情链接,举个简单的例子来说明。说在一条街上,有两家店,一个是卖鲜花的,一个是买巧克力的。

情人节了,你准备给女朋友买个礼物,碰巧到了鲜花店,买了一朵鲜艳欲滴的玫瑰,交完钱要走的时候,老板给你说,对面的那个巧克力店特别棒,如果你能给你女朋友再送一盒巧克力的话,她肯定爱你爱的不能自拔。你有一个好朋友,大壮,也是情人节当天买礼物。他先晃进了巧克力店,买了一盒比利时进口巧克力,刷完卡要走的时候,老板说,巧克力要是再能配上一束鲜花的话,你女朋友肯定会爱你爱的欲罢不能,正好对面有一家鲜花店,你要不要去看看。

一个鲜花店,一个巧克力店,两位老板私下里达成共识,互相推荐彼此的产品。因为他们明白,这样能让每一个客户都能给他们的情人买双份的礼物,既能促进别人的感情,又能增加彼此的销售额。

如果把上面的老板,换成写博客的,两人互相推荐博客,就是所谓的友情链接。

友情链接需要升级换代

博客间的友情链接,不仅能帮助读者发现更多有意思的内容,还能彼此推广自己的博客,多么好的发明!然而,现实却没有那么美好,友情链接存在很多可以改进的地方。

寻不到的朋友

友情链接,顾名思义,建立在友情的基础上。交换链接前,得先培养友情关系。虽不是上刀山,下火海,但至少双方要说过两句话。所以得花上一些功夫,先结识愿意和你交换链接的朋友。可茫茫人海中,怎么寻到有缘人,这是友情链接需要改善的地方。

无力的推荐

找到朋友之后,你们达成了共识,交换了链接。可一个链接干巴巴的摆在那,说不清道不明。读者朋友,也不确定点进去,是惊喜还是惊吓。所以,传统的友情链接,缺乏说服力。

信任危机

有些博主,通过努力,把博客搞火了。却发现都是自己给别人带去读者,而很少有读者被带进来。心里不平衡,开始撤销友情链接,脾气不太好的,直接单方面撤销。如何解决不平等的链接交换,消除信任危机,也是一大难题。

人工智能的力量

针对以上的问题,大数据,人工智能可以给我们带了一些新思路。

通过大量的收集有交换意愿的博客,我们可以帮助博主们更高效的找到志同道合的朋友,这个道理,就像那些相亲网站一样。然后通过算法的迭代,可以为每篇文章都找到最精准的推荐,保证你只会给你的读者带来惊喜,永远没有惊吓。最后,通过对个人贡献的量化分析,我们可以保证,链接交换只发生在同样优秀的人之间。

Hexo文章推荐推荐是我为此所做的一个尝试。

所有代码都已开源

在开发笔记的第一篇里,我讲了为什么要开发这个系统和为什么要开源。第二篇,我想介绍一下我的开发思路。简单的说,就是用最快的速度发布最小可用产品,来验证想法的可行性。

虽然是做一个开源软件,但我把它当成一次创业来对待的。在我的上次创业经历中,踩过一个坑,就是耗费了时间和精力的一款产品,在发布完的时候,没人用。这次为了避免走老路子,我做了两个调整,为了从第一天起就建立起来反馈循环

  • 先做市场调查
  • 最快速度发布最小可用产品

市场调查

我把市场调查的范围限制在我比较熟悉的领域里。我使用的博客基于Hexo框架,主题来自于Hexo-Next-Theme,所以我在这两个圈子里发了市场调查(12)。结果并没有想象中的那么理想,响应的人并不多。不过还是有收获的,主要分为三个方面。其一,有些人排斥在推荐文章里使用互换连接的想法,认为这伤害了博客的独立性。其二,有些人虽然对该想法持接受态度,可担心潜在的性能问题。其三,也是我们所谓的天使用户,有一个非常乐观开放的博主乐意尝试这个想法。

除了市场调查之外,我还和朋友聊我的想法。其中一个博主朋友(法国朋友,Octopress博主)说,他愿意付费使用这个服务,另一个(法国朋友,WordPress博主)说这是一个非常好的想法。还有一个朋友(中国朋友,写过博客但放弃了),说为什么要做一款无觅已经做过的产品,后来发现无觅已经退出博客圈去做金融科技去了。显然,不同背景的朋友,有不同的想法,但都非常具有参考意义。

不论是从Hexo圈子里,还是从朋友那里,都是喜忧参半的结果。可不论如何,我找到了一个愿意和我合作把点子实现的朋友。

最小可用产品

在我上次组织的精益创业演讲里,就接触到了最小可用产品(Minimum Viable Product)的概念。其目的,就是最快的发布一个可用但功能比较局限的版本来收集用户反馈。我们的MVP是什么?

系统大概架构

系统架构,包括两部分,一是后端服务器,负责推荐算法的实现,二是前端Hexo插件,显示推荐文章列表。

推荐算法

推荐算法,大家研究的比较透,大概有三种,一是根据用户的喜好推荐,如果用户给某些文章点赞了,我们应该能从他过去的使用习惯中推算出他可能喜欢的内容。第二是内容相似法,完全抛去用户的喜好,只看内容。还有更为先进的算法,就是引入社交网络的概念,如果你的亲近朋友喜欢了一样东西,那么基于人以群分的定理,你应该也会喜欢同样的东西。

显然,只有内容相似法,有可能在一周的时间内实现。即便只基于内容,不考虑用户个性化,我们也面临分析内容相近性的挑战,吴军在数学之美里,给大家讲了如何使用余弦定理来判断文章的相似性,一个高中生就能用的余弦定理,理论上简单,但实践起来,要求我们搞定自然语言处理中的分词算法等等,所以这也不太现实。

我最终的选择,是最简单的标签对比法,具体实现可见源代码,大概意思是说,如果两篇文章如果同时被打上一样的标签,那么它们就是相似的,就可以推荐,如果没有相同的标签,则不相似。

数据收集

说完了算法,人工智能里不可或缺的就是数据。如何采集数据是必须解决的问题。这时候,很多朋友会想到要使用爬虫爬取博客文章,提取它们的标签。可这不仅在工程量上比较大,而且还需要很多的计算资源。我暂时舍弃了这个想法。由于我控制前端的实现,最简单的方案,就是让前端主动上传推荐需要的数据。这样不仅减少了工程量,而且也大大削弱了对计算资源的需求。

结语

通过最初期的市场调查,我发现产品虽然有很多阻力,但除了我之外,还是有人愿意尝试的。其次,就是通过对推荐系统的简化,我找到了在一周以内就能发布的解决方案,即便失败了,也最多丢了一周的时间,可以一试。在接下来的开发笔记里,我会给大家讲一下MVP的具体实现,其中会涉及到Spring Boot 2.0,Node.js Promise,Docker容器和服务器的选择。

0%