今日头条杨震原:好的架构源于产品需求

2015年11月16日前后,CSDN软件研发频道在CSDN年度技术盛宴 “SDCC 2015中国软件开发者嘉年华”将于2015年11月19-21日在北京召开之际,采访了即将参加盛宴的今日头条技术副总裁杨震原。

杨震原,今日头条技术副总裁,主要负责内容推荐和数据平台。2005-2014年初,任职于百度,网页搜索部技术副总监,主要负责搜索架构。

CSDN:请简单介绍下您和目前负责的主要工作?

杨震原:主要负责头条的内容推荐和相关技术支持。

CSDN:你曾任职于百度搜索部长达9年时间,主要负责搜索架构,能否谈谈您对架构的理解?

杨震原:搜索的架构,特点是:投入大,发展早,复杂度高。

因为搜索的产品本身价值很高。使得在搜索技术上的投入很大,搜索的架构才得以发展。

搜索架构是互联网大数据应用的起源。早在2004年,Google就在一个不小的集群上面分布式的计算大量数据。

很多现在大数据的处理思路,都是当年由搜索为了解决自己的问题,率先提出的。

我对如何设计好的架构,是这样理解的:

从产品问题出发,分析要透彻。

对于高不确定性产品,着重考虑其灵活性和迭代效率。基础架构更多关注可靠性、灵活性;开发语言的选择,也侧重于开发的效率。

这时候就需要舍弃一些高性能的选择,以及舍弃一些新技术。因为你可能没有精力去采坑。有时候,宁可选择先污染再治理。等产品发展到一个阶段再重构。

对于持续改进,数据规模或用户规模比较大的产品。着重考虑其性能设计,可扩展性,调研效率。

这时候,基础架构反而敢于尝试一些新技术,因为只要服务好一两个大的服务就可以了,容易测试。

也敢于自己去实现一些基础组件。对于开发语言选择,基本就是C++实现核心模块为主,其他语言做接口连接。

这时候就需要舍弃一定的灵活性。为此,又需要非常注意review需求,敢于重构。因为灵活性的损失是时限的。

往往大规模系统走到一个阶段,因为需求在变化,就会渐渐的出现改不动了情况。这就是需要警惕,需要全面review的时候。

CSDN:互联网时代的信息非常的庞大, 今日头条在在推荐系统上颇有建树,让几亿用户可以阅读自己感兴趣的文章,能否谈谈推荐系统带来的好处?以及详细介绍下今日头条的个性化推荐算法原理?

杨震原:推荐系统,让人们阅读时的信噪比更高。当人们浏览一个信息流时,更多的内容是你感兴趣的,自然就会更愿意使用这个产品。

推荐算法,本质是基于统计和用户行为的投票来做,眼下就先不展开了。详细说起来,花时间比较多。

CSDN:能够分享下今日头条在数据技术方面的经验和建议?

杨震原:主要分享以下三点:

数据是基础。统一底层基础数据,包括各种log、数据平台等。基础的工作做到位,构建在上面的应用才会更得心应手;

根据产品需求,分解问题。哪些是优化预估问题。哪些是统计分析问题。哪些是工作流程问题;

对于每一个问题,尽量采用end-to-end的思路去解决。也就是分工上,尽量内聚低耦合。技术方案上选择,统一model,统一流程,减少依赖。

CSDN:对你们来说,目前面对的最大挑战是什么?

杨震原:产品上有诸多挑战,比如新用户冷启动的问题;人们长期满意度到底应该如何衡量和优化等等。

CSDN:您在搜索和个性推荐领域有很深的积累,之前有段时间很多人大谈「搜索已死,推荐上位」,对此您怎么看?

杨震原:此说法比较夸张,搜索还是占据非常重要的地位。

之所以有此说法,更多可能是因为搜索技术比较成熟,再往后的改进,边际收益已经比较低了。

而推荐技术,虽然也应用广泛,但是可以提升的空间还很大,还大有可为。

CSDN:在这么多年的工作中您肯定使用了很多算法,再结合目前的工作,您感觉哪些算法比较重要?他们各有什么优势和劣势。

杨震原:很难讲什么算法比较重要。我始终觉得基础的三种技能比较重要。

能够不断体验产品,换位自己是用户,提出问题,提出改进点子的人;

对算法(尤其是机器学习算法)非常了解,能够应用到各个产品问题上,并知道如何改进算法的人;

对系统工程有深刻理解,能够高效的实现并合理的抽象出层次的人。

如果能具备2种,甚至3种基础技能,那是非常厉害的研发人才。

相关领域
人物