ITPub博客

首页 > 数据库 > 数据库开发技术 > “阿里灵杰”问天引擎电商搜索算法赛--季军经验分享

“阿里灵杰”问天引擎电商搜索算法赛--季军经验分享

原创 数据库开发技术 作者:quincyqiang 时间:2022-07-02 10:15:00 0 删除 编辑

团队简介

团队名称:gpushare.com-比赛

团队成员(两只第一次组队打比赛的菜鸡):

  • wanfq:西安交通大学本科生,研究方向为对话系统

  • dingdingtom:中山大学本科生,研究方向为对话系统、强化学习

比赛成绩

  • 初赛:11 / 2771 (0.337)

  • 复赛:5 / 2771 (0.3789)

  • 决赛:4 / 2771 (季军 + 技术创新奖)

任务简介

本次比赛是电商领域的搜索赛题,初赛为召回任务,需要提交搜索query和商品document的向量表示;复赛为精排任务,需要提交初赛向量表示,query和document的tokenize后的ids,以及tf 1.12版本的模型,返回搜索query与召回的top-k商品document对应的得分,作为排序依据(有时间限制和模型大小限制)。

方法简介

1. 向量召回:

向量召回的模型结构如图所示

主要分为领域数据训练和召回任务微调两步

1.1 领域数据后训练:

1.2 召回任务微调:

1.3 召回任务结果:

2. 精排模型:

精排模型的模型结构如图所示:

2.1 精排任务微调:

2.2 线下验证:

2.3 精排任务结果:

总结与反思

  1. 我们的方法其实比较常规,很多可能有效的方案有提出过,但因为时间和偷懒没尝试;

  2. 所有代码能在一台机器上跑就不要分几台,且尽量避免写绝对路径,否则最后交代码调整文件路径会很恐怖;

  3. 时间分配要更合理,数据清洗与数据增强时间,构造baseline时间,调参时间,写trick时间,跑多个预训练模型时间,融合模型时间,提交文件时间,都要合理安排;

  4. 所有操作一定要确保可复现,特别是数据构造部分;

  5. 多写脚本,代替手动运行,避免浪费时间;

  6. 多讨论,多请教,多看论文,避免闭门造车与拍脑袋瞎想。

其它队伍带来的精彩tricks

本队采用的技术方案较为常规,这部分为一些本队没有采用的来自其它队伍的fancy方法,这些方法中大部分我们也考虑过,但没有尝试,希望未来能吸取教训。


数据增强:

  • 训练bart生成模型,使用document生成query构造伪标签(还可以生成时随机替换一些阿拉伯数字、拼音),同时使用一定规则修正生成的伪标签query

  • 反向翻译(不确定是否有效)

  • 把query中长度小于4的拿出来,加入词表构建新词

  • 把document分词后随机抽几个拼接作为新doc(不确定是否有效)

召回模型:

  • 降维时可以使用无监督PCA作为降维矩阵初始化

  • 训练交互式精排模型去蒸馏非交互式召回模型

  • 难负例构造:使用训练好的召回模型+faiss召回,取相似度中等水平(30左右)的document作为难负例

  • infoNCE loss的温度:可以首先设定一个比较小的,然后慢慢变大,但不能太大

  • 集成使用提交的线上得分作为系数加权求和embedding(不确定是否有效)

精排模型:

  • 可以使用ES引擎先召回query对应top-k doc,然后经过规则过滤(字面相似度高,向量余弦相似度不低)出过滤doc,然后把query和这些doc的向量表示按照一定规则相加,作为新query向量表示

召回模型融合:

  • 不能直接取均值,而是使用stacking的方法,把多个模型的输出向量使用一个训练后的FFN网络融合。


扫码关注
温风至 小暑来
添加管理员可以进入粉丝群哦!


原文作者:ChallengeHub;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2019-01-07

  • 博文量
    350
  • 访问量
    160927