懒人画虎

懒人今天才情横溢,文思泉涌,无法避免的想要发挥一番,于是在黑板上画了一只虎。

虎是丛林之王,它一咆哮,整个森林都安静了。向晚一身当道食,山中麋鹿尽无声。

乐府诗云:猛虎潜深山,长啸自生风。一个潜字,道出了虎的可怕之处。它个头虽大,但喜欢玩偷袭,在对猎物完全有把握的情况下,通过伏击,一击致命。

本着对老虎的想象,懒人兴笔作画如下:

好一只吊睛白额大白虎呀!只见它:

盘龙山下三脚虎,震天一啸回风低。
横拖骡马捉猪犬,咆哮出入吁无时。
有时人立作气势,团目金努矜毛皮。

气势如虹、不怒自威,有木有?

只是,这虎好像受了一点委屈,那就是委屈虎吧。

名作可出售,不要8888,也不要888,只要88,欢迎垂询。

月明欲素愁不眠

昨晚大风呼啸了整个晚上。

为什么我知道呢?因为整夜未眠嘛。

失眠是个无聊的事,因为就是睡不着,毫无理由的无法入眠。

好吧,我想起李白的长相思:

日色欲尽花含烟,月明欲素愁不眠。
赵瑟初停凤凰柱,蜀琴欲奏鸳鸯弦。
此曲有意无人传,愿随春风寄燕然。
忆君迢迢隔青天。

李白失眠是因为想念佳人,我虽然心有所念,但也不至于深夜难免呀。

又想起汉代的明月何皎皎:

明月何皎皎,照我罗床帏。
忧愁不能寐,揽衣起徘徊。
客行虽云乐,不如早旋归。
出户独彷徨,愁思当告谁?
引领还入房,泪下沾裳衣。

作者失眠是因为想念家乡,我虽然离家千里,但平常日也没什么好想念的。

再想起柳永的鹧鸪天:

吹破残烟入夜风,一轩明月上帘栊。
因惊路远人还远,纵得心同寝未同。
情脉脉,意忡忡,碧云归去认无踪。
只应曾向前生里,爱把鸳鸯两处笼。

三变风流倜傥,为某个女子失眠是常事吧?哥可不是三心二意的人。

睡不着,心里肯定有所思。但是很难把控,所思为何,所念为何。

请见卢仝的有所思:

梦中醉卧巫山云,觉来泪滴湘江水。
湘江两岸花木深,美人不见愁人心。
含愁更奏绿绮琴,调高弦绝无知音。
美人兮美人,不知为暮雨兮为朝云。
相思一夜梅花发,忽到窗前疑是君。

作者自己也不清楚为谁有所思。但最后一句的梅花亮了,无疑太美。

诗读多了其实也没用,表达不了自己的心绪。

似此星辰非昨夜,为谁风露立中宵。希望今晚不似昨晚,能安定入眠。

要不要读博

在V2EX看到一个帖子,硕士即将毕业,咨询要不要读博。

我周围博士一堆,都是做基础研究的,比如图形图像方面。医院的博士mm也是中大读的博,现从事药物学研究工作。

我的看法是,如果是工程应用类,读不读博都可以。因为工程开发,偏动手能力和实际经验。读了几年博士,跟同样工作几年的硕士竞争,不一定占优势。在工程开发上,用到的理论知识并不多,大多数是经验积累,学术作用不大。

如果是基础研究,那当然要读博了。不管是计算机视觉,还是医学,还是生物学,这类基础科学,有过博士经历的同学,在研究态度上与硕士截然不同,他们知道往哪个方向去努力。

我的部门既有博士,又有硕士,前者的学术研究思路比后者要清晰得多。比如,同样跟踪一个研究主题,硕士大多从应用角度出发,找到能够复现的论文和代码来实践。博士会看得更远,从前瞻性研究角度出发,探索业界最前沿的研究成果,并进行思考和实践,哪怕这个方向并不容易落地。

博士生在校阶段可能很辛苦,但这段经历,对工作实践大有益处。这个阶段,会让他们建立起正确的学术研究观念和方法论。有没有学术观念,是博士与硕士的一大区别。

比如,在计算机视觉方面,视频行为分析是一个热门研究方向。这里面涉及的技术原理比较复杂,既有常见的二维空间卷积,又有时空角度的三维卷积,还有光流辅助之类。整个业界,并没有非常成熟的应用解决方案。在这个前沿性研究方向,既需要大量的理论积累,又需要无数次的动手实验,这就是博士擅长的工作方向。

博士研究的成果,并不一定代表可落地的产出,这是研究与应用的区别。比如我们在光流弯曲方面的成果,已被google接受,但并不代表它立刻就可以落地应用。学术研究的成果,更多以前沿性理论的方式存在,能够在特定条件下证明这种理论有效,并不一定在现阶段,就能取得落地的突破。比如,参考此论文,上世纪80年代学术界就提出了卷积神经网络的思想,但随着算力的突破性发展,直到近些年卷积神经网络才得到大规模应用。

做基础研究的都会衡量学术论文产出。博士同学在论文写作上,也会比硕士得心应手得多,因为他们在校就经过这样的专业训练。计算机视觉有几大顶会,比如ICCVECCVCVPR。在顶会上发表论文,有极高的难度,除了专业水平外,还要看门派出身。博士生如果师从好的导师,在这上面发表论文,要容易得多。而硕士不管是研究方法,还是导师门派,相对来说,都要处于劣势。

当然,也不是说读博就是万能药。如果毕业后参加工作,只是普通的工程应用类,那么读不读博都一样。我每年都参加校招,去不同的省份、不同的大学招应届生,对于普通的工程开发岗位,学历要求就是硕士。

今年去北京的校招我就印象深刻,哪怕是在CV方面,应届硕士也把普通的CV方法玩的很熟,比如分类、检测、分割方面的深度学习模型和工具。然而,他们在一些基础理论方面了解并不深,比如涉及到神经网络架构搜索的知识。同时有几个北大的博士来应聘,他们在理论深度方面,就要高出硕士一大截。当然,如果只是招CV应用类,硕士就足够了,博士的性价比反而不高。

有的方向,经过许多年发展,已经没有什么大的研究前景,这种还不如就读个工程硕士,早点参加工作更好。比如你去读个农业机械博士,出来我也不知道能干嘛。

所以,读不读博,取决于职业规划,也就是今后的工作与研究方向。基础研究需要博士,因为研究思想、方法论,都与博士经历有关。普通的工程应用类,硕士就可以了。

失眠与焦虑

我经常整夜无眠。

眼看着时间一刻一刻过去,从深夜一点到两点,到三点,到四点,到五点,到六点,到七点,到起床,全程无法合眼。

这个过程是痛苦的,痛苦到我抓着自己头,往墙上撞。

痛苦的背后,是深深的焦虑。

这种焦虑,只有自己才懂,它是灵魂深处的恐惧或纠结。

你不会明白,在股市暴跌,行业惨淡,危机四伏的时代,连投资都找不到一个好的去处,对未来只有无底线的恐慌。

你不会明白,第二天要开的工作会议,对你的意义。它可能就此影响你的职业前景,或生或死,或明或灭,全在于你的沟通与发挥技巧。

你不会明白,领导今天说的话,里面蕴含了多少深层次的意义。想明白了是一条路,未想明白,是另一条截然不同的路。

你不会明白,你怀着同情心,资助了10多万的女孩,就因为你抱怨一句她寄的水果坏了,就会跟你撕破脸断绝联系。

你不会明白,人到中年,还没家庭、没孩子,一个人吃饭、睡觉、出门、回家,那种无力的孤独,还有亲人对你的失望。

活着就是修行,除了身体的修行外,更有心的降魔。

焦虑,就是这样一种心魔,它让你丧失信心,让你整夜无眠。

白天,你很忙,可以让忙碌的工作,冲掉纷乱的思绪。

在万籁俱寂的夜晚,焦虑,如同夜之灵魂一样,悄悄降落你的身边,你无法抗拒它的到来,它的滋长,它的纠缠。

所以,我经常觉得人生好苦。

我一直试图追求真正的快乐,然而似乎没有找到。

当然,我不会放弃,会努力去找到。

闲扯个性推荐

如今做内容分发的App,比如知乎、微博等,用到的重要技术是个性推荐。

所谓个性推荐,是指针对不同的阅读个体,推荐不同的内容,也就是千人千面。这种推荐方式,有别于传统的媒体分发,比如你打开新浪网,整个版面的内容都是固定的,千年不变,谁看都是一个面孔。

个性推荐背后的技术是机器学习,也可以叫做人工智能,因为机器学习本来是AI的一个分支。不过个性推荐一向有自己的领域定位,比如ACM RecSys每年都召开个性推荐学术会议,在业内影响巨大。

早期个性推荐都用的传统机器学习算法,比如逻辑回归、因子分解、随机森林。近两年,以google为代表的更高级的推荐系统,都走向了深度学习,从而越来越与AI总体发展方向趋同。

国内在个性推荐领域做的十分出色的公司包括头条系下的产品(今日头条、抖音),以及知乎、快手等,他们日积月累,搞出了一套先进的推荐系统,吸引了大量用户。可以说个性推荐是这些产品取得成功的至关重要的因素,充分体现了技术影响力。

个性推荐号称千人千面,看起来很美好,但在起步做时,往往十分困难。这个困难倒不在技术层面,而在于业务层面。

首先,要确认推荐目标,不管什么机器学习方法,总要朝着一个目标去优化。这个目标往往在内部并不能达成一致,比如产品希望做留存,运营希望做营收,这就是两个不同的目标。没有一个模型能优化好两个目标,所以技术实现之前,内部各利益方,先要达成一致的推荐目标。

如果实在不能达成一致意见,折中的做法是线上同时跑多套模型,然后对比数据,看哪个模型更好,就用哪个模型。当然在实际中,这个好与坏,要考虑长期影响,太短视的行为,对产品和用户的生态不利。比如,短期内提高了付费率,但是伤害了用户,这是一种杀鸡取卵的行为,也是个性推荐不提倡的。

其次,分发的内容众口难调。就算确认了共同目标,在这个目标下,分发的内容形式,也不一定是各方都认可的。比如,某些同学希望更多的推新领域内容,保持新颖性;另外一些同学希望更多的推熟悉内容,保持用户粘性。在新颖性与熟悉度之间,也要维持一个可以调整的平衡线。

再次,现实中不管运营也好,产品也好,不会完全遵循个性推荐的分发形式,他们总会从不同的角度进行策略干预。比如运营做活动,要重点推活动内容;产品开发了新模块,要重点推荐该模块的内容。所以,淘宝的推荐系统,在排序(ranking)之后加了一层再排序(reranking),允许运营手工干预排序策略。

业务矛盾解决了,技术实现一般还好。技术上的难题一般在于数据管理,包括三方面:

  • 训练数据:用于构建特征工程。用户和内容的各种数据要上报到后台,比如用户画像、内容属性、用户和内容交互的行为数据(观看、评论、付费等)。这些数据是构建机器学习训练样本的基本元素。特征工程里一项重要的工作是从已有数据里挖掘出有效特征,然后进行特征转换,输入给机器学习模型进行训练。
  • 预测数据:模型训练好后,部署到线上进行预测。离线的数据(比如用户与内容属性),实时的数据(比如行为数据),通过离线与实时计算通道,输入给预测服务,这些数据用来推理用户和内容的关系。
  • 数据回流:线上模型影响的任何数据,不管是正反馈(推荐正确的)、负反馈(推荐错误的),还是各种行为数据(观看、付费、订阅),都要上报到统一的后台,数据流形成闭环。

有了正确的数据,就可以组织数据、选择模型,朝着确定的优化目标进行训练了,这个过程不难,一般搞算法的同学都懂。

训练完后,会对模型进行评估。技术指标容易评估,比如AUC等,一眼可知。难在业务指标的评估,比如前面所说的新颖性、熟悉度,业务会衡量这些指标,从而人为影响了模型的可行性。

模型发布到线上,一般采用A/B测试和灰度发布。A/B测试尤其重要,它对比新模型与旧模型,或者新模型与自然流量的分发效果。当然,分发效果如何量化,又需要大家共同确认量化的指标,比如时长、留存、付费等综合指标。

模型部署运行后,一定要对流量进行监控,及时发现异常流量。一方面模型可能有bug,另一方面模型可能被恶意利用,朝着产品不利的方向发展。在这个情况下,要及时切断模型服务,回滚到上一个版本,或恢复到自然流量。

最后,说一说个性推荐涉及的机器学习技术。目前业界大部分公司,用的深度学习来做个性推荐,结合内容embedding技术。深度学习只要数据够大,拟合能力就更强,泛化能力也很好,模型效果相对于传统机器学习技术,有显著的提升。这里有一份知乎的个性推荐介绍文档,值得一览。

我之前带队做一款流量很大的App的个性推荐,一开始用的深度学习。在推荐系统临上线之前,产品要求模型具备可解释性,我们团队集体晕倒。深度学习是个黑盒子,本身不具备可解释性。无奈之下,一夜回退到逻辑回归,可解释性是增强了,效果自然也弱鸡了许多。