利用大型语言模型提升个性化推荐的异构知识融合方法

本文主要是介绍利用大型语言模型提升个性化推荐的异构知识融合方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在推荐系统中,分析和挖掘用户行为是至关重要的,尤其是在美团外卖这样的平台上,用户行为表现出多样性,包括不同的行为主体(如商家和产品)、内容(如曝光、点击和订单)和场景(如APP首页和小程序)。传统的推荐系统通过不断添加用户行为到模型中,导致两个主要问题:一是行为主体的多样性导致特征稀疏,二是用户、商家和商品行为的独立建模忽略了行为间的异构知识融合。为了克服这些问题,研究者们提出了利用大模型(LLM)来融合和推理用户行为中的异构知识。LLM因其丰富的语义知识和强大的推理能力,在多个领域展现了卓越性能。通过设计新的用户行为建模框架,研究者们能够将结构化的用户行为数据转化为非结构化的异构知识,进而通过指令调整和微调,使LLM更精准地适应个性化推荐任务。这一方法不仅提高了推荐系统的性能,还为处理用户行为的复杂性和多样性提供了新途径。

异构知识融合(HKF)是一种创新的个性化推荐方法,通过以下三个阶段实现的:

1. 异构知识融合
在这一阶段,研究者们利用大型语言模型(LLM)的语义理解和推理能力,将用户行为中的多样化信息融合为统一的知识表示。具体来说,他们首先从数据库中以用户为中心提取出多维度的行为数据,包括不同的行为主体(如商家、商品)、行为内容(如曝光、点击、订单)和行为场景(如APP首页、小程序)。然后,通过设计模板化的文本语言,将这些异构行为数据转化为结构化的文本描述。最后,使用如ChatGPT这样的LLM进行知识融合,将行为文本转化为包含丰富语义信息的异构知识文本。

2. 指令微调(Instruction Tuning)
为了使LLM更好地适应推荐任务并提高其在推荐任务中的性能,研究者们设计了一个指令数据集,该数据集包含了输入、指令和输出三个部分。输入即为上一阶段生成的异构知识文本。指令则是一系列为推荐任务特别设计的任务描述,包括用户对类别、价格和商家等的偏好推荐。输出是用户下一次订单的真实标签。基于这个指令数据集,研究者们对LLM进行微调,以提高其对异构知识的理解和推荐任务的适应性。他们选择了一个开源的LLM模型ChatGLM-6B作为基础模型,并采用了LoRA(Low-rank Adaptation)方法进行微调。

3. 推荐
在推荐阶段,研究者们将用户行为的异构知识从数据库中检索出来,作为LLM的输入。然后,根据推荐任务设计指令,利用微调后的LLM进行推理和计算,最终输出用户的推荐结果。这些推荐结果可以是直接以自然语言形式呈现的推荐内容,也可以作为语义特征,与传统推荐模型中的现有特征结合,以增强推荐效果。

通过这三个阶段,研究者们构建了一个能够处理用户行为异构性并提供个性化推荐的系统。该方法的核心在于利用LLM的能力来理解和整合用户行为中的复杂信息,并通过专门的指令调整来优化模型的推荐性能。

作者们通过一系列实验来验证他们提出的异构知识融合(HKF)方法在个性化推荐任务中的有效性。以下是实验部分的详细说明:

1. 实验实施
数据集: 作者们选择了2023年3月至4月的美团外卖数据集作为实验数据。
任务设计: 设计了20个推荐任务指令,构建了包含10万用户和100万条指令数据的数据集。
测试集: 测试集选自2023年5月9日的样本,包含10,000条指令数据,用于评估推荐POIs和类别的任务。
数据限制: 由于输入长度限制,用户序列长度被限制为300。
匿名化处理: 用户和POI数据在输入到LLM之前进行了匿名化处理。

2. 结果与分析
评估指标: 为了评估推荐效果,作者们选择了top-k HR(精准率)和top-k NDCG(标准化折扣累积增益)作为评估指标,其中k=5和10。
与传统方法比较: 将HKF方法与传统推荐方法(如Caser和BERT4Rec)以及语言模型(如P5和ChatGLM-6B)进行了比较。

实验结果
性能提升: 实验结果表明,HKF方法在Waimai数据集上的表现超过了多个基线模型,实现了显著的性能提升。
异构知识融合的重要性: 通过对比去除异构知识融合阶段的模型,证明了异构知识融合对于准确捕捉用户兴趣和提升模型性能的重要性。
指令调整的效果: 通过对比去除指令调整阶段的模型,展示了指令调整可以有效促进LLM适应下游推荐任务。

在线A/B测试
在线应用: 作者们还在美团外卖推荐系统中进行了在线A/B测试,使用前一天用户搜索查询的计算特征,并在当前日进行实时计算。
测试时间: 实验运行时间为2023年5月9日至5月19日。
测试结果: HKF方法在冷启动用户中实现了点击通过率(CTR)提升2.45%和总商品交易额(GMV)提升3.61%,而对其他用户则没有显著影响。

实验结论
实验结果证明了HKF方法在整合异构用户行为和提高推荐性能方面的有效性。作者们指出,尽管LLM在餐饮领域的专业知识不足,限制了其对异构行为的完全理解和整合,但通过在该领域进一步训练LLM,可以克服这一限制。

这些实验不仅展示了HKF方法的潜力,还为未来的研究方向提供了指导,即通过在特定领域内进一步训练LLM,以更好地整合异构知识并提升推荐系统的性能。

通过在Waimai数据集上的广泛实验,HKFR证明了其在提升个性化推荐性能方面的显著效果。未来工作的方向,即在餐饮领域对HKFR进行更深入的训练,以期实现更精准的异构知识整合和更优的推荐效果。通过不断优化和特定领域的定制化训练,HKFR有潜力进一步推动个性化推荐系统的发展。

论文链接:http://arxiv.org/pdf/2308.03333

这篇关于利用大型语言模型提升个性化推荐的异构知识融合方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/950629

相关文章

Python常用命令提示符使用方法详解

《Python常用命令提示符使用方法详解》在学习python的过程中,我们需要用到命令提示符(CMD)进行环境的配置,:本文主要介绍Python常用命令提示符使用方法的相关资料,文中通过代码介绍的... 目录一、python环境基础命令【Windows】1、检查Python是否安装2、 查看Python的安

Maven 配置中的 <mirror>绕过 HTTP 阻断机制的方法

《Maven配置中的<mirror>绕过HTTP阻断机制的方法》:本文主要介绍Maven配置中的<mirror>绕过HTTP阻断机制的方法,本文给大家分享问题原因及解决方案,感兴趣的朋友一... 目录一、问题场景:升级 Maven 后构建失败二、解决方案:通过 <mirror> 配置覆盖默认行为1. 配置示

SpringBoot排查和解决JSON解析错误(400 Bad Request)的方法

《SpringBoot排查和解决JSON解析错误(400BadRequest)的方法》在开发SpringBootRESTfulAPI时,客户端与服务端的数据交互通常使用JSON格式,然而,JSON... 目录问题背景1. 问题描述2. 错误分析解决方案1. 手动重新输入jsON2. 使用工具清理JSON3.

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

Java中Map.Entry()含义及方法使用代码

《Java中Map.Entry()含义及方法使用代码》:本文主要介绍Java中Map.Entry()含义及方法使用的相关资料,Map.Entry是Java中Map的静态内部接口,用于表示键值对,其... 目录前言 Map.Entry作用核心方法常见使用场景1. 遍历 Map 的所有键值对2. 直接修改 Ma

Mybatis Plus Join使用方法示例详解

《MybatisPlusJoin使用方法示例详解》:本文主要介绍MybatisPlusJoin使用方法示例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录1、pom文件2、yaml配置文件3、分页插件4、示例代码:5、测试代码6、和PageHelper结合6

Java中实现线程的创建和启动的方法

《Java中实现线程的创建和启动的方法》在Java中,实现线程的创建和启动是两个不同但紧密相关的概念,理解为什么要启动线程(调用start()方法)而非直接调用run()方法,是掌握多线程编程的关键,... 目录1. 线程的生命周期2. start() vs run() 的本质区别3. 为什么必须通过 st

Java SWT库详解与安装指南(最新推荐)

《JavaSWT库详解与安装指南(最新推荐)》:本文主要介绍JavaSWT库详解与安装指南,在本章中,我们介绍了如何下载、安装SWTJAR包,并详述了在Eclipse以及命令行环境中配置Java... 目录1. Java SWT类库概述2. SWT与AWT和Swing的区别2.1 历史背景与设计理念2.1.

Go语言中泄漏缓冲区的问题解决

《Go语言中泄漏缓冲区的问题解决》缓冲区是一种常见的数据结构,常被用于在不同的并发单元之间传递数据,然而,若缓冲区使用不当,就可能引发泄漏缓冲区问题,本文就来介绍一下问题的解决,感兴趣的可以了解一下... 目录引言泄漏缓冲区的基本概念代码示例:泄漏缓冲区的产生项目场景:Web 服务器中的请求缓冲场景描述代码

Go语言如何判断两张图片的相似度

《Go语言如何判断两张图片的相似度》这篇文章主要为大家详细介绍了Go语言如何中实现判断两张图片的相似度的两种方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 在介绍技术细节前,我们先来看看图片对比在哪些场景下可以用得到:图片去重:自动删除重复图片,为存储空间"瘦身"。想象你是一个