五月,在烟雨中迷茫

五月最后一天。

窗外,一如既往的阴沉。浊浪排空,触目远眺,苍茫一片,分不清是海还是天。

阴雨天,已持续很久了。今年的夏季,莫非又是一个多雨的季节。

在这个烟雨的季节,似乎一切都充满着朦胧与晦涩。经济形势不明朗,贸易战风声鹤唳。房价、股价、币市,表面上一片热闹,背后是无底的深渊。行业不景气,不管是互联网巨头还是创业公司,都勒紧腰带过日子。物价暴涨,社会老龄化,年轻人成负债主体。在9012年,我们面临的问题仍然很多。

我在总结五月份工作时,也是很迷茫。我所在科研行业,取得成果太慢了。一个月过去,没有进展;再一个月过去,可能还是在原地踏步。科研需要时间,可是功利的社会,给科研界的耐心太少了。每年CS的大会很多,于是水论文也成为一种气候。扪心自问,历年CS顶会的论文,90%是没有价值、阅后即焚的。发这样的论文,心寒;不发,又心虚。科研不好做啊!

所以华为的任总疾呼,要从制度上重视数理化的基础科学建设,培养自己的基础人才。这需要时间的积累,非一撮而就。

这些年我们搞这个应用那个生态,移动支付、P2P、自动驾驶、直播、feed流、短视频,玩的不亦乐乎。然而,在这些互联网最上层的应用里,属于自己的核心技术并没有。哪怕是我所在的AI行业,虽然号称中美人才聚集,但实际上高精尖的人才,还是在美国。以MIT、Berkeley、CMU、Stanford为首的美国顶级工程高校,为美国的自然基础理论研究,贡献了大量真正有用的人才。而相比国内的高校则差得甚远。

如果说五月还是春夏之交,那么六月就正式进入夏季了。在火热的夏季,一切都会明朗起来。哪怕是阳光暴晒,挥汗如雨,但只要看到收获的希望,即使再辛苦也有所值得。

而六月,我也将再次踏上征途,去他乡探索了。

纪念中国AI的先驱–王湘浩

对于中国人工智能行业来说,5月5日有特殊意义:中国人工智能奠基者之一的王湘浩院士的诞辰。王湘浩生于1915年5月5日,是我国杰出的数学家、计算机科学家和教育家。他曾任吉林大学副校长,长期担任数学系和计算机科学系的系主任。1979 年组织召开了计算机科学暑期讨论会,这场大会也是有资料可考的中国第一次以人工智能为主题的大会,堪称中国的达特茅斯会议。

在学术的道路上,王湘浩永远保持一颗年轻的心。他重视年轻教师的成长,积极迎接挑战和新的变化,几度拥抱新的领域:1946年,王湘浩从拓扑学转学代数;1958年,王湘浩从数学转而研究计算机;1977年,他又一锤定音,首先倡议开展人工智能的研究。今日中国人工智能研究四处开花,已经成为了我们生活中的一部分,国内的人工智能研究者们,都应该感谢他在人工智能研究的关键时刻在背后的推动。

王湘浩在普林斯顿获得博士学位,与华罗庚同时代。普林斯顿也诞生了多位人工智能研究的相关华人学者,包括美国工程院院士李凯(李凯在吉林大学计算机系受教于王湘浩,他后来在耶鲁获得博士学位之后来到普林斯顿任教)、耶鲁大学计算机系主任邵中、华人唯一图灵奖得主姚期智、ImageNet 作者李飞飞、邓嘉等人。

对中国人工智能有重要推动作用的事件则是「吉大人工智能研究班」的召开以及全国高校人工智能研究会的成立。1980年,吉林大学受教育部委托举办人工智能研究班,帮助兄弟院校培养人工智能的人才,有清华、北航、中科大、复旦、中山、国防科大等共计16所高校的教师来到吉林大学进修。在王湘浩倡导与组织下还成立了全国高校人工智能研讨会,研讨会研究班自1980年起每年举行一次,是国内最早的人工智能学术研讨活动,为推动全国高等学校的人工智能研究起到重要作用。

王湘浩是中国人工智能学术研究公认的第一人,中国计算机学会副理事长,中国计算机学会人工智能和模式识别专委会的创办者和第一、二任专委会主任。抓住人工智能研究的机遇,开展定理机器证明、专家系统、计算机绘画的研究,使得吉林大学的人工智能研究集体,在当时处于国内领先地位。

王湘浩善于听取他人意见,善于发挥各种人才的作用;他不存私心,每届毕业生留校时,都把学习最好的学生安排到最重要的方向上;他关心学生和年轻教师的成长,在他的学生中,涌现出了包括吉林大学校长伍卓群、中山大学校长李岳生、全国高等学校人工智能专业委员会主任刘叙华、中国人工智能学会常务理事管纪文、美国工程院院士李凯等一大批人才。

盲目的AI并不能给产业赋能

经常有某某老板告诉我,公司要成立AI中心、算法中心,或类似的中心。我听了大概率会晕倒。

在学术界,AI基本等同于算法。在工业界截然不同,算法只是AI的一部分。

如果你的算法不解决问题,那么在公司里,研究它干什么呢?

当然,你是奔着解决问题去的。但你怎么知道所研究的算法,就一定解决你的问题呢?

或者,你能否准确定义你的问题组成,以及AI在这些问题里承担的角色?

事实上,很多人两眼一抹黑,根本搞不清楚AI落地的场景和能力需求,就匆匆忙忙,人云亦云,组建团队搞AI去了。结果是时间耗掉了,成本投出去了,产出基本没有。

学术界AI吹得热火朝天,今天一个算法明天一个概念,似乎AI就要解放全人类。但这些都是停留在paper上的,哪怕你每天追最新AI会议的论文,在现实中也解决不了任何问题。

AI在工业界追求落地,并不意味着paper上的算法,就能随意整合进你的生产环境。这里面涉及的因素太多。

我带的一个团队,研究的是业界最新的AI技术,基于手机的深度摄像头进行动作捕捉和3D重建。动作捕捉算法是用深度神经网络搞的。算法重要吗?固然重要。但是,这个项目能否落地,不止是AI算法问题。还有一系列的上下游生态要打通,比如苹果的开发环境,硬件成像技术,模型的平滑方法,3D渲染能力。这里面不止有数学,还涉及到光学、人体动力学、物理学、生物学、运动学的基础知识。

我带的另一个团队,搞推荐的。你或许认为推荐算法至关重要,一定程度上没错。但是在工程实际中,比算法更重要的是数据。数据的准确性、完整性、实时性,比什么推荐算法都有效。不管用LR、FM、xgboost,还是WDL,算法能提升10个点的效果,就顶天了。但是有效的数据改进,能随便提升几十个点。我们花在数据平台建设上的投入,要远大于算法建设。

所以,脱离实际生产环境和具体的场景需求,谈AI在产业落地,是不现实的。盲目的AI计划,并不能给产业赋能,它只会浪费你的成本,降低你对未来的信心。

中医是深度学习思想

在看“人类简史”,这本书的评价非常高,内容也的确不错。看了书我才知道早在一万多年前就有远古人类活动,比如12000年以前人类开始从西伯利亚迁移到阿拉斯加,再迁移到北美洲。我们老说中华文明上下五千年,整的我以为人类的历史就是几千年。

中医是上古流传下来的东西,我们看下百度的描述:

中医诞生于原始社会,春秋战国时期中医理论已基本形成,之后历代均有总结发展。除此之外对汉字文化圈国家影响深远,如日本汉方医学,韩国韩医学,朝鲜高丽医学、越南东医学等都是以中医为基础发展起来的。

中医承载着中国古代人民同疾病作斗争的经验和理论知识,是在古代朴素的唯物论和自发的辨证法思想指导下,通过长期医疗实践逐步形成并发展成的医学理论体系。

现在人们认为中医的理论体系没有科学依据,比如气血、经脉、阴阳等,这些东西观察不到,测量不出,听起来玄之又玄。去中医看病,既不用抽血化验,又不做各种人体扫描检查,医生摸下脉看下舌苔就可以开药了,高深莫测。

其实,中医有自己的理论体系,这种理论体系是建立在长期的观测和统计基础上的,并没那么玄幻。人类的历史那么久远,原始劳动人民在生产生活过程中,自然会得各种病患。某些病,远古的人类从动物行为中,或偶然的探索中,找到了治疗的药物,一般是各种草药。

既然是病,那就有特征表现吧,比如感冒就会发热、头痛、流鼻涕。既然大多数人感冒都有这个特征,原始人类在看到某人身体不适出现上述特征时,就判断为感冒,然后找对应的草药来治疗。于是原始的中医就产生了。

在数千年的发展中,人类经历的病症越来越多,可用于经验统计的数据也越来越多,一代一代发展下来,就形成了后来泾渭分明、条理完善的中医体系。这是人类在劳动生产过程中,对自然规律的总结结果。那时当然没有大数据、AI的概念,但这个统计的过程,与现在所谓的医疗AI没有本质的区别。比如,目前AI已经能提早几年发现人们患帕金森症的可能性,这就是从大数据进行学习和统计的结果。

当然,经验的抽象越来越高级,延伸开去,形成更高级的经验系统。比如,人如果常年郁结于心,必然会影响消化系统。黄帝内经说:怒伤肝、喜伤心、忧伤肺、思伤脾、恐伤肾。这种经验,不仅中医能总结出来,西医也得到了验证。

至于中医理论里的阴阳五行、奇经八脉,那都是鬼扯,不过是数据的一个运用方法而已。用现代概念对比,搞深度学习的把数据抽象过程叫卷积神经网络,叫习惯了大家也认了,其实这玩意和神经网络没有一毛钱关系。中医说肝属木,那就属木吧,几千年来这样叫习惯了。如果大家从今天起,都认为肝属火星,那它属火星也没关系。

不止中国有中医,任何原始部落都有自己的医术,不过它们被称为巫医。从起源看,中医与巫医没有区别,都是对自然经验的朴素总结,是自然规律的统计。很多老中医会使一些奇里古怪的医术,我有个远房亲戚,是某中医院的院长,他会画符来治疗某些特殊病例,这在我看来就是巫术。

从学术表现来看,西医接近于逻辑回归思想。每一项发病特征都可解释,每一个特征的影响都可度量,在基于样本特征的建模基础上,结果可以量化。中医接近于深度学习思想,讲究整体表现。深度学习模型基本不具备可解释性,中医也一样,什么天人合一、阴阳协调,无法解释,也无法量化,但能解决大部分问题。

逻辑回归属于机器学习,机器学习发展下去是深度学习,目前谈的AI基本都是指深度学习。那么未来西医发展下去,会不会向中医靠拢呢?也不好说啊。

我家人有个医学博士,整天为论文结不了题而烦恼。其实,与其在传统方法上纠结不已,不如另辟蹊径,将医学理论与深度学习整合起来,说不定在学术上还大有一番作为。

闲扯个性推荐

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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