电商搜索算法技术的演进

标签: | 发表时间:2018-10-02 15:13 | 作者:
出处:https://mp.weixin.qq.com

阿里妹导读:2018年9月28日,阿里电商搜索事业部迎来了一场以“搜·荐未来”为主题的技术峰会。


搜索与推荐算法经过多年的发展,从最初简单的统计模型,机器学习到形成完整的离线在线与实时的深度学习与智能决策体系,每年都有新的算法突破,帮助搜索与推荐的体验与效果取得大幅提升,成为驱动电商商业创新与发展的新引擎。站在今天总结过去的算法演进,同时看未来电商搜索推荐算法的发展,期待从机器智能到结合人类智能做到真正地认知智能,实现搜索推荐新的交互新体验。


今天,我们邀请青峰老师,带你回顾搜索算法技术的发展之路。

 

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


一 、淘宝搜索的一些特点


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


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

  

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


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


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


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


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


二、搜索算法技术演进


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

 

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),使得实体的检索和关系的推理从离散走向连续;认知图谱作为优化约束同现有的深度监督网络进行融合,将领域知识更加平滑的应用到模型中,而不是简单的规则生效;知识的推理过程中引入序列决策过程建模,使用强化学习减少搜索空间以加速推理过程等等。


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

 

四 、小结


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



相关 [电商 搜索 算法] 推荐:

电商搜索算法技术的演进

- -
阿里妹导读:2018年9月28日,阿里电商搜索事业部迎来了一场以“搜·荐未来”为主题的技术峰会. 搜索与推荐算法经过多年的发展,从最初简单的统计模型,机器学习到形成完整的离线在线与实时的深度学习与智能决策体系,每年都有新的算法突破,帮助搜索与推荐的体验与效果取得大幅提升,成为驱动电商商业创新与发展的新引擎.

分布式搜索算法

- - 杨尚川的个人页面
对于搜索引擎来说,索引存放在成千上万台机器上,如何进行分布式搜索呢. 假设搜索结果是以分页的方式显示,以PageNumber代表当前页,从1开始,以PageSize代表页面大小,默认为10,以N代表搜索服务器数量. 最简单的分布式搜索算法为:有一台 合并服务器负责接受用户的搜索请求,然后分别向N台机器获取前PageNumber*PageSize条结果,得到的结果数为N*PageNumber*PageSize,然后把这些数据重新进行排序,根据所要显示的页面PageNumber,获取从(PageNumber - 1) * PageSize + 1开始的PageSize条结果返回给用户.

Google Panda 搜索算法全面上线

- David - GeekPark 捕风捉影
Google宣布针对“内容农场”垃圾网站的Panda算法已经在全球全面上线,所有语言的Google搜索都已经部署上了Panda算法,除了日语、韩语和中文,因为这三个语言的Panda算法还需要继续改进. 对于大多数语言来说,Panda算法会影响到6-9%的搜索结果,其影响比针对英文的Panda算法12%的影响率要低一些.

图像搜索(SIFT算法)组件

- - 行业应用 - ITeye博客
前阵子做图像搜索功能, 对比过一些搜索算法, 发现 sift 比较能满足我的需要, 它在图像旋转, 比例缩放, 图像扭曲的情况下也能有很好的识别效果, 在网上找了一些资料, 有些介绍了算法的细节, 有些做了对比评测. 2013计算机视觉代码合集 - Note of Transposition - 博客频道 - CSDN.NET.

淘宝搜索算法现状

- - 互联网分析
淘宝搜索排序的目的是帮助用户快速的找到需要的商品. 从技术上来说,就是在用户输入关键词匹配到的商品中,把最符合用户需求的商品排到第一位,其它的依次排在后续相应的位置. 为了更好的实现这个目标,算法排序系统基本按三个方面来推进:. 当用户输入关键词进行搜索的时候,系统依据算法模型来给匹配到的每个商品进行实时的计算,并按照分数的大小对商品进行排序.

全文搜索Lucene——之倒排算法

- - 互联网 - ITeye博客
  关系数据库不适合做全文搜索. like '%xxx%'效率很慢,建的索引将无效,查询的时候会像翻书一样一页一页的翻. 返回的结果没有匹配度的概念,比如在所有文章里索引一篇想要的文章,可能是希望搜索的关键词在文章中出现的次数越多越是我想要的结果. 当搜索live的时候,也想把lives/living搜出来,但是数据库很难做到.

淘宝搜索算法现状

- - 博客园_知识库
  淘宝搜索排序的目的是帮助用户快速的找到需要的商品. 从技术上来说,就是在用户输入关键词匹配到的商品中,把最符合用户需求的商品排到第一位,其它的依次排在后续相应的位置. 为了更好的实现这个目标,算法排序系统基本按三个方面来推进:.   当用户输入关键词进行搜索的时候,系统依据算法模型来给匹配到的每个商品进行实时的计算,并按照分数的大小对商品进行排序.

搜索引擎网页去重算法

- - 醉清风
  相关统计数据表明:互联网上近似重复的网页的数量占网页总数量的比例高达29%,完全相同的网页大约占网页总数量的22%.研究表明,在一个大型的信息采集系统中,30%的网页是和另外70%的网页完全重复或近似重复的.     即:互联网的网页中相当高的比例的网页内容是近似相同或完全相同的. 搜索爬虫抓取会产生网页重复的类型:.

搜索引擎链接算法之:HITS算法解析

- - CSDN博客推荐文章
本文节选自《 这就是搜索引擎:核心技术详解》第六章.       HITS算法也是链接分析中非常基础且重要的算法,目前已被Teoma搜索引擎(www.teoma.com)作为链接分析算法在实际中使用. 6.4.1 Hub页面与Authority页面.      Hub页面和Authority页面是HITS算法最基本的两个定义.

[转]排名算法(二)--淘宝搜索排序算法分析

- - 工作笔记
原文:https://blog.csdn.net/u011966339/article/details/78052569 . 淘宝搜索排序的目的是帮助用户快速的找到需要的商品. 从技术上来说,就是在用户输入关键词匹配到的商品中,把最符合用户需求的商品排到第一位,其它的依次排在后续相应的位置. 为了更好的实现这个目标,算法排序系统基本按三个方面来推进:.