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

本文涉及的产品
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
云原生数据仓库AnalyticDB MySQL版,基础版 8ACU 100GB 1个月
简介: 在AI试衣间功能的背后,阿里云瑶池旗下的云原生数据仓库AnalyticDB MySQL提供了高维向量低延时的在线向量召回检索服务,下面将进行介绍。

【先打一波小广告】

AnalyticDB MySQL和Intel联合推出基于ADB Spark的隐私计算训练营,ADB新用户参营完成任务可获得价值100元的话费权益包!7个工作日充值到账点击前往

原创邓巧鹏(乔鹏)


随着淘宝的蓬勃发展,网购已经融入日常生活。网购让大家足不出户就能挑选众多品类商品,还能货比N家,但同时网购也会带来一些未知的问题。相信大家都有线上购买服装的经历吧?在线上挑选的时候,只能根据价格、款式、尺码等信息,选出可能合适的衣服,但是衣服穿上后效果如何?应该怎么搭配更好看?我更适合淑女风还是废土风?毕竟淘宝商家的模特穿啥啥好看。为了解决上述的痛点,淘宝服饰联合通义实验室XR实验室借助AIGC强大科技力推出了重磅级的产品AI试衣间在手机淘宝APP上搜索ifashion,上传自己的照片即可体验AI试衣~



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



淘宝AI试衣间-技术揭秘



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



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

image.png

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



数据模型

云原生数据仓库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';




准备数据

数据入库支持实时写入和批量导入,下面的示例使用了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]');



数据检索(向量召回)

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试衣间场景,解决了引擎冗余的问题,把结构化数据和非结构化数据检索能力整合,适用于多模混合负载检索场景,降低了向量的使用和运维成本。



经验和总结


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

1. 人脸识别服务,支持高维人脸识别。

2. 以图搜图服务,即通过图片检索图片的应用服务。

3. 视频检索服务,即通过视频中的某些帧图片进行视频图片检索,来实现视频检索。

4. 声纹检索服务,即通过音频匹配音频的应用服务。

5. 推荐系统服务,即通过用户特征匹配实现推荐匹配的功能。

6. 基于语义的文本检索和推荐,通过文本检索近似文本。

7. 问答机器人,通过与大模型结合搭建高效的问答机器人服务。

image.png



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

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


image.png

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

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


image.png



未来展望

▶︎ 向量服务的Embedding服务可以支持插件式,提供Serverless/Function的向量Embedding服务,支持根据不同的业务场景选择不同的Embedding模型。

▶︎在相似度的召回率上提供可配置的选项,支持在QPS和召回率之间做一个更自主的灵活配置。例如除了支持人脸,声纹等需要高正确率的检索,也需要支持图片等素材更需要弹性的检索。


END[1] 《AnalyticDB-V: A Hybrid Analytical Engine Towards Query Fusion for Structured and Unstructured Data》:www.vldb.org/pvldb/vol13/p3152-wei.pdf推荐阅读


相关实践学习
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
相关文章
|
9天前
|
机器学习/深度学习 数据采集 人工智能
探索AI技术在文本生成中的应用与挑战
【9月更文挑战第26天】本文深入探讨了AI技术在文本生成领域的应用,并分析了其面临的挑战。通过介绍AI文本生成的基本原理、应用场景以及未来发展趋势,帮助读者全面了解该技术的潜力和局限性。同时,文章还提供了代码示例,展示了如何使用Python和相关库实现简单的文本生成模型。
34 9
|
9天前
|
机器学习/深度学习 人工智能 搜索推荐
AI与未来医疗:革命性的技术融合
本文探讨了人工智能(AI)在未来医疗领域的应用及其潜在影响。通过分析当前的技术进步和具体案例,如AI辅助诊断、个性化治疗方案及医疗机器人等,展示了AI如何提高医疗服务的效率和准确性,降低医疗成本,并增强患者的治疗体验。同时,文章也讨论了AI在医疗中面临的伦理和隐私问题,以及解决这些问题的可能途径。最后,本文对AI在未来医疗中的前景进行了展望,指出其将继续深刻改变医疗保健行业,为患者和医疗专业人员带来更多福祉。
|
11天前
|
人工智能 自然语言处理 OLAP
体验AnalyticDB与通义千问搭建AI智能客服,赢取马克杯/卫衣等好礼!
体验AnalyticDB与通义千问搭建AI智能客服,赢取马克杯/卫衣等好礼!
|
11天前
|
机器学习/深度学习 存储 人工智能
AI与未来医疗:技术的飞跃与挑战
在当今科技迅速发展的时代,人工智能(AI)正以前所未有的速度渗透到各行各业。特别是在医疗领域,AI的潜力和应用前景令人瞩目。本文将探讨AI在未来医疗中的角色,分析其带来的变革与挑战,并展望未来的发展方向。
|
18天前
|
机器学习/深度学习 人工智能 自然语言处理
AI技术在自然语言处理中的应用
【9月更文挑战第17天】本文主要介绍了AI技术在自然语言处理(NLP)领域的应用,包括文本分类、情感分析、机器翻译和语音识别等方面。通过实例展示了AI技术如何帮助解决NLP中的挑战性问题,并讨论了未来发展趋势。
|
18天前
|
机器学习/深度学习 人工智能 自然语言处理
AI与未来医疗:技术的革新与挑战
随着科技的不断进步,人工智能(AI)在医疗领域的应用逐渐深入。本文探讨了AI在未来医疗中的潜力、面临的挑战以及其可能带来的伦理和社会影响。通过分析当前AI技术在医疗中的具体应用,如诊断、治疗和患者管理等方面,揭示其如何提高医疗服务的效率和准确性。同时,讨论了数据隐私、算法透明度等关键问题,强调了制定合理政策和规范的重要性。最后,提出了未来研究的方向和建议,以期为AI与医疗行业的深度融合提供参考。
36 1
|
17天前
|
机器学习/深度学习 传感器 人工智能
AI与未来医疗:重塑健康管理新格局随着人工智能(AI)技术的飞速发展,医疗行业正迎来一场前所未有的变革。AI不仅在数据分析、诊断支持方面展现出巨大潜力,还在个性化治疗、远程医疗等多个领域实现了突破性进展。本文将探讨AI技术在医疗领域的具体应用及其对未来健康管理的影响。
人工智能(AI)正在彻底改变医疗行业的面貌。通过深度学习算法和大数据分析,AI能够迅速分析海量的医疗数据,提供精准的诊断和治疗建议。此外,AI在远程医疗、药物研发以及患者管理等方面也展现出了巨大的潜力。本文将详细探讨这些技术的应用实例,并展望其对健康管理的深远影响。
|
3天前
|
人工智能 自然语言处理 搜索推荐
AI技术在智能客服系统中的应用与挑战
【9月更文挑战第32天】本文将探讨AI技术在智能客服系统中的应用及其面临的挑战。我们将分析AI技术如何改变传统客服模式,提高服务质量和效率,并讨论在实际应用中可能遇到的问题和解决方案。
93 65
|
4天前
|
人工智能 缓存 搜索推荐
OPENAI DevDay 2024:推动AI技术的新边界
在今年的OPENAI DevDay活动中,尽管形式更为低调,但OpenAI依然带来了四项令人瞩目的技术创新,展示了其在推动人工智能开发者生态方面的持续努力,以及向更高效、用户友好的AI工具转型的决心。我将为大家详细介绍这些新产品
42 10
|
1天前
|
机器学习/深度学习 人工智能 自然语言处理
探索AI技术:从基础原理到实际应用的全面剖析
本文旨在为读者提供关于人工智能(AI)技术的全面了解。从探讨AI的基本概念和关键技术入手,逐步深入到AI在不同领域的应用实例,包括医疗、金融和自动驾驶等。同时,文章也详细讨论了当前AI技术面临的伦理问题和社会影响,以及可能的解决方案。最后,本文还展望了AI技术未来的发展趋势,帮助读者更好地理解这一前沿科技的现状与未来。

热门文章

最新文章

相关产品

  • 云原生数据仓库AnalyticDB MySQL版
  • 下一篇
    无影云桌面