Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

青峰作者

电商搜索算法技术的演进

青峰老师带你回顾搜索算法技术的发展之路。

作者简介:青峰,搜索推荐算法技术负责人,阿里巴巴研究员

一 、淘宝搜索的一些特点

淘宝有几十亿商品,挂靠在几千个叶子类目,上百个一级类目,十几个行业下面。如何能让用户找到符合意图的商品,是淘宝搜索需要解决的首要问题。

淘宝搜索从大的架构或流程上来说,与传统的搜索引擎有不少相似的地方。包括对数据的整理、分析、索引产生索引库,如何根据用户输入的关键词在索引倒排表中进行检索,完成商品与检索之间的相关度评价,对将要输出的结果进行排序,并实现某种用户相关性反馈机制等。

当然作为电商的商品搜索来说,它天然的商业属性带来的更多是自身独特的技术特点。

从数据更新角度来看,淘宝的数据变化和更新非常快。每天大量的新商品数据被上传到网站,一旦新商品被上传,这个商品就需要被搜索到。不像网页搜索,任何人可以发布新的网页,但是否被搜索引擎收录是另一回事。同时在淘宝每天有大量的商品不停地在做更新,包括商品标题描述的变化,商品价格的改变,商品图片的更新,商品的上下架等等,这些变化也需要实时的更新到搜索中,以便让用户及时找到更新后的商品信息。而在全网搜索中,很多网页是静态不变,网页之间的相互关系也变化缓慢,大量索引的更新没有类似淘宝搜索这种实时性的需求。

从搜索数据源来看,淘宝商品的图片在用户研究和购买过程中起到了很大作用,搜索的展现结果中有很大一部分被图片所占据。如何更有效地利用图片的信息,无论是根据图片来做检索,或是考虑图片的质量,图片与文本的相互关系等都是淘宝搜索需要考虑和处理的。

另外一个特点是全链路特性。搜索,比较以及购买都发生在淘宝站内,不像一般的全网搜索引擎,用户搜索完后就跳离到其它网站,搜索前和搜索后的用户行数据是很难拿到的。而在淘宝搜索,用户搜索完后,会点击其中一些商品,然后比较这些商品,和卖家进行沟通,然后下单购买,或者返回来继续搜索,搜索前,搜索中和搜索后的数据和信息非常丰富,有全链路的用户行为数据能帮助我们设计一个更好的搜索排序算法

最后更重要的一点淘宝是一个生态系统。而搜索排序算法的设计不只是体现了搜索本身的技术追求,也包含了更多的商业诉求。在全网搜索中,一般的网页是不是被索引,被索引后是不是能展现,对网页的拥有者来说并不是一个事关生活的决定点。在淘宝上则完全不同,很多商家依赖于淘宝来解决民生就业问题,网店的流量以及成交关系到很多人的生活。在淘宝搜索的算法设计中,既要考虑用户的搜索体验,也要考虑商业规则来保障公平性和流量的分散性。很多的搜索算法原理,规则或算法结果都会向卖家宣导,引导卖家向更好的方向发展。

二、搜索算法技术演进

作为淘宝海量消费者与平台的互动行为,大量商家在平台进行的商业活动的最主要承载者,淘宝搜索是大数据智能化应用的最佳场景;在淘宝搜索算法多年的发展过程中,依托于工程架构体系的逐步完善,逐步实现从简单人工运营加简单算法规则的时代,到形成完整的离线在线与实时的深度学习与智能决策体系,成为阿里电商平台流量分发与商业驱动的智能中枢,总结搜索算法技术的迭代进步,大概可以分成如下四个阶段:

2.1检索时代

这个阶段和业务相对应,搜索排序主要围绕规则和轮播展开。这个阶段数据量和用户量还处于可控程度,具有领域知识的专业运营和产品往往充当信息展示规则的制定者,根据主观的判断和对市场的敏锐度来制定查询词背后的商品展示逻辑。当然这个阶段搜索也会运用一些基本的算法逻辑来保证信息匹配的正确性和人货匹配的公平性,基于传统搜索引擎技术的相关性模型,保证用户查询词语商品标题的有效匹配;基于商品成交与否的销售人气模型,保证有助于被消费者接受的商品得到更多的展示机会。

但总体来说还是基于人工规则把各种相关因子进行组合,得出最后的排序。“人工规则”的好处是容易理解和操控,坏处则不言而喻,随着平台规模的增大,简单规则无法精细的表达人货匹配的效率,并且容易被一些不良商家利用规则来扰乱市场秩序;

2.2大规模机器学习时代

随着平台规模的扩大,大规模商家入驻,积极地在平台上打理店铺,发布商品,相对结构化的商品组织体系,类目结构,属性信息,基于商品为key 的销量的累积,评论的累积,这些为更好地理解商品积累了重要的原始数据资料;消费者通过搜索产品的各级页面与平台的互动越来越频繁;数据的组织形成了以人为key 的结构体系,反馈信号也得以在闭环系统中有效的流转;所有的这些都为理解用户积累了重要的数据资料。

有效数据的积累为大规模运用机器学习技术解决问题提供了必要的土壤。搜索也进入到各种大规模模型的研究和开发,比如点击预估模型等,研究数据特征规模大、特征复杂度高、数据时效性高、模型训练频繁等相关的问题,利用不断增强的计算处理能力,对百万乃至十亿量级以上的超大规模数据进行分析和挖掘。这时候参与排序的因子也越来越多,从一开始的类目相关性与文本相关性,商品人气分;再后来为了平衡卖家流量,加入的卖家分;再后来为了更好的用户体验,加入了个性化人与商品的点击预估,图像质量等因素等等,开始使用类似Learning to Rank(LTR)方法,根据商品的点击、成交数据构造学习样本,学习回归出排序权重

2.3大规模实时在线学习时代

首先,相比通用搜索,电商搜索中对于实时计算/学习有着更高的要求,用户会有着更丰富的多维度的交互,更长的浏览链路。因此,如果用户在链路前期的行为可以实时地被系统捕捉并且建模到引擎中并且作用于链路后期,对整个链路的效率以及用户体验都是及其关键的。

其次,用户的行为分布也不是一成不变的,从而打破离线训练的监督学习算法所依赖的独立同分布假设,尤其是在双11这样的大促场景,一天的流量和日常数天的相当,分布变化会更加的剧烈。

最后,由于搜索展示商品的有限,能够进入日志系统得到用户反馈的商品集合只占商品全集的一部分,因此离线训练和线上会有不一致性,这个不一致性在一定程度上可以通过在线学习系统缓解。

于是,我们建设了一套实时计算和在线学习系统,支持在秒级别内对海量用户行为及其相关联的海量商品作实时分析处理,从中提取多维度的用户/商品数据特征,并采用分布式Parameter Server架构进行在线学习,从而使用户行为可以在几秒内影响搜索排序等在线服务。

我们逐步实现了“实时特征”->“实时排序因子模型”->“实时顶层LTR/Bandit模型”,完成了三位一体的实时化建设。我们先后实现了秒级更新的基于pointwise的FTRL、基于pairwise的实时矩阵分解模型和实时双线性模型等一系列微观特征,并在此基础之上实现了实时Learning to rank,以及实时Multi-Armed Bandit等宏观调控模型,实现了双链路实时系统的升级。

与此同时,在线学习系统强有力地支持了对流量的精准调控,可以更迅速有效地实现商业决策。此外,我们还将在线学习的算法部分抽象出来,建立了一个通用的一站式在线机器学习算法平台AOP(Algorithm One-stop Platform),使得建立和部署在线学习模型更加得便捷和高效,同时具有高度可扩展性。到目前为止,在线学习系统已经成为搜索架构中的基础组件之一,在提升用户搜索体验,支持商业决策,以及支撑双11等大促效果方面发挥了巨大作用。

2.4深度学习与智能决策时代

深度学习强化学习为代表的人工智能给搜索技术带来了全新的变化,特别是在语义搜索,搜索个性化和智能决策三个方向。

在语义搜索领域,我们设计并实现了Query表征学习框架,通过多任务学习和协同训练等技术,为Query的打标、类目预测、改写以及推荐等一系列应用提供统一的表征向量。与此同时,我们还实现了商品的表征学习框架,为商品内容理解,商品智能创意,商品语义召回和语义匹配提供统一的商品表征。在Query和商品的表征框架基础之上,我们实现了语义召回和语义相似度模型,从而完成了从字面匹配到语义匹配的这一质的突变。此外,语义搜索除了增加搜索结果相关性,提升用户体验外,也可以一定程度上遏制淘宝商品标题堆砌热门关键词的问题。

在搜索个性化领域,我们通过多项技术对原先的个性化系统进行了升级:通过多任务学习的深度用户感知模型,我们可以从海量用户行为日志中学习用户的通用表达,从而用于用户行为识别、偏好预估、个性化召回、个性化排序等任务;通过多模态融合学习,我们可以将商品的文本、图像、标签、品牌、类目、店铺及统计特征等多维度特征自动的融合在一起形成统一的商品表征;通过在线深度排序学习,我们融合了用户状态实现更加精准的千人千面的排序模型;通过向量召回引擎,我们得到了泛化更好的召回结果,有效提升了关键字和个性化匹配深度;通过深度迁移学习,我们将搜索个性化技术在搜索之外的多个场景得到广泛应用。随着这些深度模型在个性化领域的广泛使用,个性化系统的精准度得到了显著性的提升。

在智能决策领域,我们针对用户在搜索过程中和引擎的交互特点,对用户的决策序列进行建模,提出了提出搜索会话马尔科夫决策过程模型,将强化学习引导到搜索排序。同时在针对不同场景下搜索结果趋同,浪费曝光问题,我们提出了基于多智能体协同学习实现了搜索多个异构场景间的环境感知、场景通信、单独决策和联合学习,实现联合收益最大化,而不是此消彼长。

经过了“检索时代->大规模机器学习时代->大规模实时在线学习时代->深度学习与智能决策时代”这4个历史阶段的耕耘和积累,我们逐渐形成了今天的搜索算法排序体系(如下图)。

三、未来发展:认知智能的探索

如上所示,经过多年的发展,搜索和推荐作为阿里电商两个最大的自然流量入口,已经All in AI,并形成了完整的用户偏好在线学习,流量的精细化匹配,以及基于强化学习等智能决策能力的购物决策体系。

但在这个过程中,搜索排序或者推荐学习到的知识更多都是通过已有的商品标签数据和用户行为数据来获取的,还缺少对商品和用户更深层次的认知,还无法完全理解用户的多元意图表达的真实需求。比如,用户搜索了“性感连衣裙”,可能是想找“去参加晚场party的低胸晚装裙”,也可能是想找“去海边度假的露肩沙滩裙”;用户收藏了“登山鞋”和“拐杖”,可能有“登山装备”的需求,需要发现更多的和登山装备相关的其它品类商品;一个有孩子的爸爸,在暑假刚开始时,挑选“转换接头”,查看“大英博物馆门票”,可能是想带着家人一起“暑期英国亲子游”,需要发现更多相关的其它品类商品。

究其原因,目前人工智能技术特别是以深度学习为代表的模型,在现实应用中快速发展,最主要受益于海量大数据以及大规模计算能力,通过对物理世界的数字化抽象和程式化学习,使得人工智能具备很强的限定知识的获取能力,而很难获得数据之外的知识,就更不用说知识的类比、迁移和推理了。而机器的认知智能,比如自主学习和发现,甚至创造能力才是人工智能的更高境界。当然通用的人工智能还有很多工作要做,但在这个过程中,怎么样首先结合人类知识和机器智能做到初步的认知智能,让淘宝搜索和推荐拥有智慧化的体验是我们目前在探索的方向。

实现认知智能,首先需要我们对用户,商品,卖家等有更深入的认知,系统化的建立起电商领域的认知知识体系。下图展示了我们定义的电商人-货-场三维的认知图谱,由四部分组成,包括用户、场景、类目(淘宝类目/虚拟类目)和商品。这些不同类型的概念构建成了一个异构图,来实现用户-场景-商品的关联以及各维度数据的深刻认知。

图:人-货-场三维组成的电商认知图谱示例

其中场景是商品关系的语义化描述,是用户需求的概念化表示,是连接用户与商品的桥梁。从商品端来看,场景可以理解为一种具有语义解释的商品关系描述,例如同属“中秋送礼”这一个场景的商品具备在中秋节作为礼物的商品属性。从用户端来看,场景可以看作是对用户需求的概念化描述,例如“户外烧烤”、“度假穿搭”等。因此我们也可以说,场景是连接用户与商品的桥梁。这些场景关系既可以是通过行为数据挖掘获得,也可以是行业或专家知识的输入。场景,类目与商品最终组成统一的场景图谱。

有了这样的认知图谱体系后,再通过推理计算识别用户真实场景诉求,就可以逐步实现搜索和推荐的认知智能化。这就涉及到认知智能体系中另一个重要的部分:基于认知图谱的在线图计算与推理引擎。有了计算和推理引擎后就可以实现:在用户需求已有行为表达时,认知用户需求场景,挖掘并满足用户更深层的需求;在用户需求没有行为表达时,根据时间地点、用户图谱等信息,扩展和激发用户需求;同时根据线上投放数据和用户反馈,优化认知图谱的场景挖掘和建设,持续不断修正和发现场景,提升推理能力。

认知图谱和在线图计算与推理引擎的背后,一方面是一系列我们已经有沉淀和积累的技术的深度应用,包括知识表示存储与推理、信息检索自然语言处理等一些传统技术;另一方面,认知图谱可以和深度学习强化学习等近年来取得突破性进展的技术进行深度融合,例如实体和关系的向量化表示(embedding),使得实体的检索和关系的推理从离散走向连续;认知图谱作为优化约束同现有的深度监督网络进行融合,将领域知识更加平滑的应用到模型中,而不是简单的规则生效;知识的推理过程中引入序列决策过程建模,使用强化学习减少搜索空间以加速推理过程等等。

有了认知图谱和在线推理引擎之后,在全域的搜索推荐导购、智能交互和内容生成等各领域上,都会发生各种精妙的化学反应,并且在认知应用过程中,根据用户对认知推理结果的反馈,系统持续迭代优化的认知图谱以及推理算法,从而提升认知计算能力。逐渐地,我们可以建设完成具备自学习能力、推理能力和验证能力的全方位的电商认知智能化体系。

四 、小结

搜索推荐算法多年的发展,就是围绕着商品与人的连接以及相应的商业诉求,从最初简单的统计模型机器学习到形成完整的离线在线与实时的深度学习与智能决策体系,不断突破自我,让连接匹配的质量更高,连接的广度更宽,同时通过机制设计促进整个商业和生态的健康发展,成为整个新商业发展的引擎驱动。站在今天总结过去的算法演进,看未来电商搜索推荐算法的发展,期待从机器智能到如何结合机器智能与人类智能做到真正的认知智能实现搜索推荐新的交互和新的体验。

阿里技术
阿里技术

分享阿里巴巴的技术创新、实战案例、经验总结,内容同步于微信公众号“阿里技术”。

专栏二维码
理论排序算法深度学习机器学习监督学习强化学习迁移学习NLP
4
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

排序算法技术

排序算法是将一串数据依照特定排序方式进行排列的算法,最常用到的排序方式是数值顺序以及字典顺序。基本上,排序算法的输出必须遵守下列两个原则:输出结果为递增序列(递增是针对所需的排序顺序而言);输出结果是原输入的一种排列、或是重组。

机器学习排序技术

排序学习可以是监督,半监督或强化学习,用于构建信息检索系统的排名模型。训练数据通常为包含部分排序信息的列表,该排序通常表示为对每个物体都使用一个数字或序号表示的分数,或者是二元判断(相关或不相关)。排序模型的最终目的是得到可靠的排序,即便列表中的物体未曾出现过。常用的排序学习方法主要有:逐个的(PointWise),逐对的(PairWise)和逐列的(ListWise)。

信息检索技术

信息检索(IR)是基于用于查询检索信息的任务。流行的信息检索模型包括布尔模型、向量空间模型、概率模型和语言模型。信息检索最典型和最常见的应用是搜索引擎。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

感知技术

知觉或感知是外界刺激作用于感官时,脑对外界的整体的看法和理解,为我们对外界的感官信息进行组织和解释。在认知科学中,也可看作一组程序,包括获取信息、理解信息、筛选信息、组织信息。与感觉不同,知觉反映的是由对象的各样属性及关系构成的整体。

人工智能技术

在学术研究领域,人工智能通常指能够感知周围环境并采取行动以实现最优的可能结果的智能体(intelligent agent)

统计模型技术

统计模型[stochasticmodel;statisticmodel;probabilitymodel]指以概率论为基础,采用数学统计方法建立的模型。有些过程无法用理论分析方法导出其模型,但可通过试验测定数据,经过数理统计法求得各变量之间的函数关系,称为统计模型。常用的数理统计分析方法有最大事后概率估算法、最大似然率辨识法等。常用的统计模型有一般线性模型、广义线性模型和混合模型。统计模型的意义在对大量随机事件的规律性做推断时仍然具有统计性,因而称为统计推断。常用的统计模型软件有SPSS、SAS、Stata、SPLM、Epi-Info、Statistica等。

表征学习技术

在机器学习领域,表征学习(或特征学习)是一种将原始数据转换成为能够被机器学习有效开发的一种技术的集合。在特征学习算法出现之前,机器学习研究人员需要利用手动特征工程(manual feature learning)等技术从原始数据的领域知识(domain knowledge)建立特征,然后再部署相关的机器学习算法。虽然手动特征工程对于应用机器学习很有效,但它同时也是很困难、很昂贵、很耗时、并依赖于强大专业知识。特征学习弥补了这一点,它使得机器不仅能学习到数据的特征,并能利用这些特征来完成一个具体的任务。

数据挖掘技术

数据挖掘(英语:data mining)是一个跨学科的计算机科学分支 它是用人工智能、机器学习、统计学和数据库的交叉方法在相對較大型的数据集中发现模式的计算过程。 数据挖掘过程的总体目标是从一个数据集中提取信息,并将其转换成可理解的结构,以进一步使用。

监督学习技术

监督式学习(Supervised learning),是机器学习中的一个方法,可以由标记好的训练集中学到或建立一个模式(函数 / learning model),并依此模式推测新的实例。训练集是由一系列的训练范例组成,每个训练范例则由输入对象(通常是向量)和预期输出所组成。函数的输出可以是一个连续的值(称为回归分析),或是预测一个分类标签(称作分类)。

逻辑技术

人工智能领域用逻辑来理解智能推理问题;它可以提供用于分析编程语言的技术,也可用作分析、表征知识或编程的工具。目前人们常用的逻辑分支有命题逻辑(Propositional Logic )以及一阶逻辑(FOL)等谓词逻辑。

大数据技术技术

大数据,又称为巨量资料,指的是传统数据处理应用软件不足以处理它们的大或复杂的数据集的术语。

迁移学习技术

迁移学习是一种机器学习方法,就是把为任务 A 开发的模型作为初始点,重新使用在为任务 B 开发模型的过程中。迁移学习是通过从已学习的相关任务中转移知识来改进学习的新任务,虽然大多数机器学习算法都是为了解决单个任务而设计的,但是促进迁移学习的算法的开发是机器学习社区持续关注的话题。 迁移学习对人类来说很常见,例如,我们可能会发现学习识别苹果可能有助于识别梨,或者学习弹奏电子琴可能有助于学习钢琴。

查询技术

一般来说,查询是询问的一种形式。它在不同的学科里涵义有所不同。在信息检索领域,查询指的是数据库和信息系统对信息检索的精确要求

自然语言处理技术

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

推理引擎技术

推理机是实施问题求解的核心执行机构,常见于专家系统。它是对知识进行解释的程序,根据知识的语义,对按一定策略找到的知识进行解释执行,并把结果记录到动态库的适当空间中去。

多任务学习技术

强化学习技术

强化学习是一种试错方法,其目标是让软件智能体在特定环境中能够采取回报最大化的行为。强化学习在马尔可夫决策过程环境中主要使用的技术是动态规划(Dynamic Programming)。流行的强化学习方法包括自适应动态规划(ADP)、时间差分(TD)学习、状态-动作-回报-状态-动作(SARSA)算法、Q 学习、深度强化学习(DQN);其应用包括下棋类游戏、机器人控制和工作调度等。

推荐文章
暂无评论
暂无评论~