任务描述
本次比赛提供了百度真实的广告数据集,包含了海量的用户点击数据和广告特征。 希望参赛者使用指定的生成式模型 (Unimo-text-large) 或双塔模型(Ernie-3.0-xbase) 底座,采用双塔度量式检索或生成式检索建模广告召回任务,完成相关广告的召回。 任务的目标是基于候选广告特征,在给定搜索词下预估最应召回的 K 个广告,评估召回率,同时也考虑推理效率。
数据集介绍
本次比赛提供3种数据集(我们队伍的人数恰好是3,有点像在暗示🏆
1️⃣ 用户点击数据集:前N-1天的网民搜索词(Query)-广告ID的点击数据
搜索词 | ID | Click |
灵芝孢子破壁多少钱一盒 | 45 | 2 |
2️⃣ 广告落地页数据集:客户托管页面的内容(可近似理解为广告网页里包含的文本内容
落地页内容 | ID |
吃灵芝孢子粉前要了解的3个问题,5分钟看完这篇文章,让你少走弯路,不花冤枉钱!楠楠是地地道道的山东人,为了种出更好品质的灵芝,在泰山西麓承包了一片占地3000亩,有山也有泉,完全自然原生态的山地来种灵芝。近些年...... | 45 |
3️⃣ 广告核心词数据集:基于百度商业积累,对广告投放页面提取的业务关键字
核心词 | ID |
灵芝孢子破壁; 灵芝孢子粉一天吃几克; 灵芝孢子粉过期5年; 灵芝孢子粉口感怎么样; 灵芝孢子粉保质期多久 | 45 |
比赛方案
模型选择
初赛阶段观察到(🧐)高分队伍基本上使用的都是生成式模型,于是我们果断也选用了该模型。
训练数据构造
📣我们构造的所有数据均为“query-id”形式,区别于DSI论文中的“query-id”与“doc-id”混用。
Doc2Query-少即是多
广告落地页内容太长❗️存在大量与主题无关的文本、重要信息分散‼️ 所以:
![](https://i-blog.csdnimg.cn/direct/2c95b9ec1a1e459cb043a8500c488b75.png)
其实就是把文档内容输入给生成式模型(比如GPT等),给定适当的prompt,要求其根据文档内容生成若干个用户在检索这篇文档时可能输入的搜索词。
生成的搜索词们的长度很短却能表征冗长文档的核心语义,故 Less is More🤗~
核心词拆解
广告核心词与搜索词的相似度高,拆出来作为搜索词数据。(姑且也算是一种Doc2Query🤔
![](https://i-blog.csdnimg.cn/direct/f46437a001e1407999f19bcbc6c60682.png)
用户点击数据集增强
🌔 该数据集存在数据不平衡问题,需要增强少样本数据。
数据增强的方法依旧是使用例如GPT的生成式模型,给定适当prompt,要求其根据已有的样本(搜索词)生成若干个相似样本。
![](https://i-blog.csdnimg.cn/direct/19ccd3016c794c8db797891adface3ed.png)
如何利用上Click字段呢?我们的想法是根据点击量筛选出热门广告,对热门广告做额外的数据增强处理,以优化检索重心。(因为热门广告被检索的概率更高呀🤓☝️
训练策略
上小节构造出了3种训练数据集。
一般会想着:训几轮数据集A ➡️ 训几轮数据集B ➡️ 训几轮数据集C。但是这种方法存在记忆遗忘问题🆘,不可取。
于是我们把“轮”这个单位缩小至“批”:
![](https://i-blog.csdnimg.cn/direct/e842fa4c34e24971ab41cce51116b8f7.png)
这种训练策略有一个美美的名字:多任务学习✨
小结
拿下冠军既在意料之外也在意料之中。意料之外在于我第一次接触这个领域,从0开始学习;意料之中在于我能感受到我们高质量的Teamwork,大家都很投入🥰。
🥇毫无悬念地断层第一啦~