限时领|《AI 百问百答》专栏课+实体书(包邮)! 了解详情
写点什么

如何使用 MeLU 解决用户冷启动问题

  • 2022-03-01
  • 本文字数:1968 字

    阅读完需:约 6 分钟

如何使用MeLU解决用户冷启动问题

MeLU 全称为 Meta-Learned User Preference Estimator for Cold-Start Recommendation,旨在解决推荐中的冷启动问题,能够保证新用户只有少量行为的基础上训练出一个不过拟合并且效果不错的模型。除此之外 MeLU 还可以找到验证商品集,将这些验证商品集展示给新用户能帮助推荐系统更快速的识别出用户兴趣。

MAML


首先我们需要先介绍一下 MeLU 里面的核心算法:Model-Agnostic Meta-Learning,本文简称 MAML。该算法的目的是给定一个新任务,我们能通过该任务下极少量的样本达到一个不错的模型效果。因为样本比较少因此模型的训练迭代次数也会很少。这种能力对于模型来说很难,因为样本少的情况下很容易过拟合,让模型学习出只适用于这几个样本的一些无用的知识。另一方面人类却很擅长这方面,我们总是能找出新领域和自己已经积累的知识的联系,比如人类有语言大师,同时掌握很多门语言。他们在掌握一两门语言的基础上,会利用自己学习语言的经验比其他人更快的掌握新的语言。你可以理解为这些语言大师其实学到了某种元知识,适用于所有语言,而不是只适用于某一种语言。这种元知识帮助他们更快的学习新的语言。用模型的语言描述一下就是:对于新任务,在元知识的基础上经过几步 back propagation 就能达到比较低的 loss。

 

MAML 的伪代码如下。其实 MAML 就是在显式的建模上述描述的过程:让模型学习元知识,而不是只适用于某一个任务的知识。假设我们有 T 个任务,p(T)表示训练时从这些任务里面抽样的概率,实践中完全随机采样也可以当作一种概率分布。我们要学习的元知识就是θ。我们通过概率分布获得一些需要训练的任务。之后针对每个任务我们拿 K 个样本进行梯度下降,并拿这个梯度更新原始参数得到θ。之后把更新后的参数带入损失函数得到 loss,这个 loss 代表了θ经过一步迭代之后的模型效果(这里也可以进行多步迭代)。这个 loss 越小,表示θ越有效,即能在极少迭代的情况下达到一个不错的模型精度。这里完全和我们上面描述的元知识匹配。并且这里的梯度方向是所有任务梯度的加和,得到的元知识也是适用于所有任务的。注意到θ是通过间接影响到最终的 loss。



实践中第 6 步和第 8 步用于计算梯度的样本是不相交的,第 6 步的样本用于减少具体任务的 loss,叫做 support set,同时这一步的参数更新称为 local update。第 8 步用于验证经过几步迭代后的效果,叫做 query set, 同时这一步的参数更新称为 global update。

 

当一个新的任务来的时候,只有 support set,我们通过 support set 进行训练后使用模型进行预测。可以看到 MAML 只储存适用全部任务的元知识,如果应用于某一个新任务是需要先在 support set 上基于元知识来训练的。

User preference estimator


在推荐领域,我们可以把学习不同用户的兴趣偏好当作不同的任务,这样就能从老用户丰富的行为里面学习到能快速迁移到新用户的元知识。用户兴趣识别模型如下,其中 input layer 就是用户侧和商品侧的泛化特征,比如用户年龄、用户邮编、内容体裁、内容的演员等等。注意这里是没有任何 uid、gid 等能唯一标记用户或者内容的特化特征的。然后 input layer 的原始特征经过 embedding 之后就 concat 起来经过几层 nn(决策层)输出最终的预测结果。上述模型的全部参数就是我们所需要的元知识。利用上面 MAML 的流程优化得到的θ能够保证对所有用户来说,进行几步迭代之后(给定几个用户行为过的商品进行训练), 得到的 loss 最低。



区分通用参数和个性化参数


MeLU 不仅仅是直接套用 MAML 的框架,而是做了如下的修改



上图可以清晰的看到 local update 的时候不是更新全部参数的,而是只更新决策层,泛化特征的 emb 不会进行更新。也就是如果两个泛化特征相同的用户对同类的内容反馈不一样的时候,只调整决策层。泛化特征不负责特定用户的个性化兴趣。举个例子来说比如两个都是 18 岁的男性,第一个对恐怖电影有正反馈,第二个有负反馈,这两个样本对应的 embeding layer 是完全一样的,但是却有相反的 label,梯度回传的时候会导致泛化特征的 emb 学习的不稳定。因此需要把用户个性化的信息储存在决策层。所以整个的 MeLU 训练流程如下:



表示泛化特征的 embedding,表示决策层的参数


当我们需要预测新用户的时候,需要把新用户行为过的内容作为 support set 来 local update,之后拿训练好的模型进行预测。

验证商品集


MeLU 另一个作用是可以找出验证商品,验证商品可以理解为能帮助模型快速识别用户兴趣的商品。



如果有一个商品在决策层的平均梯度越大,表示我们需要越费力气从元知识进行改变来适配这个用户对商品的反馈。也就表示这个商品对用户的个人兴趣影响越大并且不同于普适的规则。所以我们可以给新用户展示这些决策层平均梯度大的商品来帮助模型更快的识别用户的兴趣。但是我们还需要保证这个商品的典型性,也就是大部分人都行为过这个商品,保证这个商品不是小众而变的特殊。MeLU 最终会根据上面两个维度进行归一加权,找出符合要求的商品集。

2022-03-01 12:242512

评论

发布
暂无评论
发现更多内容

10+秒,AIGC炸出抖音小红书爆款!国产Fashion Diffusion颠覆时尚行业

Openlab_cosmoplat

AI 开源社区 时装

i人事谈AI:既要放眼未来,也要专注当下

ToB行业头条

什么是数字化?企业为什么要数字化转型

优秀

数字化转型 企业数字化转型 什么是数字化

深入解读 Flink 1.17

Apache Flink

大数据 flink 实时计算

Rocksdb原理简介

天翼云开发者社区

存储 存储结构 存储引擎

NFT交易所系统开发跨链技术

薇電13242772558

NFT

大象转身只需点点鼠标,爆火 DragGAN 原理浅析

Zilliz

Towhee draggan

Solaris Network评述:在DeFi衍生品领域的颠覆者

股市老人

《中国电信天翼云PON SD-WAN技术白皮书》来了,这份技术指南不要错过!

天翼云开发者社区

云计算 云服务

Kafka测试初探【Go】

FunTester

突围低代码下半场,未来悬而未决

引迈信息

前端 低代码 JNPF

瑞云科技助力番职院打造虚拟数字人,探索职业教育创新之路

3DCAT实时渲染

虚拟现实 虚拟仿真 实时云渲染

作为Vue爱好者如何转战React,从这款开源项目开始基于 React18,TypeScript,vite4,antd4.x等技术开箱即用的中后台管理解决方案

梁木由

JavaScript 开源 React

重磅发布 |《2023年消费品企业数字化转型调研白皮书》

博睿数据

数字化转型 白皮书 博睿数据 消费品企业

如何把数据从 TDengine 2.x 迁移到 3.x ?

爱倒腾的程序员

时序数据库 ​TDengine taosdata

倒计时 2 天!面向未来的开发者服务 Meetup 即将开始,我们在北京等你 ~

OpenAnolis小助手

开源 操作系统 Meetup 龙蜥社区 开发者服务

流批一体架构在快手的实践和思考|行业实践专栏上线

Apache Flink

大数据 flink 实时计算

500行代码手写docker-以新命名空间运行程序

蓝胖子的编程梦

Docker 容器 命名空间 #k8s #云原生

文件传输、文件同步、数据备份的有效解决方案

镭速

@开源爱好者,字节跳动这项技术,正式宣布开源了

字节跳动技术范儿

开源 字节跳动 数据仓库 Clickhouse

得物前端巡检平台的建设和应用

得物技术

巡检

Dummynet简单部署

天翼云开发者社区

IPFW防火墙 服务驱动 Dummynet

拥有自我意识的AI:AutoGPT | 得物技术

得物技术

人工智能 ChatGPT autogpt

破解提升 LLMs 性能的黑匣子—— LlamaIndex

Zilliz

Milvus AIGC LLM llamaindex

英特尔Agilex® 7 FPGA R-Tile为网络、云计算等提供高度灵活解决方案

E科讯

AntDB-S流式数据库体验

亚信AntDB数据库

AntDB AntDB数据库 企业号 5 月 PK 榜

智慧水务系统如何进行有效的数据架构整改?三个企业的改造实践分享

爱倒腾的程序员

涛思数据 tdengine 时序数据库 taosdata

大数据赋能商业地产研策

MobTech袤博科技

GitLab Dogfooding 实践:Web API 模糊测试

极狐GitLab

DevSecOps OpenAPI web api 模糊测试 dogfooding

520 | ChatGPT会是一个完美情人吗?

澳鹏Appen

人工智能 nlp 情感分析 数据标注 ChatGPT

这届企业出海难?亚马逊云科技的出海合作伙伴让你事半功倍!

Lily

如何使用MeLU解决用户冷启动问题_语言 & 开发_yancy_InfoQ精选文章