当前位置: 首页 > news >正文

又一次升级:字节在用大模型在做推荐啦!

原文链接

字节前几天2024年9年19日公开发布的论文《HLLM:通过分层大型语言模型增强基于物品和用户模型的序列推荐效果》。

文字、图片、音频、视频这四大类信息载体,在生产端都已被AI生成赋能助力,再往前一步,一定需要一个更强势的、更有效率的推荐分发机制。因为只有分发到位,才会激发更多的供给生产…

传统推荐

传统的推荐项目是将user与item转换为ID并创建对应的embedding table,在得到向量后,可以基于item进行推荐和基于user进行推荐,目前常用的还有单塔和双塔模型等。

在提取制作item embedding table方面,可以提取物品中文描述的关键词,然后再把关键词转换为词向量来代表物品,随着深度学习的发展,提取关键词再转为向量的过程逐渐被LSTM或Bert等具备语言能力的序列模型代替,现在更有M3E等专门把自然语言转换成稠密向量的模型。而LLMs具备强大的语义理解能力,所以大厂自然把转向量的思路往大模型的方向靠近。

使用大模型进行推荐

大模型分为 Item LLM 和 User LLM,两者参数并不共享,直接基于已经预训练好的LLMs进行文本到向量的转换。

Item LLM:使用 item 的描述作为输入,例如:Title、Tag、Description,最后再加上一个特殊 token [ITEM],特殊token对应输出代表该 item 的 embedding

User LLM:输入是用户历史行为(浏览、加购、成交)的交互序列,输入序列中每个embedding就来自于 Item LLM 的输出。由于输入并非文本token,所以对于User LLM会去除预训练模型的 word embedding

那么大模型的优化是通过next token prediction进行优化的,但是现在的输入不再是word embedding,该怎么做呢?其实很简单,我们不看大模型的输入与输出,只利用大模型的主体框架,把它看成一个普通的序列生成模型或者判别模型就好。

序列生成模型:我们在app上实际购物浏览是,行为是有顺序的,对于某个物品 E i E_i Ei模型输出的 E i + 1 ′ E_{i+1}^{'} Ei+1是正样本,在序列的尾端就是预测你下一步要浏览的物品,我可以随机抽取的其他物品为负样本,将对比学习的InfoNCE作为预测next token的损失函数。

判别模型:其实就是目前最常用的单塔与双塔模型,目标是二分类。单塔模型将用户历史浏览的物品embedding( E 1 − E n E_1-E_n E1En,由Item LLM生成)依次输入,然后拼上一个待预测物品,让模型预测用户是否会购买这个物品。双塔模型是使用用户历史浏览物品生成一个USER用户向量,然后再使用这个用户向量与目标物品向量进行打分预测。

在实际应用中,使用双塔模型更多一些,因为会有一个稳定的中间量即用户向量可以储存,计算效率更高。单塔模型可以动态抽取实时浏览数据进行预测,效果更好但是计算效率低。

实验结论

字节提出的 Hierarchical Large Language Model(HLLM)网络架构,通过训练Item LLM与User LLM,通过实验表明在公开数据集上显著超越 ID-based方法,并呈现了Scaling Law特性。在抖音落地,A/B实验显示在重要指标上增长0.705%。其下是一些模型指标:

  • 采用 [ITEM] token 提取 embedding比mean pooling方法好
  • Item LLM 采用Tag + Title + Description = length 256比其短的效果更好
  • 输入用户序列长度采用length=50相比其他短的会更好
  • 工业场景下Item LLM和User LLM采用7B更好比其小的更好,User LLM输入长度采用1k比其短的更好

在这里插入图片描述

http://www.lryc.cn/news/467583.html

相关文章:

  • 无线领夹麦克风怎么挑选,麦克风行业常见踩坑点,避雷不专业产品
  • OJ-1017中文分词模拟器
  • Unity 关于UGUI动静分离面试题详解
  • HarmonyNext保存Base64文件到Download下
  • 069_基于springboot的OA管理系统
  • hive数据库,表操作
  • openpnp - 在顶部相机/底部相机高级校正完成后,需要设置裁剪所有无效像素
  • Vue+TypeScript+SpringBoot的WebSocket基础教学
  • 大话网络协议:HTTPS协议和HTTP协议有何不同?为什么HTTPS更安全
  • 13图书归还-云图书管理系统(Vue3+Spring Boot+element plus)
  • 中航资本:“女人的茅台”重挫!超7700亿元英伟达概念业绩爆发
  • day7:软件包管理
  • 探索Konko AI:快速集成大语言模型的最佳实践
  • 网络地址和本地网络地址
  • 【closerAI ComfyUI】AI绘画界新技术RF Inversion图像编辑和风格迁移!能跟ipadapter争高低吗?
  • 【Spring篇】Spring的Aop详解
  • Spring与其他框架的比较
  • 论当前的云计算
  • Spring Boot 整合 RocketMQ 之消息消费手动提交 ACK 实战【案例分享】
  • 胃癌数据集(不定期更新)
  • zh/FAQ/CentOSStream-CentOS Stream 常见问题
  • 多台西门子PLC与多台三菱PLC之间实时通讯的方案(PLC内不用编程)
  • C++ [项目] 恶魔轮盘赌
  • 微信小程序版本更新管理——实现自动更新
  • Python使用Selenium库实现CSDN自动化发帖
  • StringBulider和StringBuffer的底层源码剖析
  • 手机空号过滤接口-在线手机空号检测-手机空号过滤API
  • ubuntu 用ss-TPROXY实现透明代理,基于TPROXY的透明TCP/UDP代理,在 Linux 2.6.28 后进入官方内核。
  • 报错解决:opene3d draw_geometries(): incompatible function arguments.
  • Clickhouse笔记(二) 集群搭建