“百度一下”背后:深度学习技术的最新应用
作为全球最大的中文搜索引擎,“百度一下,你就知道”你一定不陌生。但你是否知道,看似简单的搜索框,背后蕴含了大量人工智能的前沿核心技术?
近几年来,作为人工智能的核心技术,深度学习在图像、语音、自然语言处理等领域取得了大量关键性突破。作为AI落地的典型场景,在百度搜索系统中,深度学习技术得到了深入应用。
现状和挑战
2013年,百度搜索成功上线基于海量用户反馈数据的SimNet-BOW语义匹配模型,实现了文本语义匹配特征的自动化提取,这也是深度学习技术首次成功应用于工业级搜索引擎中。
此后,深度学习模型作为百度搜索智能化的核心驱动力得到不断完善。百度在数据特性、索引对象建模、模型结构等方面做了大量深入研究,先后自主研发并上线了SimNet-CNN、多域BOW、SimNet-RNN等多个模型,大幅提升了长冷搜索的排序效果。
然而,之前的工作存在两个主要问题。首先,已有模型建模搜索词和索引对象标题、锚文本之间的语义匹配,缺乏对索引对象内容的充分建模。其次,搜索词向量和索引对象向量之间的交互较多发生在模型的表层,丢失了很多匹配细节信息。这两个问题导致了建模不充分,影响语义匹配模型的整体效果。
解决这两个问题面临很大的挑战。一方面,已成功应用的模型多针对短文本进行建模,在长文本方面直接应用效果并不理想。另一方面,对长文本进行在线计算、增加更多的匹配细节信息会导致模型运算量急剧提升,这对系统架构和运算能力是一个非常严峻的考验。
从持续提升用户体验的初心出发,不久前,百度在搜索智能化领域推出两大重量级革新,攻克了上述两个难点。深度学习模型上,百度发布了 Content-Matching-Matrix内容理解模型,首次成功刻画了索引对象内容的语义相关性,提供了语义匹配细节信息;基础架构上,成功研发了Ranking-Service搜索智能化架构,首次将GPU引入大规模搜索引擎在线语义相关性计算中,实现了百度搜索上复杂语义模型的毫秒级运算。
内容理解模型
Content-Matching-Matrix模型最大的特点是引入了索引对象正文。由于正文内容往往很长,Content-Matching-Matrix模型使用了Extractive式自动文摘算法,从索引对象正文中提取出能够涵盖大意的几个段落作为摘要,一定程度上缓解了长文本匹配的非对称问题。
在模型结构上,Content-Matching-Matrix模型采用了一种新的基于语义匹配矩阵的Pooling结构,可以从多个维度刻画搜索词与索引对象的匹配程度。在获取正文摘要之后,综合考虑上下文,构建内容语义匹配矩阵,并利用Pooling的方式获得更大片段的语义匹配信息。随后按照 Term维度进行Topk-Average-Pooling,获得搜索词每个Term的语义匹配信息,并使用 GRU 结构进行序列化建模,选取最后的单元作为Query-Title-Content的最终融合表示。
搜索智能化架构
Ranking-Service搜索智能化架构是让内容语义理解模型从实验室的研究成果落地转化为可在超大规模搜索引擎中实际运行应用的利器。该服务首次在搜索引擎在线架构中大规模使用GPU,使得复杂语义模型在速度要求极高的搜索系统中应用成为可能。目前Ranking-Service每天响应超过亿万网民的信息检索请求。
Ranking-Service中,GPU预测服务通过接入层和调度层实现了多类型请求响应、同类型请求整合,同时可以使得异构资源透明化,提高了系统的灵活性和扩展性。在通过极致优化来尽可能地发挥GPU的超强计算能力之外,这种结合业务特性的架构设计也进一步保证了GPU加速的最大效用。
Ranking-Service使用了百度自行研发的Anakin GPU预测引擎。Anakin上层采用了硬件无关的优化技术,包括计算图融合、资源复用、地址Pre-Mapping等;底层通过汇编级代码优化,精确控制了硬件每一个Clock的行为,具有高吞吐和高效率的卓越性能优势,满足了百度搜索系统线上复杂模型预测严苛的性能要求。
未来展望
内容理解语义模型和Ranking-Service搜索智能化架构的上线是百度搜索引擎在深度学习技术应用上迈出的重要一步,但这仅仅是一个新的开始。借助Ranking-Service的强大计算能力,百度搜索将持续探索内容理解分析技术,并将成果进一步深入应用到排序、自动问答、图像与视频理解等搜索相关领域,给用户带来更优质的搜索体验。
如需转载,请后台留言,遵守转载规范