NLP技术在搜索推荐场景中的应用

NLP技术在搜索推荐中的应用非常广泛,例如在搜索广告的CTR预估模型中,NLP技术可以从语义角度提取一些对CTR预测有效的信息;在搜索场景中,也经常需要使用NLP技术确定展现的物料与搜索query的相关性,过滤掉相关性较差的物料,防止对用户体验造成负面影响。在推荐场景中,文本信息也可以作为一种泛化性较强的信息补充,弥补协同过滤信号的稀疏性问题,提升预测效果。

今天这篇文章梳理了NLP技术在搜索推荐场景中3个方面的应用,分别是NLP提升CTR预估效果、NLP解决搜索场景相关性问题、NLP信息优化基于推荐系统效果。

1 NLP特征提升CTR预估效果

Learning Supplementary NLP Features for CTR Prediction in Sponsored Search(KDD 2022)是微软必应团队在近年KDD上发表的一篇工作,主要介绍了如何利用NLP特征提升CTR预估的效果。这篇工作的应用场景是必应的搜索广告,需要对给定搜索词下不同的广告document进行CTR预测,并根据预测的CTR进行排序。

业内一般使用NLP特征的方法是,使用预训练的BERT模型,给当前query和document对进行相关性打分,将这个打分作为一维特征输入到CTR预估模型中。然而文中指出,这种应用NLP特征的方法并不是最优的。本文提出了一种BERT和CTR预估模型联合训练的方式,让BERT提取的语义特征和CTR预估任务更加契合。

基础的模型结构如下图,左侧是位置特征和CTR预估的其他特征(如user、context特征等),右侧是语义特征,使用预训练的BERT,以query和ad文本作为输入,得到query和ad匹配的向量。CTR预估的向量和BERT生成的向量相加后,作为最终表示进行CTR预测。
在这里插入图片描述

由于BERT模型的参数量很大,网络层数很深,而CTR预估模型的网络层数比较浅。这两个模型直接一起优化会比较困难。因此文中采用了两阶段的训练方法。在第一阶段,先分别独立的使用CTR预估的label训练不带语义特征的CTR预估模型,以及预训练的BERT模型,这一步得到了初始化参数。在第二阶段,将两个网络融合到一起学习,同时更新所有网络的参数。

由于BERT网络参数量大,计算比较慢,文中还采用了一种蒸馏的策略压缩BERT模型的体积。Teacher部分是原始的BERT+CTR模型,Student部分将BERT改为一个轻量级的语义模型,使用正则化约束轻量级语义模型和原始BERT输出的向量表示相接近,让Student网络蒸馏主模型的知识。
在这里插入图片描述

2 NLP解决搜索场景相关性问题

NLP在搜索场景或电商场景的一大应用,就是解决相关性问题。相关性和CTR预估问题存在比较大的差异,相关性是影响CTR的一个因素,CTR还受到user、展现创意质量等多种因素的影响。相比而言,相关性更加客观的衡量了搜索词和展现商品是否匹配。因此,业内一般会将相关性建模和CTR建模分开考虑,而NLP技术对于解决相关性问题至关重要。

BERT2DNN: BERT Distillation with Massive Unlabeled Data for Online E-Commerce Search(ICDM 2020)是京东和清华大学发表的一篇解决电商场景相关性问题的工作。下图对比了本文提出的方法和业内其他基础方法的差异。
在这里插入图片描述

解决相关性问题,数据来源有两个方面,一方面是根据用户的搜索和点击行为构造数据,例如query-item发生点击就认为是相关的。这种数据标注成本很低,数据量也很大,但是并不代表真正的相关性,存在一定的噪声。另一种类型的数据是人工标注的相关性数据,这类数据由于需要人工标注,比较精准,噪声小,但是标注成本较高,往往不会积累很多数据。A unified neural network approach to e-commerce relevance learning(2019)这篇解决相关性问题的文章中,使用了先在用户行为数据上预训练,再使用人工标注的高质量数据finetune的架构构建相关性模型。

本文提出的BERTDNN方法,优化点主要体现在对BERT的蒸馏以及模型训练流程上。模型主体结构采用BERT,输入query和item文本信息,预测打分结果。首先在干净的相关性语料数据以及人工标注的高质量数据上训练BERT模型,然后利用这个模型对搜索日志中的用户行为数据打分,得到大量的包含相关性打分的数据。接下来使用一个DNN模型拟合这个打分,将BERT中的知识蒸馏到DNN模型中。DNN模型的结构可以采用query和item的embedding在底层直接交叉的双单塔结构,或者分别交叉的双塔结构。DNN模型大大降低了运行开销,作为线上最终部署的模型。
在这里插入图片描述

3 NLP优化推荐系统效果

在推荐系统中,一般根据user对item的打分结果学习user和item的表示向量,然后利用向量检索进行推荐。然而,协同过滤信号存在稀疏性,容易影响模型效果。而user的填写的评价、item的描述等文本信息,在协同过滤信号的基础上提供了高泛化性特征,对于提升推荐效果很有帮助。

Gated Attentive-Autoencoder for Content-Aware Recommendation(WSDM 2019)就采用了item content表示与user-item打分关系的表示相融合的方式提升效果。文中利用user-item打分学习一个embedding,同时利用item的内容信息结合attention模块学习一个文本表示信息,然后使用一个门结构对两侧的信息进行融合。此外,本文还是用了item的邻居信息结合attention来丰富中心节点表示。
在这里插入图片描述

另一篇文章Aligning Dual Disentangled User Representations from Ratings and Textual Content(KDD 2022)也采用了类似的方法。本文为了刻画user与item之间发生交互行为的底层因素,采用了分解学习的方法,根据user-item的打分信息以及user的评论信息分别学习两个表示,然后在分解学习得到多个因素后,在因素这个维度进行两个表示的对齐。
在这里插入图片描述

4 总结

本文主要介绍了NLP技术在搜索推荐场景中的应用。在搜索推荐中,文本信息是很常见的一种信息来源,因此如何利用文本信息提升CTR预估、推荐等模型效果,以及如何利用NLP技术解决相关性问题,都是搜推广场景中很有价值的研究点。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/619885.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

力扣2182.构造限制重复的字符串

思路:先记录每个字符的出现次数,构建一个新字符串,从尾取字符,每取一个该字符个数-1,若该字符已经取到有repeatLimit个,则递归取次大的字符,并对应字符个数-1,若没有次大字符了&…

Elasticsearch基础篇(七):分片大小修改和路由分配规则

Elasticsearch基础篇(七):分片大小修改和路由分配规则1. 分片1.1 主分片(Primary Shard)1.2 副本分片(Replica Shard)1.3 分片路由(Routing Shard) 2. 分片分配的基本策略3. 分片写入验证3.1 数…

2024年前端最新面试题-vue3(持续更新中)

文章目录 前言正文什么是 MVVC什么是 MVVM什么是 SPA什么是SFC为什么 data 选项是一个函数Vue 组件通讯(传值)有哪些方式Vue 的生命周期方法有哪些如何理解 Vue 的单项数据流如何理解 Vue 的双向数据绑定Vue3的响应式原理是什么介绍一下 Vue 的虚拟 DOM介…

设计模式-- 3.适配器模式

适配器模式 将一个类的接口转换成客户希望的另外一个接口。使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 角色和职责 请求者(client):客户端角色,需要使用适配器的对象,不需要关心适配器内部的实现,…

常用的检测数据异常值方式,以及异常数据如何处理!!

清除数据异常值 1.箱线图检测数据异常值方法2.3σ原则检测数据异常值方法3. 异常数据处理方式:总结(小白看看就行) 1.箱线图检测数据异常值方法 箱线图检测:箱线图是一种常用的异常值检测方法,它以数据的分位数为基础…

常见的加密算法

加密算法 AES 高级加密标准(AES,Advanced Encryption Standard)为最常见的对称加密算法(微信小程序加密传输就是用这个加密算法的)。对称加密算法也就是加密和解密用相同的密钥,具体的加密流程如下图: RSA RSA 加密算法是一种典型的非对称加密算法&am…

Java后端开发——Mybatis实验

文章目录 Java后端开发——Mybatis实验一、MyBatis入门程序1.创建工程2.引入相关依赖3.数据库准备4.编写数据库连接信息配置文件5.创建POJO实体6.编写核心配置文件和映射文件 二、MyBatis案例:员工管理系统1.在mybatis数据库中创建employee表2.创建持久化类Employee…

嵌套的CMake

hehedalinux:~/Linux/multi-v1$ tree . ├── calc │ ├── add.cpp │ ├── CMakeLists.txt │ ├── div.cpp │ ├── mult.cpp │ └── sub.cpp ├── CMakeLists.txt ├── include │ ├── calc.h │ └── sort.h ├── sort │ ├── …

基于面向对象编程,C++实现单链表

链表:在内存空间中是非连续存储 组成:链表是由一个个节点组成的,每个节点都包含两个元素:数据和指针 节点头文件: 建立一个ListNode.h头文件 #pragma once class ListNode { public:int value;ListNode* next;Lis…

当浏览器输入url的时候会发生什么?

说在前面 当我们在浏览器中输入URL并按下回车时,背后发生了一系列神秘的操作。本文将带您深入了解,从URL解析到页面渲染,揭秘浏览器输入URL的完整流程。 具体步骤 当浏览器输入URL时,一般经过以下细节步骤: 1、引言 …

利用Qt输出XML文件

使用Qt输出xml文件 void PixelConversionLibrary::generateXML() {QFile file("D:/TEST.xml");//创建xml文件if (!file.open(QIODevice::WriteOnly | QIODevice::Text))//以只写方式&#xff0c;文本模式打开文件{qDebug() << "generateXML:Failed to op…

语义分割miou指标计算详解

文章目录 1. 语义分割的评价指标2. 混淆矩阵计算2.1 np.bincount的使用2.2 混淆矩阵计算 3. 语义分割指标计算3.1 IOU计算方式1(推荐)方式2 3.2 Precision 计算3.3 总体的Accuracy计算3.4 Recall 计算3.5 MIOU计算 参考 MIoU全称为Mean Intersection over Union&#xff0c;平均…

Docker五部曲之三:镜像构建

文章目录 前言Docker构建架构构建指令构建上下文本地目录Git存储库压缩文件纯文本文件.dockerignore文件 Dockerfile解析器指令环境变量命令执行格式exec格式shell格式 FROMRUNCMDLABELEXPOSEENVADDCOPYENTRYPOINTVOLUMEUSERWORKDIRARGONBUILDSHELL 多级构建 前言 本文均翻译自…

对快速排序思想的进一步理解,分而治之,欧几里得算法(常用求最大公约数的方法)

自己找到的最优的快排的代码 快速排序 思想 分而治之使用欧几里得算法&#xff08;辗转相除法&#xff09;来求解一个应用题 假设有一块地&#xff0c;现在用这个同样大小的正方形来铺满&#xff0c;求所可用的最大的正方形地砖的面积 这两个方法放在一起是因为这个欧几里得要…

Linux环境之Ubuntu安装Docker流程

今天分享Linux环境之Ubuntu安装docker流程&#xff0c;Docker 是目前非常流行的容器&#xff0c;对其基本掌握很有必要。下面我们通过阿里云镜像的方式安装&#xff1a; 本来今天准备用清华大学镜像安装呢&#xff0c;好像有点问题&#xff0c;于是改成阿里云安装了。清华安装…

抓交通肇事犯(python)

问题描述&#xff1a; 一辆卡车违反交通规则&#xff0c;撞人后逃跑。现场有三人目击该事件&#xff0c;但都没有记住车号&#xff0c;只记下了车号的一些特征。甲说&#xff1a;牌照的前两位数字是相同的&#xff1b;乙说&#xff1a;牌照的后两位数字是相同的&#xff0c;但…

GVM垃圾收集器

Serial收集器&#xff08;新生代&#xff09; Serial&#xff08;串行&#xff09;收集器是最基本、历史最悠久的垃圾收集器&#xff0c;采用“标记-复制”算法负责新生代的垃圾收集。它是Hotspot虚拟机运行在客户端模式下的默认新生代收集器。 它是一个单线程收集器。它会使用…

软件测试学到这个程度,面试轻松拿下20K

很多人认为&#xff0c;软件测试是一个简单的职位&#xff0c;职业生涯走向也不会太好&#xff0c;但是随着时间的推移&#xff0c;软件测试行业的变化&#xff0c;人们开始对软件测试行业的认知有了新的高度&#xff0c;越来越多的人开始关注这个行业&#xff0c;开始重视这个…

v-if控制div内容显示,克隆这个div但是v-if没有效果

问题描述&#xff1a; 我的子页面打印的时候通过isPdf来隐藏“选择参加人员”按钮。 我子页面有个el-dialog&#xff0c;el-dialog里面有个大的div它的id为app-pre-meet-add&#xff0c;在子页面我通过isPdf来显示我想要的内容。现在我在父页面先通过this.$refs.child.control…

分布式缓存

分布式缓存 缓存雪崩 缓存雪崩我们可以简单的理解为&#xff1a;由于原有缓存失效&#xff0c;新缓存未到期间所有原本应该访问缓存的请求都去查询数据库了&#xff0c;而对数据库 CPU 和内存造成巨大压力&#xff0c;严重的会造成数据库宕机。从而形成一系列连锁反应&#xf…