在担任 Uber CTO 的七年间,他带领这家国际共享出行巨头在广阔的运输网络背景下,开发了革命性技术。在 Uber,他的领导力和远见卓识极大促进了 Uber 技术基础的建设,使其共享乘车次数从每年的 1000 万余次增长到每年近 70 亿次,并辐射达 800 个城市。
Pham 正是因善于推动公司变革性的成长和扩张而享有盛誉,而正处于持续迅速扩张期的 Coupang 可以吸引到 Pham 的加入,也在情理之中。目前,消费者每年通过 Coupang 的免费火箭配送服务(承诺 24 小时内送达),收到的订单数量高达数亿份。对于那些想在第二天一早或当天就能收到商品的消费者而言,使用 Coupang 的 Dawn Delivery 服务就可以满足。这项服务如今可以在全国范围内使用,消费者凌晨下单,第二天早上 7 点前就能收到商品了。
但 Coupang 并未满足于速度的提升,还在不断拓展着全新的客户服务。韩国最大的在线生鲜电商业务 Rocket Fresh(火箭生鲜)和后来居上的外卖配送业务 Coupang Eats 都是 Coupang 持续创新的“杰作”。
Pham 说,“ Coupang 每天都在重塑顾客的期望。我在其他地方没有见到过像 Rocket Delivery 和 Dawn Delivery 这样的服务,但是 Coupang 的顾客都已习以为常。我们曾看到有些公司用技术改变人们的出行、购物或消费娱乐方式,但 Coupang 正在改变人们的生活方式。创造顾客期望的服务新模式是划时代的机遇之一。能够为这一非凡的愿景做出贡献,我感到非常兴奋。”
其实,支撑 Coupang 重塑顾客期望的是其背后强大的技术实力。搜索是顾客开启 Coupang 之旅的最主要入口,搜索体验也成为其满足并创造顾客期望的关键。与传统的 Google 的网络搜索引擎将关联性视为最重要因素不同,以 Coupang 为代表的电商搜索引擎的目的在于根据用户的搜索关键字,为其提供最佳商品。包括相关度、评级、评论、价格、品牌等因素都会影响搜索的数据检索和排名。Coupang 高级副总裁 Hui Xu 带领搜索研发团队,不断探索搜索领域的新技术。
这样的搜索引擎背后,藏着哪些不一样的技术原理和奥秘呢?本文将为你一一解答。
索引平台,Coupang 搜索引擎的“关键先生”
搜索引擎在接收搜索请求后,为了找到最佳结果,通过会进行以下三个步骤:
索引平台提供搜索引擎所需的所有数据,以进行检索和排名。它将所有源数据合并,并为搜索引擎生成搜索索引。
为了改善此前的搜索体验,排名算法成为“关键先生”。因此,一个成功的搜索平台应支持基于排名算法的快速迭代。而排名开发人员构建新排名算法的第一个挑战,就是在哪里可以找到所需的数据,并如何从这些商品数据和顾客行为数据中轻松得出排序特征。索引平台成为了实现这一切的基础,它能提供检索和排名所需的所有数据的搜索引擎。
索引平台是一个可扩展的平台,它从不同的 ground truth 数据表中收集数据,对由商品 / 查询键入的数据进行反规格化处理,并由此建立搜索引擎索引。与此同时,它还应为排名开发人员提供一个框架,使他们更容易开发 ranking signal。
萌芽起步:索引平台(0.1)的诞生
在早期阶段,Coupang 上只有少量的商品。大多数 ground truth 数据都在关系型数据库中,例如价格、品牌、类别等。索引平台的第一个版本是利用关系型数据库的 sql 引擎,通过商品关键信息(product key)来连接多个表,并将它们合并到一个反规格化表中。然后,它将来自反规格化表的数据传到在线服务搜索集群中以动态创建索引。现在,搜索引擎已经能够根据商品的文本信息和一些简单 signal 的基本排名提供基本检索。但随着商品数量的快速增长,出现了包括索引时间很长,服务不稳定等诸多问题:
成长扩张:索引平台(1.0)的重构
随着 Coupang 商品数量的迅速增长,以至于索引平台此前的设计已无法支撑其运行。于是,Coupang 决定重构整个系统,创建一个可以轻松扩展的真实分布式平台。新系统基于 Hadoop 构建,Hadoop 是一个被广泛应用的处理分布式数据的开源平台。由于关系型数据库是瓶颈,因此所有基础真实 (ground truth) 数据都从关系型数据库复制到了 Hive,也就是 Hadoop 中的数据 warehouse。
同时,Ranking signal 也被生成为 Hive 表。现在用于构建搜索索引的所有必需数据都储存在了 Hadoop 平台中。索引合并器是一个将所有这些数据合并到 ProductJoin 的 Spark job。而 ProductJoin 是一个 protobuf 结构,包含有关商品的所有内容,之后合并的数据存储在了 Hbase 中。
下一步,索引生成器将作为另一个 Spark job,它从 Hbase 中消费了 ProductJoin,生成了搜索索引并将其存储在 S3 中。在线服务集群将直接从 S3 下载索引展开服务。该索引仅创建一次,并且可以被所有副本使用。
对于查询数据,Coupang 还建立了类似的 pipeline,以更好地支持查询理解服务。
成长扩张:索引平台(1.0)的重构
创新迭代: 索引平台(2.0)的完善
尽管索引平台 1.0 已经是一个成功的平台,解决了性能和扩展性上的问题。但索引平台的另一大任务是减轻 Ranking 开发人员的工作,释放他们在构建 Ranking signal 时的生产力。而索引平台 1.0 并没有为开发人员提供任何助力,帮助他们更快地构建 Signal。新手 Ranking 开发人员可能需要花费数周的时间建立新 Signal 并进行实验。因为 Ranking 开发人员需要花费大量时间查找数据源,处理数据 pipeline,并安排 workflow。
迭代后的索引平台 2.0 可以让每个 Ranking 开发人员使用索引总线(Indexing Bus),并且能使他们真正专注于 Signal 的逻辑,而不必担心数据源、数据 pipepline 和 workflow 的安排。
索引平台 2.0 的主要变化在于大多数 signal 是在平台中生成的,而在索引平台 1.0 中则需要在外部 Hive 表中合并 signal。在索引平台 2.0 中,所有 ground truth 数据都将通过 Ground Truth Merger 合并在一起,并通过 Session Long Parser 解析和合并所有顾客行为。它们都是易于扩展的 Spark job。
而 ProductJoiner 和 QueryJoiner 负责根据 ground truth 数据和会话日志导出所有 Signal。该框架的优点在于 ProductJoin 和 QueryJoin 之间存在一个闭环。这使得简单的 Signal 有可能演变成强大的 Signal,例如价格在 product join 中是 ground truth 数据。在构建 query join 时,可以使用每个 product join 的价格信息来构建查询价格分布,然后就能根据商品价格和查询价格分布构建一个 Signal,用来提升 / 降低商品。这样在 Ranking 中,简单的价格便成为了一个强大的 Signal。
首先加载所有源数据,包括 ground truth 数据和已解析的会话日志 。其次在查询级别和商品查询级别生成内置的聚合原始顾客行为数据,例如曝光量、点击数、购买数、收益。再次处理所有 Signal 处理器,生成 Signal。最后将 QueryJoin 和所有 Signal 存储到 Hbase。
从效率的角度来看,以前创建一个新的 Signal,从解析原始日志到创建 signal,需要建立一个完整的 pipeline。通常,生成一个新 Signal 需要许多 Hive 查询 /Spark job,要花费数小时。而 Coupang 有大约 70 条这样的 pipeline,维护它们几乎是一场灾难,造成了巨大的资源浪费。在索引平台 2.0 中,解析日志和生成原始 Signal 的功能是一体的且由平台自身提供的,添加新 Signal 只需实现一个 Class 并添加一些逻辑来处理在新平台上几乎免费的数据。
综上,通过索引平台 2.0,可以实现:
由此不难看出,索引平台已经成为 Coupang 业务的核心大脑。而关于索引平台的迭代与升级并没有结束,这仅仅是个开始!在 Product 和 Query 之间建立关系,只是平台的第一步。未来,Coupang 将在顾客、商品、查询、品类、品牌等之间建立类似的关系,并应用于推荐、广告等其它业务中。
除了索引平台技术的持续进化对业务带来的增益,Coupang 还与京东一起联动,以庆祝“11.11”这个全球最大电商狂欢节。此次进行的限定 3 日活动中,韩国消费者可以在 Coupang 上以超优惠的价格购买京东网站上实际销售的全球各品牌商品。
在 Coupang,韩国消费者可以通过 Coupang 便捷的购买与结算系统,无需经历复杂而困难的海淘过程,就能直接轻松购买海外商品。所购商品无论重量,体积,数量,一律包邮。配送速度也较以往提升了许多,通常需花费 2~3 周时间的配送,通过中国当地京东的物流仓库,预计可以直接缩短至 5~7 天内完成。
Coupang 高级总监乔纳森·巴克斯(Jonathan Burks)表示:“我们与中国领先的在线购物商城京东举行合作促销活动,是为了让 Coupang 的顾客也能体验中国最大的购物节光棍节的优惠活动“。他还说“今后我们将推出更多的商品,更多样化的优惠活动,让韩国消费者可以轻松购买国际品牌乃至来自海外各国的优质商品。”
技术的价值,莫过于此。