一键实现穿衣自由,揭秘淘宝AI试衣间硬核技术,AnalyticDB向量在线召回

本文涉及的产品
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
云原生数据仓库AnalyticDB MySQL版,基础版 8ACU 100GB 1个月
简介: 云原生数据仓库AnalyticDB MySQL为淘宝AI试衣间提供高维向量低延时的在线向量召回检索服务。

随着淘宝的蓬勃发展,网购已经融入日常生活。网购让大家足不出户就能挑选众多品类商品,还能货比N家,但同时网购也会带来一些未知的问题。

相信大家都有线上购买服装的经历吧?在线上挑选的时候,只能根据价格、款式、尺码等信息,选出可能合适的衣服,但是衣服穿上后效果如何?应该怎么搭配更好看?我更适合淑女风还是废土风?毕竟淘宝商家的模特穿啥啥好看。

为了解决上述的痛点,淘宝服饰联合通义实验室XR实验室借助AIGC强大科技力推出了重磅级的产品AI试衣间。

在手机淘宝APP上搜索ifashion,上传自己的照片即可体验AI试衣~

在AI试衣间功能的背后,阿里云瑶池旗下的云原生数据仓库AnalyticDB MySQL提供了高维向量低延时的在线向量召回检索服务,下面将进行介绍。

1. 淘宝AI试衣间-技术揭秘

手淘搜ifashion即可进入线上AI试衣间,由淘宝服饰联合通义实验室XR实验室借助AIGC将人工智能和时尚穿搭相结合。AI试衣间将结合数亿用户的尺码数据和海量的服装图片实现推荐适合自己的穿搭搭配。为了满足要求,从海量的商品素材图片中快速找到需要的图片是一个很重要的基础服务。为了提升召回率,素材图片Embedding后使用多维的向量特征值存储,在线服务需要满足低延时高并发的要求。

云原生数据仓库AnalyticDB MySQL在此场景中提供了以图搜图服务,为试衣间提供满足特定要求的相似性素材图片的服务。AI试衣大模型训练每个模特需要多张不同的模特图,目前用户只供给了一张,我们是把商品详情图文中的图片数据,先通过算法识别把模特上身图抠出来,然后根据用户提供的那一张主图,从商品sku/详情图文库中对抠出的图片集中做相似度检索,按相似度阈值,生成不同的素材图,满足算法模型训练的图片数据供给数量,在满足图片相似度要求的情况下,可能也会有一些其他确定性的条件作为输入。下图简略介绍了处理过程。

AnalyticDB MySQL可以管理和检索图片素材,可以根据商品图片类别,属性或者相似图片做多模检索图片,在支持图片相似性检索的同时,同时支持和结构化数据的标量融合,包括多表的关联查询。例如,检索和输入图片相似,并且满足价格在200-300元之间和3个月内(新款)上架的商品照片。为了方便展示,假设向量的维度使用了8维长度。

1.1 数据模型

云原生数据仓库AnalyticDB MySQL,向量检索功能的使用很简单,使用array数据类型存储向量的特征值,array数据类型支持byte,smallint,int和float四种值类型,如果数据量很大,可以对需要进行向量召回的特征列定义一个向量的索引提升检索的速度。向量特征列和向量索引的管理和普通列和索引的DDL类似,支持在创建表的时候设定,也可以通过ALTER TABLE语句添加。

服饰类素材图片简化后的数据表定义如下。

CREATETABLE products (  product_id BIGINT COMMENT '商品ID',  gmt_create DATETIME COMMENT '创建时间',  gmt_modified DATETIME COMMENT '修改时间',  image_url VARCHAR COMMENT '商品图片地址',  price FLOAT COMMENT '商品价格',  document JSON COMMENT '知识文档,json结构',  status INT COMMENT '文档状态, 1审核通过,0未审核,-1审核不通过',  feature ARRAY <float>(8) COMMENT '商品图片向量结果',  PRIMARY KEY (product_id, gmt_create),  ANN INDEX idx_feature(`feature`)) DISTRIBUTE BY HASH(product_id) PARTITION BY VALUE(`date_format(gmt_create,'%Y%m')`) LIFECYCLE 36 INDEX_ALL ='Y';

1.2 准备数据

数据入库支持实时写入和批量导入,下面的示例使用了insert into插入了1条测试数据。

INSERTINTO products (product_id, gmt_create, price, image_url, feature)VALUES(6, NOW(),288.00,'https://xxx/img6.jpg','[0.83891445,0.50359607,0.9299093,0.19440076,0.5789051,0.12121256,0.6587046,0.86555034]');

1.3 数据检索(向量召回)

AnalyticDB MySQL支持融合查询,需要同时满足下面的条件。

条件1:指定图片相似度前5,并且按照相似度排序,KNN+ Top-K。

条件2:价格在200.00和300.00之间。

条件3:素材的创建时间在最近3天以内。

上述条件2和3是结构化数据标量数值计算,条件1是非机构化相似性计算。业务场景期望3个条件可以在1个引擎同时完成,达到提升效率和降低维护成本的作用。这种场景通过AnalyticDB能够很方便支持,使用也很简单。

SELECT product_id, l2_distance(feature,'[0.83891440,0.50359607,0.9299093,0.19440070,0.5789051,0.12121256,0.6587046,0.86555034]')as dis, image_url, price, document
FROM products
WHERE l2_distance(feature,'[0.83891445,0.50359607,0.9299093,0.19440076,0.5789051,0.12121256,0.6587046,0.86555034]')<10-- 设定相似性阈值,排除一些差异性太大的结果AND gmt_create > DATE_SUB(NOW(), INTERVAL 90 DAY)-- 最近90天AND price between200.00and300.00-- 价格在200-300之间ORDERBY l2_distance(feature,'[0.83891445,0.50359607,0.9299093,0.19440076,0.5789051,0.12121256,0.6587046,0.86555034]')LIMIT5;-- 最相近的top5

AnalyticDB MySQL除了提供实时OLAP多维分析和检索外,还提供向量召回功能,支持淘宝APP的AI试衣间场景,解决了引擎冗余的问题,把结构化数据和非结构化数据检索能力整合,适用于多模混合负载检索场景,降低了向量的使用和运维成本。

2. 经验和总结

在电商行业,以图搜图让用户所见即所搜,拍张照片可以找到相似的商品;在游戏行业,通过识别玩家的情感状态,更好的理解玩家的感受和态度,进行针对性的优化和改进,增加游戏玩家的趣味性;在智能客服行业,通过结合企业领域知识和大模型语义理解能力构建智能客服。这些智能化应用落地的背后,离不开向量数据库的加持。向量数据库使用场景多且丰富,常常应用在以文搜图、以图搜图、听音识歌等等,技术已经得到了广泛的应用,比如:

  1. 人脸识别服务,支持高维人脸识别。
  2. 以图搜图服务,即通过图片检索图片的应用服务。
  3. 视频检索服务,即通过视频中的某些帧图片进行视频图片检索,来实现视频检索。
  4. 声纹检索服务,即通过音频匹配音频的应用服务。
  5. 推荐系统服务,即通过用户特征匹配实现推荐匹配的功能。
  6. 基于语义的文本检索和推荐,通过文本检索近似文本。
  7. 问答机器人,通过与大模型结合搭建高效的问答机器人服务。

为了实现特征向量的快速检索,一般都会构建向量索引来实现。通常说的向量索引都属于ANNS(Approximate Nearest Neighbors Search,近似最近邻搜索),它不同于数字的等值或者字符串的term匹配,也不同于like或者全文检索的近似匹配,而是在最大程度上通过非结构化数据的相似度进行检索。

ANNS向量索引可以根据实现方式的不同区分为不同类型的索引,主要分为图索引和量化索引,其中图索引主要是HNSW和RNSW,量化索引主要是PQ、FLAT、SQ8和SQ8H等。为了能使ANNS向量索引能够更加方便地应用到实际的生产环境中,目前业界主要有两种实践方式。一种是单独将ANNS向量索引服务化,以提供向量索引创建和检索的能力,从而使其成为人工智能服务体系中的一部分;另一种就是在传统结构化数据库的基础之上,去融合ANNS向量索引的能力,从而使其能直接使用简单的SQL就能完成复杂的结构化数据检索,也能同时具备结构化与非结构化融合查询的能力。

云原生数据仓库AnalyticDB MySQL是一款阿里云数据库团队自研的云原生数据仓库产品,支持向量和结构化数据的融合检索,在各种条件组合的查询的场景中,达到超过99%的召回率。它的数仓和湖仓提供了非结构化数据的存储和通用数据库检索服务。通过深度学习网络完成推理,可以将非结构化数据转化成向量,提供基于向量的相似性检索。

AnalyticDB MySQL在集成向量检索引擎的同时也做了很多优化,算法的核心思想是把HNSW(Hierarchical Small World Graph)算法和多版本PQ(Product Quantization, 乘积量化)编码算法做一个融合,实现了不同场景下支持向量索引的实时增删查改,使向量检索引擎和数据库本身融为一体,可以非常方便的使用。目前AnalyticDB使用的向量检索引擎技术已经发表在了VLDB上,该文主要讲述了HNSW算法和PQ算法在AnalyticDB中的实现以及相应的优化策略。

3. 未来展望

  • 向量服务的Embedding服务可以支持插件式,提供Serverless/Function的向量Embedding服务,支持根据不同的业务场景选择不同的Embedding模型。
  • 在相似度的召回率上提供可配置的选项,支持在QPS和召回率之间做一个更自主的灵活配置。例如除了支持人脸,声纹等需要高正确率的检索,也需要支持图片等素材更需要弹性的检索。
相关实践学习
AnalyticDB MySQL海量数据秒级分析体验
快速上手AnalyticDB MySQL,玩转SQL开发等功能!本教程介绍如何在AnalyticDB MySQL中,一键加载内置数据集,并基于自动生成的查询脚本,运行复杂查询语句,秒级生成查询结果。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
相关文章
|
5天前
|
人工智能 算法
通义语音AI技术问题之预训练语言模型句子嵌入存在的各向异性问题如何解决
通义语音AI技术问题之预训练语言模型句子嵌入存在的各向异性问题如何解决
14 5
|
3天前
|
机器学习/深度学习 人工智能 算法
解密巴黎奥运会中的阿里云AI技术
2024年巴黎奥运会圆满结束,中国代表团金牌数与美国并列第一,展现了卓越实力。阿里云作为官方云服务合作伙伴,通过先进的AI技术深度融入奥运的各项环节,实现了大规模的云上转播,超越传统卫星转播,为全球观众提供流畅、高清的观赛体验。其中,“子弹时间”回放技术在多个场馆的应用,让观众享受到了电影般的多角度精彩瞬间。此外,8K超高清直播、AI智能解说和通义APP等创新,极大地提升了赛事观赏性和互动性。能耗宝(Energy Expert)的部署则助力实现了赛事的可持续发展目标。巴黎奥运会的成功举办标志着体育赛事正式进入AI时代,开启了体育与科技融合的新篇章。
解密巴黎奥运会中的阿里云AI技术
|
5天前
|
人工智能 数据处理 语音技术
通义语音AI技术问题之查看KAN-TTS在ModelScope上的模型列表如何解决
通义语音AI技术问题之查看KAN-TTS在ModelScope上的模型列表如何解决
22 10
|
5天前
|
人工智能 语音技术
通义语音AI技术问题之semantic 的 residualquantizer 模块的作用如何解决
通义语音AI技术问题之semantic 的 residualquantizer 模块的作用如何解决
22 9
|
5天前
|
人工智能 语音技术
通义语音AI技术问题之服务端对于音频数据如何解决
通义语音AI技术问题之服务端对于音频数据如何解决
19 7
|
5天前
|
存储 人工智能 语音技术
通义语音AI技术问题之动态加权采样策略的工作原理如何解决
通义语音AI技术问题之动态加权采样策略的工作原理如何解决
18 5
|
5天前
|
人工智能 数据处理
通义语音AI技术问题之行动项识别任务中的问题如何解决
通义语音AI技术问题之行动项识别任务中的问题如何解决
14 5
|
5天前
|
人工智能 UED
通义语音AI技术问题之预训练语言模型的主题分割效果的提升如何解决
通义语音AI技术问题之预训练语言模型的主题分割效果的提升如何解决
18 5
|
5天前
|
机器学习/深度学习 人工智能 数据挖掘
通义语音AI技术问题之TTS的生成效果和流式推理高效性如何解决
通义语音AI技术问题之TTS的生成效果和流式推理高效性如何解决
12 5
|
5天前
|
人工智能 数据挖掘 语音技术
通义语音AI技术问题之说话人识别的两种类型分类如何解决
通义语音AI技术问题之说话人识别的两种类型分类如何解决
21 5

相关产品

  • 云原生数据仓库AnalyticDB MySQL版