【推荐系统】如何解决冷启动问题

简介: 角度1:为了准确匹配用户的需求,解决信息超载问题,各大互联网都有个性化的推荐系统,但是在建立该系统初期,没有大量用户数据,或者系统中的商品是新添加的,那应该推荐给哪些用户的问题。

零、推荐系统中的特征

一、推荐系统的冷启动

角度1:为了准确匹配用户的需求,解决信息超载问题,各大互联网都有个性化的推荐系统,但是在建立该系统初期,没有大量用户数据,或者系统中的商品是新添加的,那应该推荐给哪些用户的问题。

目的:最优化点击率、转化率或用户体验(用户停留时间、留存率等)。

角度2:在基于深度学习的推荐系统中,当一个神经网络的训练完毕后,又要加入新的user或者item,如果把他们加入网络中再重新训练,embedding层的训练往往是整个网络中参数最大的(速度慢),训练时间会很长。

二、冷启动的分类

用户冷启动:没新用户的历史行为(兴趣)数据,又要给新用户做个性推荐;

物品冷启动:将新加入的商品推荐给潜在感兴趣的用户;

系统冷启动:解决如何在一个新开发的网站上(还没有用户,也没有用户行为,只有一些物品的信息)设计个性化推荐系统,从而在网站刚发布时就让用户体验到个性化推荐服务。

三、如何解决冷启动

首先对算法思维架构,心中时刻记住如下的蓝图,再进一步分析。

image.png

3.1 提供非个性化的推荐

各大社交平台上,都有热门排行榜(大众角度),新用户一般也会点击该热门排行榜中感兴趣的条目,即收集到一定量的用户行为数据后,再转为个性化推荐。

image.png

3.2 利用用户注册信息

一般各大app(如dou音、mai脉等)在用户注册时,都需要我们填写年龄、性别、学历、居住地或者职业等数据(甚至会让用户用文字写下自己的兴趣),那就可以做粗粒度的个性化,根据用户的注册信息对用户分类,给对应类别的用户推荐可能感兴趣的物品。

3.3 利用社交网络信息

很多平台注册登录时,可通过其他社交网络账号“绑定”登录(需要用户的授权),这个过程会导入用户在原社交网站上的好友信息,根据该用户的社交动态(如好友喜欢的物品等)进行推荐。

image.png

3.4 用户的试反馈

要求用户登录时,选中自己感兴趣的领域标签,得到他们近期的兴趣反馈。

3.5 协同推荐

新加入的商品,利用它们的商品具体内容信息,找到与之相似的商品,如果用户喜欢相似商品,则很可能对新加入的商品也感兴趣。

很多时效性很强的网站,都会经常加入新物品,新物品也需要尽早展现给用户,这时候物品冷启动就很重要,但是当新物品加入时,内存中的物品相关表中不会存在这个物品,从而无法推荐新的物品。解决这一问题的办法是频繁更新物品相似度表。

image.png

3.6 利用专家知识

很多推荐系统在建立时,没有用户历史行为数据,也没有充足的物品信息(用以计算准确的物品相似度)。

如 Pandora 是给用户播放音乐的个性化网络电台:

计算音乐(多媒体,音频)之间的相似度较为困难(不能只考虑歌词);

仅仅利用歌曲的专辑、歌手等属性难以得到准确的歌曲相似度表。

最后 Pandora 雇佣一批懂计算机的音乐人,听几万名歌手的歌,对歌曲各个维度进行标注(利用了400多个特征,详细参考wiki),同时 Jinni 电影系统平台也是用了专家知识和机器学习结合的方法解决冷启动(当然有了深度学习,今天不用这么麻烦地特征工程标注了)。

image.png

传统的机器学习方法:

如用聚类定位新物品所在的cluster,找到相似物品(强化学习中的反馈实时学习,实时调整推荐模型,如下图架构);

如根据 item / user 的特征训练一颗决策树,把冷启动的 item / user 根据特征分配到决策树的分支中。

image.png

强化学习框架的六要素

智能体(Agent):强化学习的主体也就是作出决定的“大脑”;

环境(Environment):智能体所在的环境,智能体交互的对象;

行动(Action):由智能体做出的行动;

奖励(Reward):智能体作出行动后,该行动带来的奖励;

状态(State):智能体自身当前所处的状态;

目标(Objective):指智能体希望达成的目标。

3.7 其他策略

主动学习:遵循“行动-反馈-状态更新”的强化学习循环;

迁移学习:迁移其他领域的数据或知识,用于本领域的学习;

四、embedding角度:补充side information

理论上,任何能够融合不同的深度学习模型都可以通过引入side information生成embedding。即我们的embedding可以不是仅仅基于历史行为来生成(用户历史行为不容易生成,特别是购买、完成观看的这类高质量的正向行为);

而加入其它类型的特征,如典型的用户侧特征:人口属性特征;典型的物品侧特征:内容型特征。

栗子:Taobao的EGES模型:https://arxiv.org/pdf/1803.02349.pdf(如下图)

S10、S11、S12…S1n分别是不同特征域对应的embedding,S10是item id,后面的n个即side information,如item的类别,价格,标签等等。

当一个item没有历史行为信息(即S10)时,可对side information的embedding进行加权平均(ps:可以在线上进行对side information embedding和item id的组装),从而提高embedding的覆盖率。

最后的embedding输入到主推荐模型,或CTR预估模型。

image.png

五、推荐工程架构的角度

王喆大佬说过:冷启动的问题其实有一半是系统实时性的问题。

如在新闻app中新用户第一次登陆后点击了一条新闻,那么接下来肯定是系统获取该信息越快越好:

如果系统建立在批处理上,每天训练一次,生成一次user embedding,则系统延迟是一天,用户第二天才能看到新的推荐内容。

如果系统基于流处理,流处理的窗口大小5分钟,只要流处理平台看到了用户产生了正样本行为,就马上更新用户embedding。系统延迟为5-10min,用户下次打开app则能看到更新。

在【王喆-推荐系统】前沿篇-(task3)流处理平台Flink:实时推荐的学习中,我们了解到批流一体的大数据平台flink特点:让批处理和流处理共用一套代码,从而既能批量处理已落盘的数据,又能直接处理实时数据流。

实时性最牛×的是Taob

image.pngao推荐团队在EdgeRec文中介绍的,基于“边缘计算”的推荐系统。把推荐系统模型/策略做到了APP里面,就在客户端,就根据用户的新行为在设备内部做推荐,做结果的reranking(如下图)。

信息流推荐的目标和传统搜索引擎的目标不同:前者有浏览量PV、点击量IPV、成交量GMV等,后者则是相关性(最贴近用户兴趣的推荐列表展现出来)。

目前的推荐系统并没有同信息流推荐的场景成长起来,而更多的是借鉴于搜索和广告的技术,比如点击率(CTR)预估等。

信息流推荐是一个人机交互系统,其目标是整体收益的最大化。而边缘计算相比传统的云计算,具有稳定性、高带宽、低延时、隐私性的优点,淘宝就把展现决策系统放在手机app上了。

image.png

更多参考原论文:

论文:EdgeRec: Recommender System on Edge in Mobile Taobao

地址:https://arxiv.org/pdf/2005.08416.pd

相关文章
|
机器学习/深度学习 存储 开发框架
推荐系统[八]算法实践总结V1:淘宝逛逛and阿里飞猪个性化推荐:召回算法实践总结【冷启动召回、复购召回、用户行为召回等算法实战】
推荐系统[八]算法实践总结V1:淘宝逛逛and阿里飞猪个性化推荐:召回算法实践总结【冷启动召回、复购召回、用户行为召回等算法实战】
推荐系统[八]算法实践总结V1:淘宝逛逛and阿里飞猪个性化推荐:召回算法实践总结【冷启动召回、复购召回、用户行为召回等算法实战】
|
搜索推荐 算法
推荐系统之冷启动问题
冷启动问题同比于启动车辆,通常车正式开启之前需要有热车阶段,这个过程就是冷启动过程。冷启动在推荐系统也是常见的问题,大家知道类似于抖音、淘宝等工具,都会根据用户的兴趣去推荐内容,如果一个新用户进来,系统完全不清楚他的兴趣,该如何推荐呢?这就是本文要给大家介绍的内容。
1213 0
|
3月前
|
搜索推荐 前端开发 数据可视化
【优秀python web毕设案例】基于协同过滤算法的酒店推荐系统,django框架+bootstrap前端+echarts可视化,有后台有爬虫
本文介绍了一个基于Django框架、协同过滤算法、ECharts数据可视化以及Bootstrap前端技术的酒店推荐系统,该系统通过用户行为分析和推荐算法优化,提供个性化的酒店推荐和直观的数据展示,以提升用户体验。
152 1
|
5月前
|
搜索推荐 算法 小程序
基于Java协同过滤算法的电影推荐系统设计和实现(源码+LW+调试文档+讲解等)
基于Java协同过滤算法的电影推荐系统设计和实现(源码+LW+调试文档+讲解等)
|
5月前
|
搜索推荐 算法 小程序
基于Java协同过滤算法的图书推荐系统设计和实现(源码+LW+调试文档+讲解等)
基于Java协同过滤算法的图书推荐系统设计和实现(源码+LW+调试文档+讲解等)
|
3月前
|
搜索推荐 前端开发 数据可视化
基于Python协同过滤的旅游景点推荐系统,采用Django框架,MySQL数据存储,Bootstrap前端,echarts可视化实现
本文介绍了一个基于Python协同过滤算法的旅游景点推荐系统,该系统采用Django框架、MySQL数据库、Bootstrap前端和echarts数据可视化技术,旨在为用户提供个性化的旅游推荐服务,提升用户体验和旅游市场增长。
276 9
基于Python协同过滤的旅游景点推荐系统,采用Django框架,MySQL数据存储,Bootstrap前端,echarts可视化实现
|
3月前
|
搜索推荐 前端开发 算法
基于用户画像及协同过滤算法的音乐推荐系统,采用Django框架、bootstrap前端,MySQL数据库
本文介绍了一个基于用户画像和协同过滤算法的音乐推荐系统,使用Django框架、Bootstrap前端和MySQL数据库构建,旨在为用户提供个性化的音乐推荐服务,提高推荐准确性和用户满意度。
251 7
基于用户画像及协同过滤算法的音乐推荐系统,采用Django框架、bootstrap前端,MySQL数据库
|
6月前
|
搜索推荐 算法 前端开发
美食物管理与推荐系统Python+Django网站开发+协同过滤推荐算法应用【计算机课设项目推荐】
美食物管理与推荐系统Python+Django网站开发+协同过滤推荐算法应用【计算机课设项目推荐】
193 4
美食物管理与推荐系统Python+Django网站开发+协同过滤推荐算法应用【计算机课设项目推荐】