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

news2025/5/22 7:56:22

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.coloradmin.cn/o/1382223.html

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

相关文章

milvus安装及langchain调用

milvus安装及langchain调用 安装milvus安装docker-compose安装milvus安装可视化界面attu 通过langchain调用milvus安装langchain安装pymilvus调用milvus 安装milvus 安装docker-compose 下载文件 curl -L https://github.com/docker/compose/releases/download/1.21.1/docke…

【QT】QMessageBox 弹出消息框,对话确认框(确定/取消)

1.无互动 QMessageBox::information(nullptr,"信息","登陆成功");2.互动:确定、取消 QMessageBox::StandardButton box; box QMessageBox::question(this, "提示", "确定要添加吗?", QMessageBox::Yes|QMessageBox::…

【论文阅读笔记】MobileSal: Extremely Efficient RGB-D Salient Object Detection

1.介绍 MobileSal: Extremely Efficient RGB-D Salient Object Detection MobileSal:极其高效的RGB-D显著对象检测 2021年发表在 IEEE Transactions on Pattern Analysis and Machine Intelligence。 Paper Code 2.摘要 神经网络的高计算成本阻碍了RGB-D显着对象…

数据结构与算法教程,数据结构C语言版教程!(第三部分、栈(Stack)和队列(Queue)详解)六

第三部分、栈(Stack)和队列(Queue)详解 栈和队列,严格意义上来说,也属于线性表,因为它们也都用于存储逻辑关系为 "一对一" 的数据,但由于它们比较特殊,因此将其单独作为一章,做重点讲解。 使用栈…

vue3 - 自定义弹框组件

写了一个弹框组件 <template><transition name"modal-fade"><div v-if"showFlag" class"myModal"><div class"content"><div class"topBox"><div class"leftTitle"><spa…

爬虫—抓取表情党热门栏目名称及链接

爬虫—抓取表情党热门栏目名称及链接 表情党网址&#xff1a;https://qq.yh31.com/ 目标&#xff1a;抓取表情党主页的热门栏目名称及对应的链接&#xff0c;如下图所示&#xff1a; 按F12&#xff08;谷歌浏览器&#xff09;&#xff0c;进入开发者工具模式&#xff0c;进行…

机器学习数据处理

欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;滤波估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能等相关领域的知识和…

【图形学】探秘图形学奥秘:DDA与Bresenham算法的解密与实战

​&#x1f308;个人主页&#xff1a;Sarapines Programmer&#x1f525; 系列专栏&#xff1a;《图形学 | 图像解码》⏰诗赋清音&#xff1a;云生高巅梦远游&#xff0c; 星光点缀碧海愁。 山川深邃情难晤&#xff0c; 剑气凌云志自修。 ​ 目录 &#x1f30c;1. 初识模式识别…

28 星际旋转

效果演示 实现了一个太阳系动画&#xff0c;其中包括了地球、火星、金星、土星、水星、天王星、海王星以及火卫二号等行星的动画效果。太阳系的行星都被放在一个固定的容器中&#xff0c;并使用CSS动画来实现旋转和移动的效果。当太阳系的行星绕着太阳运行时&#xff0c;它们会…

鸿蒙开发-UI-组件-状态管理

鸿蒙开发-序言 鸿蒙开发-工具 鸿蒙开发-初体验 鸿蒙开发-运行机制 鸿蒙开发-运行机制-Stage模型 鸿蒙开发-UI 鸿蒙开发-UI-组件 文章目录 前言 一、什么是状态管理 二、管理组件拥有的状态 1.组件内状态 State装饰器 2.父子组价单向同步 Prop装饰器 3.父子双向同步 Link装…

Gitlab中的CICD的使用方法

一、CI/CD执行机制 二、离线安装gitlab-runner 下载相应版本的gitlab-runner &#xff08;下载地址&#xff1a;https://packages.gitlab.com/runner/gitlab-runner&#xff09; dpkg -i gitlab-runner_12.8.0_amd64.debgitlab-runner register第3步中需要的信息可从下图所示…

mysql关于创建表的小试题

目录 例题&#xff1a; 解题思路及步骤&#xff1a; 实验步骤&#xff1a; 步骤一&#xff1a;创建数据库 步骤二&#xff1a;创建表 步骤三&#xff1a;插入数据 例题&#xff1a; 1、创建一个英雄表(hero)&#xff0c;管于四大名著的主键 nam…

翻译: Streamlit从入门到精通 基础控件 一

这个关于Streamlit的教程旨在帮助数据科学家或机器学习工程师&#xff0c;他们不是网络开发者&#xff0c;也不想花费数周时间学习使用这些框架来构建网络应用程序。 1. 什么是Streamlit&#xff1f; Streamlit是一个免费且开源的框架&#xff0c;用于快速构建和共享美观的机器…

基于Go框架,Cloudreve个人免费开源网盘系统源码,支持云存储(七牛、阿里云OSS、腾讯云COS、又拍云、OneDrive)

源码介绍 在数字化时代&#xff0c;我们经常需要存储、分享大量的文件&#xff0c;如照片、视频、文档等。然而&#xff0c;许多商业网盘服务却存在限速、收费等问题&#xff0c;给用户带来诸多不便。现在&#xff0c;我们为您推荐一款免费开源的网盘系统——Cloudreve。 Clo…

【PACS Web系统】全网首发JAVA开发PACS医疗影像工作站

目录 业务分析&#xff1a; 市场前景&#xff1a; Web版相对单机版优势&#xff1a; 主干功能&#xff1a; RBAC用户权限管理、服务监控、字典维护、通知公告等基础模块&#xff1b; 手动上传Dicom文件/文件夹&#xff0c;及接收Dicom服务器的Dicom文件集功能&#xff1b…

Sqoop与其他数据采集工具的比较分析

比较Sqoop与其他数据采集工具是一个重要的话题&#xff0c;因为不同的工具在不同的情况下可能更适合。在本博客文章中&#xff0c;将深入比较Sqoop与其他数据采集工具&#xff0c;提供详细的示例代码和全面的内容&#xff0c;以帮助大家更好地了解它们之间的差异和优劣势。 Sq…

LLVM系列(1): 在微软Visual Studio下编译LLVM

参考链接&#xff1a; Getting Started with the LLVM System using Microsoft Visual Studio — LLVM 18.0.0git documentation 1.安装visualstudio&#xff0c;版本需要大于vs2019 本机环境已安装visual studio2022&#xff0c;省略 2安装Makefile&#xff0c;版本需要大…

操作系统详解(5)——信号(Signal)

系列文章&#xff1a; 操作系统详解(1)——操作系统的作用 操作系统详解(2)——异常处理(Exception) 操作系统详解(3)——进程、并发和并行 操作系统详解(4)——进程控制(fork, waitpid, sleep, execve) 文章目录 概述信号的种类Hardware EventsSoftware Events 信号的原理信号…

PostgreSQL认证考试PGCA、PGCE、PGCM

PostgreSQL认证考试PGCA、PGCE、PGCM 【重点&#xff01;重点&#xff01;重点&#xff01;】PGCA、PGCE、PGCM 直通车快速下正&#xff0c;省心省力&#xff0c;每2个月一次考试 PGCE考试通知 &#xff08;2024&#xff09; 一、考试概览 &#xff08;一&#xff09; 报名要…

【C++】wxWidgets库实现窗体程序

一、安装wxWidgets库 在Debian系统上使用wxWidgets库来创建一个基本的窗体程序&#xff0c;首先需要确保已经安装了wxWidgets相关的库和开发工具。下面是安装wxWidgets的步骤&#xff1a; 打开终端&#xff0c;使用下述命令安装wxWidgets库及其开发文件&#xff1a; sudo ap…