AI产品能力

https://time.geekbang.org/column/article/382

一、分析产品的能力

人工智能工程师和数据科学家的主要工作是什么?很多人认为,他们的主要工作是利用复杂的机器学习模型和算法来解决产品中的难题。这样的认识既“对”也“不对”。“对”的地方是说,机器学习模型和算法的确是人工智能技术在产品上落地的核心步骤。“不对”的地方是说,这种认识往往片面地总结了人工智能从业人员的工作范畴。

实际上,要想真正地提出一个好的人工智能解决方案,分析产品的能力是必需的。从较高的层次来讲,就是分析一个产品目前遇到的难题是什么,为什么需要用人工智能技术去解决,哪些是可以用人工智能技术解决的,哪些不能。

今天,我就来分享一下,站在人工智能工程师和数据科学家的角度,我们如何理解并提升分析产品的能力,学会了解产品的需求。

产品需求的庖丁解牛

一个数据驱动的产品往往是一个复杂的复合体。这里面当然有很多数据、人工智能的元素,也有不少其他元素,比如设计、人机交互、商业规则、心理学等等。那么,如何在这么一个综合复杂的体系中找到人工智能技术的合适位置,以及技术究竟要扮演什么样的角色,其实是一个数据驱动型产品能否成功的核心问题。

想要对这个问题有一个比较全面的认识,我们首先需要回答这么一个问题,那就是人工智能技术到底能够给产品带来什么?

很多朋友可能觉得这个问题不言自明。人工智能技术难道不是解决产品的核心算法难题吗?

这种看法其实不够全面。人工智能技术给产品带来的其实不仅是一些核心的模型和算法,更重要的是,带给产品一项根本性的能力:数据驱动的决策过程。

什么叫作“数据驱动的决策过程”呢?我们还是要从人工智能技术的特点说起。

人工智能技术的特点有两个方面:第一,数据驱动。第二,在不确定的因素下智能决策。

数据驱动

我们先来谈谈第一个方面,数据驱动。这里其实是两个部分,“数据”和“驱动”。

扫描二维码关注公众号,回复: 2842827 查看本文章

一个产品要想利用人工智能,第一步,也是非常重要的一个步骤,就是要有“数据”的概念。什么是“数据”的概念?就是一个产品需要有数据收集的意识,并有数据收集的机制。然后,一个有“数据”的产品需要慢慢建立数据管道,并开始建立数据的检测系统。这些都是人工智能介入的先决条件和基础设施。

没有数据,没有流畅的数据链条,是无法构建一个健康的人工智能决策环境的。这一点说起来容易,要真正做到其实需要很扎实的技术基础。很多团队、很多产品最终无法利用人工智能技术的方方面面,一个关键原因就是在数据链条上出了各种问题。

有了数据以后,第二个环节就是“驱动”。也就是说,只有数据是不行的,还必须有一个意识,主动利用这些数据来驱动产品的发展,驱动产品方方面面的进化。这个步骤其实不仅是针对产品的决策人员,比如产品经理、项目负责人,也是针对这个产品的所有参与人员的。

参与产品的各方面人员,包括工程方面的、设计方面的、市场方面的,大家有没有意识,在有了数据链条之后,通过数据检测、数据分析不断加深对产品的认识,提出更好的想法。当产品遇到各种问题时,大家有没有一个意识,那就是先到数据中去找答案,先去看数据是不是出了什么问题,去理解数据中显示出来的内容。

如果说数据驱动的第一部分是有关“硬件”的,是数据链条的技术以及实现,那么第二部分就是有关“软件”的,是项目人员的意识和责任。

智能决策

当一个产品有了数据驱动的基础以后,下一步,就需要建立“智能决策”的理念。

“智能决策”是什么意思?

要想明白“智能决策”的意义,我们首先要来想一想“非智能决策”是什么样的。

很多传统的产品或者不是数据驱动的科技产品都是非智能决策的产物。非智能决策主要是指,不依靠数据,或者依靠很少量的数据,由产品经理或产品负责人人工地进行决策。注意,非智能决策并不一定无法带来好的产品。实际上,在历史的很长时间里,各行各业都是依靠非智能决策在进行演化。

非智能决策的一大特点是决策的主观性。通俗地讲,就是决策者依靠自我的认识,主观“拍板”决策关于产品的方方面面。因为没有一个系统的方法论,或者说是没有一整套机制给决策者相应的信息,来帮助决策者完成决策,非智能决策所带来的产品结果往往有很大的偶然性。

这种偶然性来自于决策者本人的各种能力,来自于执行者的能力。由于这样的偶然性和主观性,非智能决策的另外一个特点,或者说是结果,就是不可复制性。这是因为决策的方法和方式都不能动态地随着时间、随着数据的变化而变化。

非智能决策在什么时候会变得比较困难呢?数据量太大的时候,需要做选择的可能性太多的时候,需要做的选择本身复杂度变高的时候。这些特征也正是新时期下互联网产品或者人工智能产品的特点。因此,在将来非智能决策会越来越多地让位给智能决策。

简单来说,智能决策就是产品的决策者依据产品的特点,把一些复杂的、需要依靠大量数据、选择面太广的决策交给人工智能模型和算法,并且建立起一整套体系,利用人工智能手段依靠数据来对整个产品进行快速迭代。

如果给这种产品决策找一些典型的类比,就像现代搜索引擎技术,代替了传统的图书馆管理员的角色;现代的电子商务网站为用户推荐各类商品,代替了传统商店里的导购;智能自动驾驶汽车,代替了人类的手工驾驶。

智能决策不仅仅是某一项任务的智能化,更重要的是一种理念的提升。也就是说,一旦产品的决策中出现了有需要大量数据、有复杂选项的时候,作为产品的决策者就需要马上意识到,这部分决策任务应该逐渐从人转移到智能模型和算法上,依靠数据驱动流程来加快迭代。这一点是智能决策的关键。

我们可以接着之前的电子商务网站的例子来说明智能决策的理念。最开始的时候,也许这个网站只有一个简单的界面,可以根据用户的一些历史信息来推荐商店的商品。这个时候,智能决策的部分还仅限于推荐模块这一部分。紧接着,越来越多的用户开始使用这个网站,于是任务就变得越来越多,也越来越困难。

比如,如何设计下一版的网站界面?设计师、前端工程师、用户体验工程师、甚至产品经理都会有自己的看法。这个任务本身就很困难,怎么能让上百万的用户满意?怎么能体现出不同用户的不同选择偏好?怎么能体现出这个产品自身的美学价值?你看,这就是一个需要基于数据的复杂的决策任务。

很多团队能够意识到推荐模块需要智能决策,却意识不到“下一版的界面”问题可能也需要智能决策。其实,一旦一个问题变成智能决策问题,我们反而有章可循。

比如这个界面问题,所有人的意见、想法或者创意,依据一定的规则,可以用一些人工智能模型和算法来表达。然后通过现代的 A/B 在线测试手段,可以针对不同的人群展示不同的界面。随后通过数据链条来对测试进行监控和分析。

这时候,决策反而变得简单。因为我们不需要为数百万用户拿一个主意,而需要做的是为智能决策提供足够多的创意,然后由智能模型和算法以及实验流程来选择用户喜欢的界面。最后,下一版的网站,不只有一个界面,而是有几十甚至是几百种不同的界面,为百万千万的用户服务。

二、评估产品的能力

“如果你无法衡量它,你就无法改进它。”(If you can’t measure it you can’t improve it.)这是一句你可能会经常听到的话,这句话也被应用到很多不同的场景中。那么,对于人工智能工程师和数据科学家来说,这句话其实是他们工作核心的核心。不管是模型和算法,还是产品迭代,都离不开“指标”和“评估”这两个方面。

评估一个产品的好坏,是一项说起来最容易但做起来最困难的工作。任何人,从用户到产品经理,对某一个产品都可能有自己的主观意见。然而对一个产品,特别是要面对成千上万用户的产品来说,依靠主观感觉是很难有一个完整、全面的评价的。同时,有一个成熟的产品评价体系可以成为产品不断迭代的领航标。

今天,我就来聊一聊如何评估一个数据驱动型产品,又如何从评估产品的角度来推动产品的迭代。我们需要建立层次化的评估体系,需要一个衡量产品好坏的框架。这个框架要从宏观到微观,能够对你的产品进行全方位的检测,并且这种检测能够帮助你更容易地进行决策。

产品的经济收益

你可能要问,是的,我们需要评估一个产品,但是如何找到衡量产品的这些指标呢?

比方说你要做一个社交网络的网站,怎么来制定检测指标呢?首先,你要问自己,我做这个社交网络的最终目的是什么?很明显,一个商业网站的终极目标是赚钱,也就是说,你最终的指标是你网站的经济收益。知道了这一点远远不够,你至少还需要思考两个问题。第一,如何衡量你的经济收益;第二,你能否用经济收益来直接指导你的产品构建。

我们先谈谈第一个问题。衡量经济收益看似简单其实不易。从比较大的维度上来说,你可以衡量总收入,你也可以衡量利润,你可以衡量收入的年增长率,还可以衡量季度增长率。从比较具体的维度来说,很多社交网站依靠广告收入,对广告收入的衡量本身就是一个非常复杂的问题。

总体来看,衡量经济收益,有两点值得你思考。其一,如何衡量你收入的现状。其二,如何衡量你收入的增长。今天,关于收入的指标我就不展开讨论了。

刚才讲的第二个问题就更加复杂。衡量经济收入的指标往往太过宏观,而且衡量起来有难度,因此用经济指标来指导产品的发展是很困难的。我刚才说了一些经济收益指标,比如年收入、年增长率、季度增长率,这些指标的衡量需要至少等待一个季度以上,甚至一年的时间。这些有时间间隔的指标,无法给产品的快速迭代带来很大的指导意义。

另一方面,很多产品并不直接产生经济结果。也就是说,经济收益是一个“副产品”。这个时候,如果我们只看经济收益,就无法真正指导我们构建更好的产品。比如,我刚才提到,对于一个社交网站来说,广告收入是一个“副产品”,绝大多数用户来到这个网站的主要目的不是点击广告。因此,仅仅衡量广告有可能让社交网络产品的迭代误入歧途。

层次化的评估体系

如果单从经济指标无法对产品有全面的指导作用,那怎么才能更加有效地建立评估体系呢?这里就引出下一个话题,那就是多层次的评估体系。

接下来,我就由低到高依次从五个层面来说明一下,这个层次化的评估到底是什么意思。

最低层次的评估主要围绕着产品的最小组成单元。比如我们刚才用的社交网络的例子,社交网络的各个页面上的模块就可以是最小的被评估的单元。

为什么要用这个概念呢?原因是这样的,每一个模块往往是产品的一个逻辑单元,一个最小的承载产品理念的单元。不管是工程团队还是产品团队的运作,基本上都是为这些模块而工作。因此,观察最小单元的效果对产品和工程团队都有直接的指导意义。如果团队目前对这个模块做了一些更改,那么最直接的效果就是这个模块的一些指标会发生变化。这是产品迭代的一个重要组成部分。

在这个层次,衡量模块的指标主要是模块的直接效果指标。比如,模块本身的点击率,模块本身的驻留时间,模块上一些其他的用户活跃指标等。这些都是最低层次的模块级别的指标,和产品、工程团队的运作有密切联系。

第二个层次的指标是从单个模块上升到一个页面。这个时候,就不仅需要理解单个模块的情况,还需要对整个页面上所有模块产生的功能群进行深入研究。在这个层次,产品功能群的思考可能会涉及到多个产品团队,也可能会出现模块间冲突的情况。

比如不少现代搜索引擎的搜索页面往往都有广告模块。长期的经验告诉我们,广告模块的效果和普通搜索模块的效果往往有相反关系的耦合。也就是说,普通搜索模块的效果提高了,广告模块的某些指标反而可能下降。反过来,广告模块的效果提高了,也很有可能是因为普通搜索模块的质量突然变差。因此,在有经验的产品团队面前,广告效果有意想不到的提高,可能并不意味着是件好事情。

第二个层次的指标比第一个层次变得复杂起来。不过这个层次的指标依然是可以直接测量的。比如页面的点击率,页面的驻留时间,页面上其他的用户指标等等。这些指标虽然可以直接测量,但是分析时需要对页面上的所有模块有全面了解。

前两个层次的指标主要是测量用户在某一个模块或者页面上的表现,核心是看产品的更改对用户的直接影响。而且,第一层次和第二层次的指标非常易于检测。通常情况下,如果页面和模块发生了什么问题,这些指标就能很快地反映出页面的情况。然后通过排查,我们就能快速发现问题,这也就是通常所说的,这些指标都比较“敏感”。

“敏感”指标的第一个好处是,这些指标具有非常强的指导意义,能够帮助产品团队快速认识问题并提出解决方案。“敏感”指标的第二个好处无疑就是,产品团队的绝大多数改动都能够比较容易地反应到这些指标上。因此,这是一个容易建立的、良性循环的指标体系。当然,仅有这两个层次的指标还是远远不够的,我们可以看到,这两个层次的指标和一个产品最终目标的衡量还有一定距离。

第三个层次的指标,就从某一个模块、某一个页面上升到了用户这个层级,主要是检测用户在一个会话(Session)中的表现。这个时候,用户往往在一个会话中,和多个模块、多个页面进行非常复杂的互动。在这个层次上,我们已经很难仅凭观测就能琢磨出用户在这个会话中是否真正感觉满意。这个时候,我们往往就需要建立用户模型(User Model),以及通过一些统计的方法建模,从而实现真正理解用户行为的目的。

举一个例子,如果我们构建一个电子商务网站,在一个用户会话中检测用户是否购买了一些商品,这些商品的总价值又是多少。这个监测指标有时候被称作 GMV(Gross Merchandise Value),也就是通常所说的网站成交金额。GMV 还是比较容易计算的,就是计算每个会话之后用户购买的商品价值,然后对所有会话的结果求和。但是要真正理解用户会话行为对 GMV 的影响,就是一个比较困难的任务了。

我们可以想象,即便是同一个用户,是否在一个会话中购买商品,这是一个非常复杂的决策过程。在一个会话中,用户可能会接触到搜索页面,可能会接触到各种推荐的模块,也可能会跳转某个商品的页面,还可能会跳转首页。并且,每个用户的用户轨迹不同,接触各个页面和模块的流程也是不一样的。可以肯定地说,任何一个流程中的每一个环节,都有可能对用户是否购买商品、以及购买多少价钱的商品有或多或少的影响。而如何来测量和建模这样的影响,就是第三层次指标的核心挑战。

第四个层次的指标是从一个用户会话上升到多个用户会话。这个时候,我们关心的是用户较长时间的体验问题。对于一些复杂的任务,用户需要多个会话才能完成。套用我们刚才举的电商 GMV 的例子,很多用户购买比较贵重或者是一些有特定需求的商品(比如婚纱)时,往往无法在一个用户会话中完成决策。

那么这种情况下,检测指标的复杂性又进一步提高。比如说,用户可能先在电商网站上搜索了关于婚纱的信息,但在这一次会话中并没有完成交易。用户之后可能又从其他途径了解了一些更多的信息,然后又重新到电商网站开始一个新的会话。在这个会话中,用户也许重点比较了好几个婚纱,然后决定购买其中一件。这个例子还是一个比较简单的情况了。

第三和第四层次的指标有两个特点。第一,相对于第一、第二层次的指标而言,这些指标已经不那么“敏感”了。也就是说,仅改变某一个模块甚至某一个页面,是很难在短时间内改变第三,特别是第四层次的指标的。从上面的例子可以看出,用户的购买行为是非常复杂的,仅仅因为提高了某个推荐模块,是不是就能让用户多买贵的东西,答案是不确定的。第二个特点就是,第三和第四层次的指标依然可以用传统的 A/B 测试来进行观测,只不过需要很仔细地设计实验。

第五个层次的指标就是用户和产品的长期指标。我们最开始提到的经济指标其实就是第五层次的指标。类似的指标还包括月活跃用户、年度活跃用户等等。这些指标有两个特点。第一,这些指标往往是产品的终极目标,一般极其难以撼动,特别是对于成熟的产品而言。第二个特点是,这些指标往往无法通过 A/B 测试进行衡量。也就是说,我们往往无法通过常规的实验就能够观测到这些长期指标的变化,这也是为什么这些指标被称为“长期”的原因。

三、系统提升产品性能的能力

人工智能工程师和数据科学家的一个核心任务,就是依靠人工智能、机器学习这样的工具来帮助产品不断提升品质,吸引更多用户,以实现既定的长期目标。这里有一个关键点,就是我们如何开发出一套方法论,让提升产品性能的过程可以“有章可循”,并成为一个系统性的流程。

初入门槛的工程师和数据科学家,容易把精力和眼光都集中在具体的算法模型上面。这固然是短期内的重要工作,但是,如何能够持续不断地为产品提供前进的动力,才是让人工智能技术有别于之前多次技术浪潮的根本因素。今天,我就来为你剖析一下,持续不断地、系统性提升产品性能的一些关键步骤。

优化长期目标

一个产品如果需要利用数据驱动的人工智能技术来提升品质,第一件事情一定不是专注于部署某一个模型或者算法。或者说,如果已经急迫地上线了第一个简单的算法,接下来最重要的事情一定是停下来,看一看我们是否已经弄明白,这个产品到底需要“优化”什么目标,是否有一个指标检测体系,来指导我们的优化过程。

我们利用人工智能技术手段一定要优化产品的长期目标,这是系统性提升产品性能的一个关键。乍一听这是一句废话,难道算法和模型还有不优化产品长期目标的时候?你心中一定有这样的疑问。其实,确定你所制定的技术方案一定能够优化产品的长期目标,是一件比较困难的事情。

设想一下这些例子。比如你为一个在线视频的网站设计推荐系统,你根据很多教科书上的推荐系统案例,优化某一个视频的评分(Rating),这是在优化这个产品的长期目标吗?

比如,你为一个电子商务网站设计搜索系统,你根据传统的信息检索以及搜索的案例,优化查询关键词和产品的相关度(Relevance),这是在优化这个产品的长期目标吗?

再比如,你为一个新闻网站设计新闻流系统,你根据产品的基本特点,希望提高新闻的点击率,是在优化这个产品的长期目标吗?

针对上面这些问题,答案或许都是——不确定。或者说,你正在优化的可能会、也可能不会对这个产品的长期目标有影响,这就需要我们建立一个系统性的方法论,来引导我们回答这个问题。

因此,知道我们是否在优化产品的长期目标需要一个前提,那就是我们必须要建立产品的指标检测体系。在专栏的上一期内容里,我们已经介绍了五个层次的产品评估体系。对于提升产品来说,建立这些层次是关键的一步。然而,要想真正系统性地提升产品,还有一个至关重要的步骤,那就是打通这五个层次,建立一个立体的产品提升流程,从而实现优化产品的长期目标。

我们先来简单回顾一下这五个层次的指标。从最高层次说起,第五层次的指标主要是产品的长期指标,比如季度利润的增长、年利润、月活跃人数等。这些指标和产品的最终目的息息相关,却非常难直接衡量,也就是这些指标对产品的一般变化不是很敏感。

第四层次的指标主要是用户在多个会话的交互表现。第三层次的指标是指用户在单一会话的交互表现。这两个层次的指标比较容易在 A/B 测试的范畴内测量。这些指标能比较宏观地检测一个产品的高维度表现,了解用户一般是如何和这个产品进行交互的。

第二层次是页面层级的指标,这个时候,我们观测到的基本上已经是产品团队可以直接控制的因素了。第一个层次的指标是模块级别的指标,这是产品团队直接运作的结果。

这五个层次的指标从宏观到微观,构成了一个检测的体系。如果我们要优化产品的长期目标,也就是说第五层次的指标,而我们能够直接掌握的产品决策,往往只能带来第一、第二层次指标的显著变化,这两者之间的差距如何来弥补呢?

我们前面举了好几个例子,比如视频推荐、产品搜索、新闻流产品等等。之前提到的技术方案大多数直接针对第一或者第二层次的指标,这些方案是不是能够对第五层次的指标奏效,其实是一个不确定的问题。

那么,问题的核心就变成了,如何在只能运作第一或者第二层次指标的情况下,对第三、第四甚至五层次的指标有间接的控制和影响呢?

建立层级指标之间的联系

上面我们提到了,要想持续地提高产品,最重要的就是要一直优化产品的长期目标。但是,如果我们只能控制产品的短期指标,如何才能优化产品的长期目标呢?

答案其实很简单,就是我们必须在所有层级的指标之间建立联系。这些联系因产品而异,但核心思想却是一致的。

回到之前的一个例子,那就是构建一个视频推荐系统。如果我们希望直接优化用户对视频的评分,就必需回答一个问题,能够给用户推荐打高分的视频,和产品的长期指标之间有什么联系?假设这里产品的长期指标是月活跃用户数目,那么问题就是,给用户推荐打高分的视频,和月活跃用户数目之间的联系是什么?

注意,这里说的建立联系不仅是逻辑联系,而且也是数据链联系。也就是说,我们不仅需要尽可能地在逻辑上理清,为什么推荐高分视频有利于帮助月活跃用户数的增长,还需要用数据来为这样的观点提供证据,这才是最重要的一个环节。

简单说来,我们可以这么做。首先,从所有的用户群体中找到用户样本。然后,通过数据来研究,用户的活跃程度和被推荐的视频评分之间的关系。从最高的维度上说,那就是建立一个回归问题,比如用户的月活跃程度作为响应变量,被推荐视频的评分用作一个特征变量。

当然,这个时候我们还可以引入其他的重要变量,比如性别、年龄组、地区等等,用来排除这些因素的干扰。直接研究这两者之间的关系一般来说是一个有难度的工作。比如你很可能并没有那么全面的数据,也有可能这两个变量都需要做一些变形,还可能负例太多(也就是说有大量的用户并没有因为评分的高低而改变他们的行为)等等。

如何具体地建立这个模型我今天先不讲,但有一点是可以肯定的,那就是这样做一个分析,可以很好地帮助你了解优化对象和长期目标之间的联系。

我们不仅需要了解第一层级和第五层级指标之间的关系,每一个层级之间的关系也是需要去研究的,这样才能更加全面地了解自己的产品。这一步就是把之前分散的五个层级打通的重要步骤,也就是如何建立一个立体体系的关键。

那么,如果出现了这样的情况,长期运作的第一层级指标和自己的长期目标没有联系,该怎么办呢?第一,祝贺你,你进入了真实的产品运作环境。从很多产品的长期运作经验来看,很多传统的指标特别是教科书上的指标,都和真实的长期指标有很弱的关系,甚至根本没有太大的联系。第二,这会帮你早日抛弃错误的优化目标,转向更加正确的道路。

寻找一个正确的第一、第二层级的指标,让这个指标和最后第五层次的长期目标之间有正向联系,就是能够持续不断地推动产品前进的一个重要动力。因为这个因素,产品团队才能够不断地试错,但不会失去大方向。

然而,说起来貌似很容易的事情,做起来其实是很困难的。我刚才说了,很可能有一些指标,看上去有一定的意义,但并不一定和长期目标有任何正相关。怎么才能找到恰当的指标呢?

一个简单的方法是尽可能多地记录指标,然后根据后期的实验数据和分析来确定指标之间的联系。回到刚才那个例子,就是说,我们对于一个视频网站,可以记录很多第一、第二层级的指标,有可能有上百上千个。然后我们根据数据,从这么些指标中,和最终的长期目标做回归分析,建立一些备选集。

这里需要数据、也需要经验。我们还可能发现,最终的长期目标和好多第一或者第二层级的指标都有关系,这也是很正常的。这就说明,优化长期目标是一件复杂的事情,很多短期目标和长期目标并不是只有简单的线性关系。

当确定好了第一、第二层级的指标后,那就可以开始用机器学习的手段,把指标当做算法模型的目标函数,从而重新设计算法,使其能够开始优化新的指标。这一步也需要很高的机器学习技巧和丰富的经验,因为并不是所有的指标,都能很容易地转换成机器学习可以优化的对象。

猜你喜欢

转载自blog.csdn.net/u011239443/article/details/80538823