世界人工智能算法大赛(2020人工智能科技创新大赛)

由中国人工智能学会、杭州市余杭区人民政府主办,杭州未来科技城管委会、JD.COM零售联合承办的“2022全球人工智能技术创新大赛——算法挑战赛”于5月21日结束复赛。
本次大赛从人工智能领域的技术发展和跨界应用融合出发,设置了电子商务关键属性图形匹配和商品标题实体识别两个赛道,旨在搭建人工智能的人才交流平台和产业生态圈,推动人工智能相关领域的创新发展。
经过激烈的复赛,比赛从两条赛道产生了7-14支获胜队伍。在征求选手意愿后,我们将分两期分享两个赛道部分选手的比赛方案。这一次,我们将分享赛道1选手的比赛计划。
赛道1:电商关键属性的图形匹配。JD.COM在电商零售场景中积累了大量商品的图文数据,其中商品主图和标题是用户最直观、最易获取的数据。因此,图文的一致性(即图文的匹配)非常重要,需要模型根据图文判断两种模态数据传递的信息是否一致。通常情况下,一个商品的主图和标题包含了大量的商品属性信息。在实际业务中,图片中产品的关键属性是否与产品标题的描述相匹配,是影响用户体验的重要因素。本次比赛要求参赛队伍利用JD.COM电商平台脱敏后的图文数据,通过产品图片与产品标题在产品关键属性上的关联度来判断其是否匹配。
分享一个赛马场选手的比赛方案。
排名:第8名团队名称:广工夏天无电气分享内容:#代码已开源:[lxmertvilterbert](https://github.com/zhongyupei/gaiic2022 _ track 1 _ rank 8)[nezha-lstm](3359github.com/baenrh/Gai IC 2022 _ track 1 _ rank 8)#结果|列表|排名|结果| |-| |-| | 3360 |-| | | | |初赛b列表| 4 | 0.95211401 ||复赛b列表数据来源于电商平台上的商品信息,特色13大类: ` “` `图形,领型,袖长,衣长,版型,裙长,穿着风格.““`对于13个属性,做两个分类,只需要01来判断,0表示图形对不匹配,1表示匹配。正样本(graphic=1)在原始数据中的比例为0.85,需要构造负样本。有10w不带标签的,有5w带标签的。#数据预处理[1]将未标记的10w提取出来(从文本中),并转换成标记数据,最终标记数据达到13w。[2]删除年份信息,包含年份信息的标题占0.70,年份信息与模型任务无关。# #数据增强全部在**dataset中增强。__getitem__** # #负样本生成-随机标题替换-标题中属性值的替换-隐藏属性值替换,如颜色# # #其他增强-标题重组,语义不变-脱敏特征数据点交换# scheme # #模型伯特a梭-[LX mert](https://arxiv.org/pdf/1908.07490.pdf ref=3359 githubhelp . com)-[VILT](3358procedures.mlr.press/v133 Kim 21k . pdf)-[vil Bert](https://proceedings . nei lips . cc/paper/2019/file/c 74d 97 b 01 aee 2577 哪吒-LSTM没有使用huggingface预训练权重-自定义vocab,vocab_size=1.5k ## Finetune###模型结构-2048的特征被线性转换成768。 -取原始模型中的bert主干和splice [768,13] linear作为下游进行二元分类判断。-pooler _带有lxmert下游文本的cross enocder的输出。-从lxmert的图像编码器部分删除了position_embedding和type_embedding。vilbert下游的两个通道(文本和图像)用作元素式产品。-pooler_output取自vilt的下游。-哪吒-LSTM:哪吒输出加LSTM然后分类。-损失函数:BECLoss。-各型号的其他输入操作与原文基本一致。-五种型号的单模得分抖动w
排名:第9名团队名称:圆头鲸b6zt团队分享内容:主要方法:利用visualBERT结构和中文BERT的预训练参数,将文本和图像一起送入visualBERT,得到融合特征进行二次分类。数据处理:由于数据来自JD.COM平台,大部分商品的图片和标题都是对应的,导致训练数据缺乏负样本。我考虑用关键属性替换法来构造一个负样本。例如,当商品标题“薄长袖毛衣”更改为“薄短袖毛衣”时,会生成一个负样本。模型构建(初赛):由于初赛对模型大小没有限制,经过实验分析,最终采用双模型法,即将图片标题匹配任务和商品关键属性任务分为两个模型,分别进行训练和测试。模型构建(复赛):复赛限制了模型的大小,所以需要对模型进行压缩。因此,我们设计了一个全新的判别模型,将两个任务一起训练和测试。例如,在样本‘薄款长袖毛衣’和‘商品图片’中,我在文本中嵌入文字得到文本向量,然后在文本向量后面拼接图片向量并发送给visualBERT得到10个特征向量。然后将“[CLS]”对应的特征向量作为图片标题匹配任务的判别向量,将“长袖”对应的特征向量平均作为图片关键属性任务的判别向量。此外,模型结构压缩,采用5-7层BERT结构,比原来的12层结构减少50%左右。总结与展望:总的来说,取得了满意的效果,但仍有不足之处。除了官网给的属性值,隐藏的属性都提取出来了,但是没用。可能是应用方法不对。同时,由于时间问题,最终的模型融合没有经过仔细的调优,在B列表中只进行了一次模型融合。
排名:第10名团队名称:aaadaptive分享内容:完整复赛代码https://github.com/Legend94rz/jd2022-semi这个仓库只有复赛代码,初赛的代码差不多,但是比较混乱,所以暂时没有整理出来。# #成绩|||分数|排名|| – : | – : | |初步A | 0.94695043 | 26 ||初步B | 0.94811 0.94935704 | 10 |##环境配置的主要依赖项3360 * Python=3 . 8 . 8 * py torch=1 . 11 . 0=py 3.8 _ cuda 10.2 _ cud nnn 7 . 6 . 5 _ 0 * transformers=4 . 15 . 0 文件描述` ` `{ bash } code/# this repo -multilabel/#模型一| | – train.py| – infer.py #推理脚本输出概率。 -pairwise/#模型2 | -train.py | -infer.py -prj _ config . py #一些路径配置文件-defs.py #模型和所有在线增强-预处理脚本-Postprocessing.py #整合每个模型的输出并生成最终提交文件` ` `# #预训练模型使用预训练模型的两个已发布的权重:“youzanai/Bert-product-title-Chinese”和“youzanai/clip-product-title-Chinese”。因为没有联机连接,所以需要挂载数据集。离线验证时,需要手动执行一次。将拥抱脸文件下载到本地缓存目录。默认路径是“{ home }/。cache/huggingface `。所有预训练模型和下载方法:` ` `{ python } clip . clip Chinese model . from _ pre-trained(‘ youzanai/clip-product-title-Chinese ‘)#如何使用clip参见trex project auto model . from _ pre trained(‘ youzanai/Bert-product-title-Chinese ‘)auto config . from _ pre trained(‘ UCLA NLP/Visual Bert-Coco-pre ‘)。自动增能器。from _预训练(‘ youzanai/Bert-product-title-Chinese ‘)自动模型。from _预训练(‘ Bert-base-Chinese ‘)` ` `# # #算法# # #整体思路介绍。最终提交的结果是—— pairwise-swa和visualbert ——两个模型的融合结果:前者用visual Bert 50%装袋后的输出进行平均,然后用0.5作为分类阈值。下面介绍这两个模型。# # #模型1:pairwise-swa模型:` Transformer的伪代码(cat ([img _ encode (img),text _ encode (text)],dim=1))-0/1 `分别带有预处理数据的50%折扣,对每个模型进行训练,并与SWA结合(推理时用50% swa权重对输出装袋。# # # #网络结构![模型1] (](model1.svg)####损失函数2分类损失:` nn。BCEWithLogitsLoss`#### #数据放大对于关键属性,使用图文匹配的数据作为正负样本。比如`{‘ img _ name’ :’ img1 ‘,’ title’ 3360′ XXX ‘,’ key _ attr ‘ 3360 { ‘ collar ‘ 3360 ‘ turtle neck ‘,’ graphic’ 3360 1}} ‘会为标题的[collar]做一个正样本,分别进行正、负增强,其中:*正增强*删除标题中出现的所有关键属性,或者只保留一个*无增强*负增强*修改:最多把一个属性改成不匹配*粗中的图形和文字与数据不符。这里,负样本的最大数量是*标题中属性的数量*。离线增强后,将标题与关键属性的数据进行融合,训练出一个0/1二元分类模型。# # #模型2: visualbert用‘UCLA NLP/visualbert-VQA-可可-pre’初始化一个Visual Bert,然后用‘Youzanai/Bert-Product-Title-Chinese’替换权重。特征先通过[MOEX](https://OpenAccess.thecvf.com/content/CVPR2021/papers/Li _ on _ feature _ normalization _ and _ data _ augmentation _ CVPR _ 2021 _ paper . pdf),Dropout,然后和文本一起输入VisualBert,取“的输出,计算多标记损失(12个属性,1个图形,共13个标记)。该模型利用全部的精细数据,直接对其进行扩充和训练,结合swa,得到一个权重文件。推理时使用该权重文件的输出。
通过使用划分的验证集,可以适当地调整训练参数。# # # #网络结构!【模型2】(Model 2 . SVG)# # # #损失函数` nn。BCEWithLogitsLoss(权重0.7)加一个正则化项:属性输出的最小概率(带掩码)和图文输出计算KL散度,因为如果图文匹配,属性输出应该更大。(权重0.3)####数据扩增训练集在线扩增方式如下:“ `{python}#根据概率列表选择一个变换mutex_transform([# 1。序列变换sequential _ transform([# replace a title random _ replace(Candidate _ attr,Candidate_title),# random删除一个属性random_delete(0.3),# random替换一个属性random _ modify (0.3,prop)],[0.5,0.4,0.5],# 2 .Mutex _ Transform ([delete _ words()),#修改对应匹配的字段。Replace_hidden(),#随机改变至少一种类型和颜色,否则保持原来的输入。sequential _ transform([delete _ words(),#在分词后随机选择至少一个短语并删除。修改相应匹配的字段。Replace_hidden(),#随机改变至少一种类型和颜色,否则保持原来的输入。], [1. 1.])], [0.33, 0.33, 0.34]), # 3.Lambda x3360x无变换],[0.5,0.45,0.05]) ““` # #模型集成50% bagging by visual Bert and pairwise,###注意请参考readme.md详细的训练/测试过程;在划分训练/验证集时,注意不要把同一张图片的N个不同的增强分散在训练集和验证集中,否则容易过拟合,验证集上的分数不可靠;主要推广点在于SWA和模型融合。因为重匹配限制了模型参数和文件大小,所以使用的bert只取前6层。
模型1
模型2
排名:11队名:美人鱼wp45的队伍分享内容:# #数据分析# # # 1。原始数据处理原始数据分为有标签的(50000)和无标签的(100000)。通过从标记数据的标题中检索属性,将原始正样本未标记数据构造成标记数据#### 2。数据增强数据本身的正样本和负样本的比率是8,333,602。需要构造负样本来随机替换随机交换标题中关键属性的位置,删除部分关键属性。实验表明,当正负样本比为1,333,602时,效果最佳,实验数据约为40万# #模型# # # 1。CNN在某大佬分享的基线上做了一些改动,初赛单模效果可以达到0.93。最后,CNN在投票支持fusion之前打了五折。分数可以达到0.94。调整正则化参数,结合最大池和平均池提取更多信息。注意模块# # # 2添加在字符和图片特征串联之后。Bert使用ChineseBert对所有标题使用MLM任务预训练。用图像特征(降维后)concat将输入字符Bert得到的嵌入结果分为13类,Concat的后处理结构同CNN #### 3。visualbert直接将图像向量降维到1024,然后和字符向量一起输入到Visual Bert中,用Huggface预训练权值。半决赛A分0.909。使用转换结构,6级结果与12级结果几乎相同。发现复制图像向量,在输入之前单独处理,有轻微的改善。# #有的尝试使用解霸分词,根据数据集调整词典(改进),分析数据发现图文领预测效果不好。单独进行两类(无推广)复赛,将训练数据分布设置为测试数据(无推广)# #总结总的来说,我们组在本次比赛中开始使用的CNN网络进行了一系列的实验。单模五折到0.94后,调整的效果不明显。但由于CNN模型很小,只有12M,所以不需要考虑模型大小限制。最后,该方案集成了Bert模型和可视化Bert模型。# #最后,BERT,Visual BERT,这两款,我们也尝试了很多改进,效果都不理想。希望可以看看别人的方案,了解一下。第一次,还有很多需要改进的地方。继续加油码:
排名:第12名团队名称:limzero分享内容:1程序概述图形和属性分别建模。图形和属性直接作为2-分类任务(bert),属性的12个2-分类任务放在一起作为多标签分类(CNN/Bi_LSTM)。初赛a: 18初赛b: 8复赛a: 25复赛b: 122数据(1)提取粗的属性,需要重点关注“裤门襟闭合方式和衣门襟(隐藏属性)”,因为这三个属性的值有些重复;(2)根据属性值的不同制作负样本,精细和粗糙都制作负样本;制作时注意按照一定概率进行属性替换。例如,如果三个属性出现在一个标题中,您可以替换一个属性或两个或三个属性来制作负样本。不要全部替换,这样会导致负样本过于简单。(3)数据增强:a .根据属性的同义词进行正例增强,标题中同义词替换后标签不变;b、通过删除增强图文正例,在标题中删除一个属性后图文仍然匹配;c .通过shuffle title进行数据增强,但是这里需要手动分词(使用正则表达式)并根据属性所有可能的值进行shuffle,不能使用jieba分词并进行shuffle。(4)属性是用12个多标签分类建模的,所以负样本来自两部分:a .一部分是本题没有这个属性(易负,大量存在)b .另一部分是我们自己替换生成的负样本(硬负,比如“修身型”被“损型”替换),可以在训练过程中手工编写。(2) (5)制作样品有两种方法(效果差不多)。a .在线数据增强(对于pytorch,在__getitem__()的时候,随机增强一个正样本输入做一个负样本)。需要很多回合才能收敛!b .离线数据增强(设置需要做多少次正负样本,所有样本离线做)3。模型方面(1)大量实验表明,使用CNN或Bi_LSTM的简单层对属性建模,使用bert对图片和文本建模是最佳选择。(2)2)图像特征和文本特征的交互方式:concat可以通过简单的几层全连接进行交互,各种花哨的交互操作效果不大。(3)使用CNN或LSTM处理属性时,单词嵌入的随机初始化效果明显好于用bert预训练的嵌入。至于原因,我不知道!(个人猜测,虽然bert的预训练词向量不错,但需要适应bert的架构,CNN或RNN都可以学习,但可能不如明凯的随机初始化。而且属性的分类模式太简单,bert的768维嵌入太容易过拟合!)。中文-罗伯塔-wwm-ext;中文-麦克伯特-基地;Roberta-base-word-Chinese-cluecorpussmall;三种图文表现相当,麦克伯特略胜,分词或分词影响不大。(4)预热学习率预热策略可以显著提高bert的收敛性能。(5)五折及多机型整合可显著提升线上成绩(仅限初赛!)模型融合用的是Sigmoid()之后的概率。(6)图形和文本需要分开训练,而属性需要和图形、文本一起训练,也就是用13个标签训练多个标签的属性,然后预测的时候只能取属性的12个位置。(7)属性中“版本”的权重(数量)很大,难度最大。队友尝试单独拿出“版本”进行建模,可以显著提升线上/线下表现。
排名:第14名团队名称:readybling分享内容:# #模型方面# #创新我们使用Roberta作为主要模型(我们尝试了很多bert模型,Roberta效果最好)。因为我们观察到,如果以bert为骨干模型,图像只有一个表征(将图像的2048维划分为多个表征是无效的),也就是说,bert只能与文本信息进行交互。为了提高图像信息的利用率,我们的主要创新是对图像和文本两种模态数据进行了两次融合。第二次是在罗伯塔的输出。最后,我们将融合后的特征映射成匹配分数,通过计算BCEloss来优化反向传播,可以达到很好的效果。以下是具体的模型结构:# # #网络结构!【img】(c : \ Users \廖宇\ AppData \ Local \ YNote \ data \ qq9d 3340 bec 3355 da 2158281 b 6 aee 67 c 22 \ 73073d 98295445 e 08015 ea 402 e 5 BD 74d \ Clipboard.png)整个网络架构分为特征提取、双模特征融合、Roberta特征交互、特征融合输出评分和损失计算**1。特征提取* *该部分由两部分组成,第一部分输入关键属性和标题对正负样本进行增强(具体在下面的“数据增强”部分介绍),然后通过Tokenizer模块对每个汉字进行编码,然后进行嵌入,为句子中的每个单词生成一个768维向量,加上CLS 768维向量,生成(n ^ 1)* 768的向量(假设一个句子中有n个汉字);第二部分是将原始图像的2048维特征映射到768维向量,然后反复扩展,形成相同数量文本令牌的向量组。**2.双模式特征融合* *将上述文本和图像特征相加融合,生成(n ^ 1)* 768 * * 3的向量。罗伯塔特征交互* *将上述融合特征输入罗伯塔模型进行交互,最终输出CLS位置**4对应的768维向量。特征融合输出得分,计算损失**图像特征和Roberta计算BCE损失并优化整个模型。
# #数据方面# # #数据增强* *文字正负样本增强* *有四种正样本构造方式和三种负样本构造方式,例如有一个样本标题如下:薄拉链修身短方领皮衣2021年冬季女长袖。1.构造一个正例题目:随机减少题目中的一个关键属性,如:薄拉链短方领皮衣2021冬女长袖(减少修身)。2.构造一个负样本title1:在标题中随机添加一个关键属性,比如:细拉链。修身短方领外套2021冬季女长袖上高帮高帮(“上高帮高帮”新增)2(已更改)。构建负样本title1:在title中随机添加一个关键属性,例如:2021年冬季薄拉链修身短方领外套女式长袖高顶(“高顶”已添加)3 .构造负样本标题2:在训练集中全局随机选择一个标题如:春秋开衫男士纯色圆领毛衣宽松灰4。构造负样本title3:将title中的每个关键属性替换为其所属类别中的其他关键属性,如:2021年冬季薄系带宽松长圆领裘皮大衣女短袖(拉链换成系带,修身型换成宽松型,短型换成长型)“长袖”换成“短袖”)4(修改)。构造一个负样本title3:将title中的一个同义词关键属性替换为其同义词关键属性,如:薄拉链修身短方领皮衣2021年冬季女装九分袖(“长袖”替换为“九分袖”)5。构建一个正例标题:在标题中随机选取一个同义词替换,如thin paragraph。2021年冬季女装九分袖套装(“长袖”换成“九分袖”)6。构造一个正例题目:按关键属性分句,然后打乱原句:2021年冬天的薄系带宽松长圆领皮衣女短袖打乱后:2021年冬天的长宽松薄系带短袖皮衣女圆领7。构造一个正样题:用jieba(精准模式,加自定义词典)分句,然后打乱原句:薄系带宽松长圆领皮夹克女短袖2021年冬季分:薄系带宽松长圆领皮夹克女装短袖2021年冬季拼接:薄系带宽松长圆领皮夹克2021年冬季* *关键属性负样衣增强* *比如一个样衣的关键是:版型修身型袖长和长袖1。构造正样本关键字:在领型半高领、裙长长裙、裤型裤子等所有关键属性* *中进行全局随机选择。2.构建负样本关键字:在关键属性* *的主要类别中进行随机选择,如宽松版本、长款式和短袖长度。3.构造正样本键:添加同义词。注意:我们在上述数据增强策略中考虑了同义词,在构造负样本时避免了同义词。* * # #数据数量增加。训练数据集由以下两部分组成:第一部分:将原始的10万个图文匹配的粗数据中的89个样本通过关键属性提取转化为细数据;第二部分:从原来的50000罚款中去掉1000个验证集的49000个样本。两部分加起来总共有89,588,49,000个细粒度的训练样本。* *注意:在粗数据的细数据转换过程中,一些关键属性如“系带”只是鞋子和靴子的关键属性,不能作为裤子和衣服的关键属性。也就是说,只有当文本中出现“鞋子”和“靴子”两个词时,才能提取出“系带”的关键属性。其他关键属性也有同样的问题。* * #算法的其他细节在训练的过程中,我们重置了随机种子,每隔2个历元重新加载数据,生成不同的正负样本。
在我们的测试中,如果测试关键属性“袖长和长袖”是否与图像匹配,我们将计算“袖长和长袖”和“袖长和九分袖”(因为长袖和九分袖是同义词)与图像的匹配分数,如果其中一个超过阈值,则认为匹配成功。并且在我们的测试过程中,在考虑* *图像匹配时,我们考虑了关键属性必须匹配* *的问题。
下次分享第二轨的选手方案,敬请期待~

综合资源

欧美另类图片区视频一区,大人变成小孩的

2024-1-21 10:10:11

miui12.5.1充电音效(miui12卸载音效)

2022-8-11 23:48:04

购物车
优惠劵
搜索