写点什么

云原生时代,推荐引擎架构有哪些挑战

2021 年 9 月 11 日

云原生时代,推荐引擎架构有哪些挑战

在策划 AICon 人工智能与机器学习大会(2021.11.6-7 北京)的时候,首先想到的是推荐广告技术,不管是在工程技术还是在架构方面,也更符合 AI 技术的应用预期。在策划专题之初,我们去拜访了阿里巴巴智能引擎事业部算法平台负责人,阿里妈妈工程技术负责人 张迪(乐迪)老师,一起探讨了关于推荐和搜索的话题。

推荐引擎的核心技术和挑战


这几年整个推荐引擎的演变非常快,推荐引擎里面其实有三个核心的技术,一是召回技术,二是排序技术,三是机制技术,尤其是广告领域,它的机制属性是非常强的。


这三个技术对应到算法和架构上,就涉及到了召回技术,召回技术这几年变化非常多,最早的召回技术无论是搜索还是推荐,它本质上都是基于关键词的召回。搜索则是通过 search 关键词,Query 改写来进行召回。


之后兴起了各种各样的向量召回,更加丰富的把模型信息引入进来,向量化召回的本质是用模型在做匹配,但这个模型计算有很复杂的在线规则,因为在线无法完成大量的模型匹配,所以在线部分只留了一个比较经典的双塔结构,把下面所有的模型计算部分放到离线处理。但这也存在弊端,就是在线计算过于简单,很多个性化的东西会丢失,这也催生出新兴的技术,把越来越多的计算处理在线化,后来又出现像全库检索这样的技术,所以整个在线召回架构变化非常大。


在线 Ranking,这是在线里面最核心的一部分,随着模型的发展,计算量越来越大,如何支撑这种越来越大规模的在线 Ranking 计算,也是一个非常大的挑战。


而前面提到的机制,也正在往模型化的方向发展。以强化学习为例,推荐结构中推荐引擎的发展,和算法是一致的,算法越来越复杂的同时,给在线架构和计算量带来了非常多的挑战,对应衍生出了非常多的技术。

推荐引擎 & 云原生


关于推荐引擎,在整个容量管理和自动化偏向云原生,云原生其实是一个大的概念,但整体上它代表着更好的、越来越 Serverless 化,越来越多的业务的开发,和底层的分布式架构解藕带来了研发效率的提升,随着容量自动扩容,这个技术的影响力也越来越广泛。


另外,AI 算力的演化,召回的算力越来越强,Ranking 的算力越来越强,带来了整个架构上的挑战。举个例子,前几年兴起的超大规模模型的 server 问题,TB 级模型 server 问题,规模大意味着网络宽,而往深了探索,就要在单个芯片上把挖掘和编译优化做的越来越好,在离线都面临这样的问题。


分布式模型训练这个方向,仍然是非常重要的问题,如何把模型训练的更高效?除了把 SQL 做的越来越好之外,还有一个方向就是这几年百度、阿里、英伟达也在做的事情,就是用类似于 GPU pod 或者 AI 芯片 pod 来训练推荐模型,还是非常创新的,这是整个 Training 方向。在 Training 之上,其实有很多有意思的训练方式,就是训练的创新模型,比较经典的是前几年的 Graph Learning,还有联邦学习、双曲空间、Online Learning 都有很广的应用。


关于搜索引擎,整体上的趋势是越来越推荐化,搜索最大的特点是有个关键词,它基于关键词约束去做 Query,这是它最大的不同,但是现在越来越多的是把推荐的技术放进去,逐渐用算法的形式,然后不在关键词的约束下,在一个基本的相关性约束下去做推荐。

活动推荐:


除了上面聊到的一些技术演变之外,我们还讨论了在 AICon 会议上该如何将异构计算、推荐算法、沉浸事推荐多阶段排序技术结合业务场景来展示给听众,目前这些话题已经上线至官网了,感兴趣的可以移步至官网了解。


此外,AICon 还将围绕人工智能、通用机器学习、计算机视觉、智能金融技术、AI 团队建设、自动驾驶技术、NLP 技术、大规模机器学习等多个话题展开讨论,精彩内容持续上线中。

2021 年 9 月 11 日 13:0016

评论

发布
暂无评论
发现更多内容

Redis核心原理与实践--列表实现原理之ziplist结构

binecy

redis 源码分析

服务注册与发现的原理和实现

万俊峰Kevin

微服务 服务注册与发现 microservice 服务发现 Go 语言

模块8作业

gevin

架构实战营

性能测试中集合点和多阶段问题初探

FunTester

性能测试 接口测试 测试框架 测试开发 FunTester

Mybatis Plus 的 @SqlParser 的说明与替代注解

玄兴梦影

注解 过滤器 Mybatis-Plus

【Flutter 专题】49 图解 Flutter 与 Android 原生交互

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 9 月日更

Vue进阶(幺零八):npm run build 错误 (node:7852) UnhandledPromiseRejectionWarning: CssSyntaxError:xxxx. 解决分析

No Silver Bullet

Vue 九月日更

不同 GC 和 堆内存总结

学个球

JVM 垃圾回收机制 垃圾回收算法 垃圾回收器

Scrum Patterns:冲刺目标(译)

Bruce Talk

敏捷 译文 Agile Scrum Patterns

【LeetCode】有效的括号字符串Java题解

HQ数字卡

算法 LeetCode 9月日更

三分钟带你入门-redis-高可用架构之哨兵,大厂Java高级面试题汇总解答

程序猿一枚

Java 程序员 后端

谷歌工程师是怎么写工程设计文档的?

俞凡

Google

Context 和 struct

Rayjun

go struct Context

写给互联网工程师的5G书 | 0. 前言

俞凡

架构 5G

深入了解QueryDSL

邱学喆

type Configuration Expression SqlSerializer visitor

攀岩时代:HMS Core 6.0与移动开发之路

脑极体

双指针算法之同向双指针

泽睿

数据结构 双指针算法 算法面试 Java’

科技的进步会造福人类吗--闲聊科幻

姬翔

九月日更

OpenSL ES

Changing Lin

9 月日更

深入理解Java中的不可变对象,这可能是目前最全的

程序猿一枚

Java 程序员 后端

计算机操作系统学习笔记 | 操作系统特征

Regan Yue

学习笔记 操作系统 9月日更 9 月日更

一名优秀的技术Leader是如何炼成的?

架构精进之路

管理 技术管理 引航计划 内容合集

写给互联网工程师的5G书 | 1. 简介

俞凡

架构 5G

深入理解Java中的不可变对象(1),面试加分项

程序猿一枚

Java 程序员 后端

深入理解Java虚拟机-虚拟机执行子系统,字节跳动超高难度三面java程序员面经

程序猿一枚

Java 程序员 后端

深入理解JAVA虚拟机原理之垃圾回收器机制(一),Java开发6年了

程序猿一枚

Java 程序员 后端

Kubernetes环境Traefik部署与应用

Galen Suen

Kubernetes Helm Traefik

深入理解 Java 多线程核心知识:跳槽面试必备,Java算法基础面试题

程序猿一枚

Java 程序员 后端

架构实战营 模块八作业

孫影

架构实战营 #架构实战营

区块链,不是元宇宙的全部

CECBC区块链专委会

区块链不是用来解决现实社会问题 而是为了建立一个全新的平行世界而生

CECBC区块链专委会

云原生时代,推荐引擎架构有哪些挑战-InfoQ