【LLM+RS】LLM在推荐系统的实践应用(华为诺亚)

note

  • LLM用于推荐主要还是解决推荐系统加入open domain 的知识。可以基于具体推荐场景数据做SFT。
  • 学习华为诺亚-技术分享-LLM在推荐系统的实践应用。

文章目录

  • note
  • 一、背景和问题
  • 二、推荐系统中哪里使用LLM
    • 1. 特征工程
    • 2. 特征编码
    • 3. 打分排序
  • 三、推荐系统中如何使用LLM
  • 四、挑战和展望
  • Reference

一、背景和问题

  • 传统的推荐模型网络参数效果较小(不包括embedding参数),训练和推理的时间、空间开销较小,也能充分利用用户-物品的协同信号。
  • 但是它的缺陷是只能利用数据集内的知识,难以应用open domain 的知识,缺乏此类语义信息和深度推理的能力。

在这里插入图片描述

华为-综述《How Can Recommender Systems Benefit from Large Language Models: A Survey》

二、推荐系统中哪里使用LLM

主流基于深度学习的推荐系统流程:

在这里插入图片描述

1. 特征工程

特征工程主要聚焦于三方面:一是用户画像,是对于用户侧的理解;第二是物品画像,是对于物品内容的理解;第三是样本的扩充。已经有不同工作用 LLM 来对它们进行增强。(GENRE)在新闻推荐的场景下,用 LLM 构造了三个不同的prompts,分别来进行新闻摘要的改写,用户画像的构建,还有样本增强。
在这里插入图片描述

2. 特征编码

第二部分是用语言模型来做特征编码,丰富语义信息。这里的语言模型其实都不大,类似于 Bert ,因为它要内嵌进推荐模型一起去训练和推理,在实时性要求比较高和海量训练样本的情况下,语言模型的大小不会大。这里就聚焦在两块,一是如何用语言模型来丰富用户特征的表征,二是如何用语言模型来丰富物品特征的表征。
在这里插入图片描述

3. 打分排序

打分和排序阶段可以分成以下三种不同的任务,第一种是直接给 item 来进行打分;第二种是物品生成任务,直接生成用户感兴趣的下一个物品或者物品列表;第三种混合任务,用多任务的方法来建模。

三、推荐系统中如何使用LLM

在这里插入图片描述
以上四个区域的划分数据截止至2023年6月。x 轴表示在训练阶段大语言模型是否经过了微调,左侧是大语言模型不需要微调的工作,右侧是需要微调的。y 轴是推理阶段是否完全用大语言模型、抛弃了传统推荐模型。在y 轴的上半部分是依然需要推荐模型来进行辅助,下半部分是完全把推荐模型摒弃掉,用大语言模型来搞定推荐系统的推理。

从时间来看,第一象限实际上就是很多年前已经开始做的,用 Bert 来做一些 user 和item 的encoding。最近 ChatGPT 出来之后有很多的工作直接来探索怎么用 ChatGPT 来做推荐。一些探索性的工作直接从第一象限插到了第三象限,但是它的效果是有待提升的。之后出现了两个明显的趋势,其核心就是既然直接用大语言模型无法做好推荐,那就想办法把推荐的信号加进来。

第一个趋势是大语言模型依然不微调,通过模型的方式来进行补救,加入了推荐模型,主要的工作在第二象限;
另一个趋势是在第四象限,认为大语言模型单独可以做推荐,把推荐的信号加进去做微调。也许未来这两个路线又可以重新回归到第一个象限。这个图是尝试把现在 基于LLM的推荐模型 进行分类,后面也会持续更新该工作。当前survey比较偏应用视角,大家也可以关注下其它偏技术视角的工作。

注:CRM指传统推荐模型。

四、挑战和展望

  • 第一个趋势是LLM已经从传统的编码器和打分器在逐步外延,外延到特征工程、一些神经网络的设计,甚至是流程的控制。
  • 第二个趋势是纯用 LLM 不 微调从现在的实验结果来看效果不佳,如果要达到一个比较好的推荐效果,有两条路,一是微调大语言模型,另一个是用传统语言模型来进行融合。

未来大语言模型用在推荐里有如下几个可以发力的场景:

  • 第一个就是冷启动和长尾问题;
  • 第二个是引入外部知识,现在引入外部知识的手段还比较粗糙,就是把大语言模型拿来生成,其实纯用语言模型也没有很多外部知识。相反,语言模型也需要外部的知识,比如它需要集成一些检索能力,需要集成一些工具调用的能力。现在很多工作只用了基础的语言模型,并没有用它的检索和工具调用的能力。未来能够更加高效地、更加完备地引入更多的外部知识,通过检索或者工具的方式,也是提升推荐体验的一个方向。
  • 第三个改善交互体验,让用户可以主动通过交互时界面自由地描述其需求,从而实现精准推荐。

在这里插入图片描述

Reference

[1] 大语言模型在推荐系统的实践应用. 华为诺亚实验室.唐睿明
[2] 华为-综述《How Can Recommender Systems Benefit from Large Language Models: A Survey》

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

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

相关文章

共享WiFi贴项目加盟可以解决商家哪些痛点?

近年来,共享WiFi贴项目在共享商业领域引起了广泛关注。作为一种便捷的网络分享工具,共享WiFi贴不仅受到很多人的青睐,更能够为商家带来诸多实际利益。那么,共享WiFi贴项目加盟究竟可以解决商家哪些痛点呢? 共享WiFi贴为…

【C#】知识点实践序列之Lock的锁定代码块

大家好,我是全栈小5,欢迎来到《小5讲堂之知识点实践序列》文章。 2024年第1篇文章,此篇文章是C#知识点实践序列之Lock知识点,博主能力有限,理解水平有限,若有不对之处望指正! 本篇验证Lock锁定代…

Navicat(数据库可视化软件)安装教程以及连接MYSQL

Navicat安装教程以及连接MYSQL Navicat(数据库可视化软件)安装流程安装MySQLnavicat连接mysql数据库 Navicat(数据库可视化软件) Navicat 是一款专门为 MySQL 设计的可视化数据库 GUI 管理工具,我们可以在自己的计算机…

深入浅出Python日志打印

0.引言 在编程过程中,日志记录是一项非常重要的任务,无论是用于调试代码、记录系统运行状态,还是跟踪可能出现的问题,日志都能发挥重要作用。然而,许多开发者习惯使用简单的print语句来记录信息,这种方法虽…

Qt的三大机制(面试)

Qt三大核心机制是信号与槽机制、事件机制和对象模型。 信号与槽机制:Qt中的信号与槽机制是一种用于对象间通信的机制。一个对象可以通过发出信号来通知其他对象,其他对象可以通过槽函数来响应该信号。信号与槽可以跨越不同的线程,实现了对象…

AI:105-基于深度学习的手术操作监控与辅助

🚀点击这里直接跳转到本专栏,可查阅顶置最新的指南宝典~ 🎉🎊🎉 你的技术旅程将在这里启航! 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带有在本地跑过的关键代码,详细讲解供…

向爬虫而生---Redis 基石篇4 <拓展Set>

前言: 延伸上一篇:https://blog.csdn.net/m0_56758840/article/details/135349796 挖一挖集合的一些骚操作~ 正文: 基本操作: 集合是Redis中的一种数据类型,它具有以下几个基本概念和特性:无重复、无序和集合间的运算。下面是几个常用的集合命令&…

ensp vlan连接(详细)

1.将需要的设备放置好 2.将设备连接起来 3.启动所有设备 4.备注好每台PC机的信息 5.配置好每台PC机 6.配置交换机1 进入配置视图,关闭信息提示 重命名设备 批量创建VLAN 开始配置接口 更改接口类型为ACCESS 将接口划分到对应的VLANN 配置下一个接口,步…

编译 nccl-tests 项目

1,编译 下载源代码 git clone --recursive https://github.com/NVIDIA/nccl-tests.git 编译源代码 cd nccl-tests/ make -j 2,运行 cd ./build/ ./all_reduce_perf --help ./all_reduce_perf -b 8 -e 256M -f 2 -g 4 效果图: 3&#…

说说产品经理能力模型

产品经理的能力模型应该是什么样的,可能100个产品人会有100种看法,每个人的认知都是不一样的,今天和大家分享下我对产品经理能力模型的总结。 前段时间,一个30多岁做前端开发的朋友跟我说想转行做产品,让我帮忙指导下…

四种限流算法

四种限流算法 为什么要限流 限流是为了防止系统突然收到大量请求,后台面对大量并发请求对cpu和内存,网络io产生巨大压力,可能将一些服务如mysql,redis等打崩,引发系统故障,服务瘫痪。 固定窗口&#xff…

asp.net core mvc中的viewdata和viewbag的用法

在ASP.NET Core MVC中,ViewData和ViewBag都是用于在控制器中传递数据给视图的方式,但它们在实现上有一些区别。 ViewData是一个ViewDataDictionary对象,它是一个字典,可以通过键值对的方式传递数据。你可以像这样在控制器中设置V…

关于Python里xlwings库对Excel表格的操作(三十)

这篇小笔记主要记录如何【如何使用“Chart类”、“Api类"和“Axes函数”为新图表设置标题文本内容、字体、字号、粗细、正斜、颜色、坐标轴主要网格线】。前面的小笔记已整理成目录,可点链接去目录寻找所需更方便。 【目录部分内容如下】【点击此处可进入目录】…

LeetCode每周五题_2024/01/01~2024/01/05

文章目录 1599. 经营摩天轮的最大利润 [2024/01/01]题目题解 466. 统计重复个数 [2024/01/02]题目题解 2487. 从链表中移除节点 [2024/01/03]题目题解 1599. 经营摩天轮的最大利润 [2024/01/01] 题目 1599. 经营摩天轮的最大利润 你正在经营一座摩天轮,该摩天轮共…

Maple 各版本安装指南

Maple 下载链接 https://pan.baidu.com/s/11hKo1XxZGa0xv3Ivj6fbEA?pwd0531 1.鼠标右击【Maple 2023】压缩包(win11及以上系统需先点击“显示更多选项”)【解压到 Maple 2023】。 2.打开解压后的文件夹,鼠标右击【Setup】选择【以管理员身…

计算机毕业设计------SSM的公寓房屋出租系统

项目介绍 该项目分为前后台,分为普通用户与管理员两种角色。 前台主要功能包括: 普通用户的注册、登录,房屋列表展示,租房,我的订单、用户中心等功能模块; 后台主要功能包括: 系统设置:菜单管…

记一次docker中安装redis的过程

1. Docker搜索redis镜像 docker search redis2. Docker搜索redis镜像 docker pull redis3.Docker挂载配置文件 挂载 redis 的配置文件挂载 redis 的持久化文件(为了数据的持久化)。 conf文件位置: /home/redis/myredis/redis.conf data文件…

线程池的运行原理和使用案例

在日常开发中,如果需要使用到多线程,最简单的方式是 new Thread,但是这种方式有很大弊端: 首先new Thread 是比较消耗系统性能的,性能比较差;线程缺乏统一的管理,会无限制的创建新线程&#xf…

57个Linux常用命令含参数介绍和使用示例

点击下载《57个Linux常用命令含参数介绍和使用示例》 1. pwd 作用:显示当前所在的工作目录的全路径名称 //显示当前目录 pwd该命令无需任何参数,只需在终端窗口中输入 pwd 命令即可使用。 2. cd 作用:更改当前工作目录。 //跳转目录至D…

航空业数字化展翅高飞,开源网安专业服务保驾护航

​某知名航空公司是中国首批民营航空公司之一,运营国内外航线200多条,也是国内民航最高客座率的航空公司之一。在数字化发展中,该航空公司以数据驱动决策,通过精细化管理、数字创新和模式优化等方式,实现了精准营销和个…