【51CTO专访】百度主任架构师廖若雪,百度技术委员会主席,“阿拉丁”项目负责人。一开始在ArchSummit官方介绍上看到廖若雪的简介,只是对他的Title感到好奇:主任架构师?架构师也有主任么?后来听在百度的朋友介绍,主任架构师就是比架构师还高一级的架构师。再后来看到了他之前的一些采访资料,得知他是北大材料化学系毕业,毕业后还做过一段时间的游戏开发,之后加入百度开始做搜索,一做就是7年。
听起来很有意思,不是吗?
所以,这次在ArchSummit峰会上,笔者找了个机会,跟廖若雪先生简单的聊了聊对搜索的看法,以及对职业、成长的看法。剃光了头发、体态彪悍的若雪说起话来意外的温柔,颇有学院派的风范。
百度主任架构师 廖若雪
下面是本次的采访实录。
51CTO:首先,您做搜索领域这么多年,您对搜索、推荐、信息整理之间的关系是怎样理解的?
廖若雪:信息整理是一个更加泛的领域,它更多涉及的是我们怎么把互联网的信息整理起来;那么整理起来了怎么用呢?推荐和搜索就是两种用法。所以信息整理跟另外两种不太一样。
推荐和搜索之间的关系是比较微妙的:我们可以从多种角度找到不同的答案。我个人来说,搜索是一种满足用户需求的方式,推荐也是一种满足用户需求的方式。严格意义上来说,如果我们定义推荐是满足用户明确需求之外的信息,那么我们可以说,推荐是搜索的扩展。
我举一个例子。比如说我想要去吃饭,查一家饭馆,找肯德基,看这附近的肯德基怎么去,这是一种搜索,非常明确的需求。但我如果并不清楚这附近有什么饭吃,那么我想知道附近好吃的餐馆,那么这其实就是在搜索和推荐之间的一种需求了。用户很明确的说我现在想吃饭,也明确说是附近的,那么搜索引擎就要去找,首先用户的位置在哪里,然后我对好吃的定义是什么,比如口味偏重或者偏淡,这种其实就是基于搜索的推荐。
再进一步的话,比如我一看现在到晚饭时间了,要不要到新的地方吃点什么东西,那么可能我就会主动地告诉用户,附近有一家评分很不错的海鲜店,因为我知道这个用户以前到海边的时候都会去找一家海鲜店吃吃,他有这个历史记录。那么这就是一个完全的推荐。但是你会发现这中间没有一个很明确的界限,它们更多的是一种交叉和互替代。
当然我们来说,无论是推荐还是搜索,都是满足用户需求的一种方式,并没有硬性要说这到底是搜索还是推荐。
51CTO:所以它们从实现上来说其实也是非常相似的?
廖若雪:对。搜索和推荐实际上来说,底层的很多技术是类似的。两者都需要处理大量的信息,比如网页信息;现在搜索发展的很快,也会出现结构化的信息;我们也处理了很多信息质量的问题;再往前我们还有很多信息安全、机器学习这些方面的扩展,这些都是相关的。当然,推荐会更加偏向于用户的分析。比如对用户进行建模。当然,搜索也有可能会发展这个方向。总之,整个底层的技术是相通的。
个人经历
51CTO:您一开始是化学系毕业的,然后又做过一段时间的游戏开发,现在在做搜索开发。您觉得它们之间有什么共通之处么?
廖若雪:其实没有什么共通之处。
如果说有共通之处的话,就是一些底层的东西。化学本身其实更多是一种理性思维的训练。而游戏开发和搜索引擎开发,都是计算机科学里面的东西,对编码能力、算法、基本的编程方法和思路,这些方面是共通的。
51CTO:那您当时为什么会开始做搜索这块?
廖若雪:比较偶然。当时做游戏做了一段时间了,想换一个方向,然后正好看到百度在招聘,社招。当时正好是周末,又不远,就去看了看。
51CTO:然后就过去了?
廖若雪:对。然后就一直做搜索,做了7年吧。
51CTO:那么,您现在作为百度的主任架构师,其实在普通程序员看来是层级很高的。您觉得这个Title对您来说更多的是一种能力,还是责任?
廖若雪:其实我觉得无论是叫架构师还是主任架构师什么的,都没什么太大关系。责任和能力是相对的。你有多少责任,就会需要相应的能力,反过来也是。我个人其实并不倾向于设置架构师这样一个Title。其实没必要,我觉得大家都叫工程师就挺好的。为什么要叫架构师?架构能力对工程师是必要的。无论你希望在计算机科学的哪个方向上发展,你都需要有足够的架构能力,否则你的东西经不起时间的检验。现在的趋势是,即使你是在某个特定方向做的很深的人,架构能力也都是必须的。尤其是现在的规模越来越大,无论你是做机器学习,还是专研算法,如果你在架构上面没有理解,没有办法去解决的话,那么你会遇到门槛。架构能力应该是工程师核心能力的一部分。
51CTO:嗯。而且最终不是所有的程序员都会走上架构师这条路的。
廖若雪:对。所以为什么我不建议设立架构师这个Title,就是这样。你看,程序员一开始都是写代码吧,他可以往深的走,也可以往广的走。他可以往架构方面走,也可以往专精的方向走。但他都是要解决问题的。最终我们要做成一件事情的时候,其实有很多能力都是需要的。不是说一个架构师在这里,他只需要架构能力,别的能力不需要。
51CTO:您这边的搜索技术部,前端、DBA、运维这些是怎么划分的?
廖若雪:我们倒不是这么分的,比如搜索,我们有搜索策略的,有检索架构的,这样一个划分。就是按他们负责的事情,而不是按职能来划分。
51CTO:那是说每个工程师都懂得很多方面的东西?
廖若雪:那倒也不一定。团队里面会有不同背景的组成,比如算法比较强的。
51CTO:运维也是自己做?
廖若雪:运维这块跟各个公司的关系很大,百度这边有专门的运维团队,比如这个项目需要运维,那么他们会专门加入到这个项目组里面来。
51CTO:那么,您感觉您工作这么多年,成长最快的一段时间是哪个时候?
廖若雪:成长最快的时候?其实我觉得整个在百度的成长过程都蛮快的。当然,最开始进来两三年是最快的。
51CTO:不是做阿拉丁的时候?
廖若雪:哦,那个时候其实更多的是把自己的个人能力贡献出来的时候了。当然那时候也有成长,不过单从个人能力提升的角度来看,还是刚进来两三年的时候。
51CTO:是哦?那当时是怎样的一个过程?有前辈指导还是什么的。
廖若雪:对,一方面是有前辈带,另一方面当你被赋予一些比较有挑战性的任务的时候,你会感到压力,学习的会更快。
未来的搜索
51CTO:那么您对未来在搜索这块的成长怎么看的?这个领域感觉中文界和英文界可以互相借鉴的地方相对少一些,您觉得搜索未来是什么样的呢?
廖若雪:其实中文搜索和英文搜索不是说没有借鉴,大家都在共同发展。比如百度那时候我们做阿拉丁,最近苹果的Siri和Google Now,都出现了类似的东西——这些东西本质上是相通的。搜索原先是一个检索,但是现在我们越来越希望它成为满足需求的一个入口——直接满足用户需求。比如很常见的一个例子,搜索天气,现在在搜索页里就是直接展示的,你不需要再点一次。再好比Siri那种,你直接用语音问它,它就告诉你了。
51CTO:Siri背后不也是Wolfram Alpha么?
廖若雪:其实背后是什么无所谓。比如我们现在做百度的搜索中有框计算的结果,可以很好的满足用户的自然需求,那么我只需要加上一个语音识别,接上百度搜索,你去问它天气怎么样,那么它直接会给出天气,然后再进行语音的合成,你体验到的就是类似Siri那个样子了。
51CTO:嗯,如果它听得懂你在说什么的话。
廖若雪:语音识别和语音合成的技术其实已经发展了很多年了,只是我们把它做到多好的一个问题。但你会发现,我们在交互方式上的这种改变单独拿出来看的话,后台其实是类似的,我们只是需要搜索引擎更好的去理解,去返回用户那些能够直接满足他们需求的结果。这个我觉得是未来的一个方向。
其实今天会上有一个说法我很认同,就是以后,人能够用最自然的方式将需求表达给搜索引擎,然后搜索引擎用最直接的方式去满足人的需求。
51CTO:那机器理解这一块,您觉得现在我们做到什么样的程度了?
廖若雪:还是比较初级。能解决部分的问题,但还是没有太跳出工程系统的模式。但是我觉得这方面将会发展的比较快,因为我们看到现在很多前沿的公司,大家都在发展这一块。现在这一块是一个比较好的形势吧。
51CTO:好的。那么本次问题就到这里,十分感谢若雪接受我们的采访!