增强分析在百度统计的实践
导读:增强分析是近年来新兴起的一个方向,正成为数据和分析技术的主要趋势。本文结合作者实践经验,介绍了对于增强分析的理解和在实际工作中的展开点,包括基于自然语言的分析接口、核心功能的智能助手、业务洞察及建议,也希望在这个方向上能和大家有更多探讨。
全文 4209 字,预计阅读时间 11 分钟。
01 什么是增强分析
知名调研机构 Gartner 发布的 2019 年十大数据和分析技术趋势,着重提到了增强分析(「Augmented Analysis」)。其实早在 2017 年,Gartner 就发表了题为「Augmented Analytics Is the Future of Data and Analytics」的报告。
按照 Gartner 的定义「Augmented analytics is the use of enabling technologies such as machine learning and AI to assist with data preparation, insight generation and insight explanation to augment how people explore and analyze data in analytics and BI platforms」,这是一种通过机器学习等技术帮助普通用户更好的使用和探索数据、更深入的理解数据、进而提升业务价值的新型分析形式。这里的"增强"主要体现在两方面:
1.技术层面,除了常规的分析范畴外,引入机器学习和 AI 能力,渗透到数据准备、数据交互、洞察获取、决策支持等一系列动作中,使得整个分析过程更加精细化、自动化。
2.业务层面,强调“分析平民化”,降低数据分析门槛,使得从数据中获得分析结果和洞察见解不再是专业人士的权利,普通业务人员也可以方便的参与进来。
△图 1
从目前主流的 BI 软件(比如 IBM Cognos Analytics、Microsoft Power BI、Oracle Analytics、Salesforce Einstein Discovery、Tableau、ThoughtSpot 等)发展阶段也可以看出(图 2),增强分析是商业智能分析的进阶版本。相比于传统的 BI,增强分析更强调易用性、可解释性、以及机器学习和 AI 技术的使用。
△图 2
那么,增强分析具体是做什么事情,对业务能有哪些帮助?Gartner 提出了数据准备、挖掘数据模式并建模、分享数据发现三个阶段的应用场景。在这里我们以百度统计分析云为背景,介绍一下增强分析在具体业务中的一些展开点,也希望能和大家一起思考如何把增强分析贯穿到实际业务中。
02 基于自然语言的分析接口
最常见的分析接口有两种形式:图表交互和 SQL,前者面向普通分析型用户,后者适合有 SQL 经验的分析师。随着智能设备的普及和对业务随时随地的查询需求,基于自然语言的分析接口成为了一种需要的形式,比如用户可以用手机通过语音或文本输入来描述想要提出的问题,对于非专业分析用户(比如销售和运营)更是如此。
根据提问和回答,分析接口分为两部分:自然语言提问(NLQ)和自然语言回答(NLG),这里我们的讨论侧重于提问这块。由于分析系统的底层往往是 SQL 查询接口,所以问题定义就变成如何从自然语言到 SQL。业界在这方面已经有些工作,比较典型的有谷歌 Analyza 系统(图 3),Salesforce 的 Seq2SQL model(图 4)。Analyza 系统由 Metadata store、Parser、Conversation Handler、Answering Engine 几部分组成,整体上是一个规则系统,没有引入机器学习的原因在于当时缺乏足够的训练集,以及对准确性要求非常高。
△图 3
Salesforce 提出了一个端到端的 Seq2SQL model,其中把目标序列分解为 Aggregation 、SELECT、WHERE 三部分,模型结构如图 4。同时,Salesforce 还发布了 WikiSQL 数据集作为英文 NLP2SQL 的 benchmark。
△图 4
从整体上来讲基于自然语言分析接口的技术实现可以拆解为三部分:自然语言理解、业务知识库、查询翻译。在自然语言理解方面,百度提供了 UNIT 平台,融合了 NLP 相关技术,能够帮助快速接入问答系统。
业务知识库主要包括三部分:
1.预定义的事件及属性「predefined event/property」,以及自定义的事件及属性「customized event/property」,在百度统计业务里,预定义的内容包括固定的流量和访客相关维度,自定义内容是客户根据自身需要定义的事件,比如"登录"、"注册"。
2.扩展知识,主要是根据上下位关系对事件属性实体进行扩展。
3.同义词,包括通用同义词和业务同义词,其中通用同义词可以复用现有的训练结果,业务同义词需要结合业务场景进行构建,比如在业务文本语料上通过 word2vec 重新训练。
基本的实现框架如图 5 所示,UNIT 模型负责 NLQ 解析,语义 Parser 把词槽结果翻译成中间结果,To-SQL 模块把中间结果转换成可执行 SQL 交给底层查询系统执行,知识库跟 UNIT 模型、语义 Parser、To-SQL 都有交互。其中,中间结果层定义了一套规范,使得语义结果保持了对底层 SQL 的独立。
例如,用户在 2020.8.10 提问"过去 7 天哪个来源的用户数最多?",翻译出的中间结果如下:
△图 5
由于底层查询及结果返回都复用了现有分析系统,结果展示还是可以采用用户熟悉的图表形式。当然如果从简单概要角度来讲,也可以结合 NLG 建立起自然语言概述性结果。
03 核心功能的智能助手
在数据分析系统中,核心功能往往具有一定的使用门槛,如何帮助用户更方便的使用核心功能,是增强分析要解决的问题,在产品层面通常以智能助手的形式落地。由于系统功能各有不同,这一块在实现上也是各有差异。我们通过把核心功能的输出抽象为目标事件,概括了整个处理逻辑,如图 6 所示,将业务内容(包括业务目标、文本内容、业务标签等)和对应的用户行为融合起来,抽取特征,结合已有标注集建立起模型,产出候选事件后进行排序输出到业务端。
△图 6
这里以百度统计分析云的埋点助手功能为例,分析云提供了 JS API 和可视化圈选两种设置自定义事件的方式,特别是可视化圈选可以直接从页面中所见即所得的选出目标事件。那么在业务上要圈出哪些值得关注的目标事件呢?为了更好的帮助客户来理解这一点,分析云提供了 AI 推荐事件的能力。通过对用户点击行为建模,找出跟业务相关的自定义事件给客户参考,如图 7 所示。
△图 7
04 业务洞察及建议
如何给出业务洞察及建议,也是增强分析重点关注的点。这里业务洞察要解决的问题主要有两种类型:1)用户对问题有明确需求,至少是有一定感知的,比如流量发生下降想要知道背后的原因,或者影响营收的关键因素是什么、其中哪些是趋势变好的因素。2)用户并不明确要解决的问题,需要通过数据驱动方式发现一些有用的结论,比如用户想要对网站结构进行优化,但并不清楚具体问题在哪里、潜在优化点在哪。
图 8 是 ThoughtSpot SpotIQ 的一个产品示例,用户输入关心的内容,系统从多个维度展开分析给出相关联的 insight。
△图 8
为了从数据驱动角度出发给出业务洞察,这里我们列举几种典型的从分析型业务点到对应技术点的展开形式(如图 9),其中业务点抽象为业务指标、业务项、业务行为等几类。
△图 9
通过这些常用的数据挖掘手段,可以对业务指标及行为给出数据层面的结果,但这里的难点在于如何将这样的数据结果转换为业务结论,特别是有可解释性、对业务有指导意义的结论。我们知道,单纯的依赖"数据共现"得到的结果,可能只是一种巧合或表象,如果不能落到业务逻辑上,那么这种数据现象并不具有实际意义。
一个有用的技术是构建业务知识结构,将业务实体间的关系约束在业务逻辑范围内。如图 10 所示,在百度统计的渠道来源范围内,我们可以构建这样的关系结构,只有相互间有业务含义的节点才会被连接起来,比如"直接访问"不会跟"搜索词"有直接联系。这样一方面可以"疏远"没有关系或关系较远的节点,另一方面也可以在现有数据结果基础上沿着关系边进行推理或扩展。从更深层的角度来看,这是在增强分析背景下,把统计学习和符号主义结合起来使用。
△图 10
05 总结
基于自然语言的分析接口、核心功能的智能助手、业务洞察及建议,是我们认为增强分析在实际业务中的三个主要方面。目前增强分析还处于起步阶段,可以预见,随着企业积累越来越多的数据资产,其作用也会越来越突出。作为一个新兴方向,无论是技术实现还是业务场景,都还有很多值得探讨的地方。
——————————END——————————
参考文献:
[1]www.gartner.com/en/information-technology/glossary/augmented-analytics
[2]Augmented Analytics Is the Future of Data and Analytics
[3]Analyza: Exploring Data with Conversation
[4]Seq2SQL: Generating Structured Queries from Natural Language using Reinforcement Learning
[5]ThoughtSpot SpotIQ AI-Driven Analytics Whitepaper
推荐阅读:
评论