当下推荐系统的分析和关于长尾效应的解决猜想
记录一次线下技术分享心得,和自己工作上的一点体会,有不对的地方还请各位前辈指出。
当下推荐生态的发展历史:
从规则到协同过滤再到模型和现在比较流行的基于机器学习的推荐
比较常用的协同过滤算法的优缺点是很明显的:泛化能力弱 ,样本结果好
实时look alike 算法在微信看一看中的应用:中间采用Ralm算法
paper:Real-time Attention Based Look-alike Model for Recommender System
https://arxiv.org/abs/1906.05022
一、未被缓解的马太效应
1、推荐系统的设计初衷:个性化推荐需要解决信息过载
原始数据在抽象过程中都会出现信息损失,怎样才能做到信息损失最小,这是需要结合业务需求,做适当的取舍,
2、传统模型的遗留问题:
特征部分依赖,推荐结果趋热(这个问题工作中也遇到过,数据中存在大比例数据,无论怎么随机,怎么划分训练集和测试集,总会出现小比例数据学习不到的现象,而大比例数据学习充分)这是推荐中总会出现的马太效应。如何解决马太效应?(加入时间衰减?加入数据比例权重偏重?)
3、优质长尾内容投放困难
小众兴趣难以满足、影响系统生态。
uesr特征(年龄、性别)
原始样本(uin,item,label)-> .................. 拟合样本
item语义特征(topic、tag) ^
I
item行为特征(CTR,PV)----------------- 主导方向
--------------------------------------> 存在信息损失
Look-alike模型
在广告领域的经典方案:
基于行为扩展受众用户、KNN\DNN 需要针对item单独训练
Related Works:Similarity-based Regression-based
(相似度 聚类。 性能好,向量相似度、回归方式,建模种子用户作为模型正样本做二分类。 作为广告是很合适的,特点时效性不太好,,广告系统中种子用户作为样本输入)以上广告领域
我们的场景:对内用时效性要求高、候选集更新频率高 传统的一些推荐算法不适用。
核心需求:
1、时效性:新item分发无需重新训练模型,实时完成种子用户拓展
2、高效:在保持CTR前提下加强长尾内容分发,学习更具准确性和多样性的用户表达
3、快速:精简预测计算,满足线上的耗时性能要求
RALM算法:
User-user Model:用种子用户特征代替item行为特征
Seeds Representation :高效且自适应的种子用户表达方式
Real-time Look-alike:实时目标用户-种子用户群相似度预测。
解释:lookalike中:种子用户。用户相似度 找出目标用户。
field域的行为,域的权重有大有小。 强关联弱关联弱也是重要的。
历史数据的强弱决定强弱关系 concat layer 大学习重 小学习不重
attention 解决训练不均衡。
之前我们用单域描述种子用户,现在则是在各自域的训练空间(Attention Merge Layer)中训练学习再通过权重组合。
User Representation Learning:学习用户多域行为高阶画像(并不单纯的为用户一维画像描述)
Look-alike Learning:学习目标用户与候选item种子用户相似度完成种子扩展
Attention HybridCF Model:1、多样性与无偏用户兴趣,2、强关联\弱关联特征域
3、Attention Merge Layer:
如何表达种子用户?
1、种子群体每个用户对群体兴趣存在不同的贡献度,即群体的共性信息
2、种子群体中存在一小部分用户与当前目标用户兴趣相似,即群体的个性信息
种子群体相对目标用户的表达=个性信息(local info)+共性信息(globa info)
Local&Globa Embedding
1、Local attention 捕捉种子用户 local info:
2、Global attrntion 捕捉种子用户global info:
在线预测计算次数=h*h*k*2,耗时>1000ms
如何解决耗时问题?
1、K-means聚类后聚合种子用户,聚类计算可单独离线完成
2、训练中迭代更新族簇中心
3、计算次数减少至k/K耗时降低1000ms---->20ms
不同族簇中心数k带来的指标影响
(K取值在20~100之间)
模型训练
Negative sampling多分类:
系统架构
离线训练部分:
1、User Pepresentation Learning 2、Look-alike Learning 3、 Cache 全量用户Eu
在线异步处理:
1、更新种子用户,预计算Eglobal,2、计算K-means类簇中心,定时更新,节约线上计算
在线服务:
1、拉取Eu拉取候选集Embed,2、计算Elocal 的哦到相似度,3、提供曝光依据
其他一些思考:
特征:用户高阶特征的必要性和优势,(高阶特征,此外还有统计特征,但是统计特征信息损失比较大)
模型调优:防止模型过拟合、Stacking model(高阶特征用户 没有用item。防止过拟合)
冷启动曝光:初始投放策略曝光阈值调整,
计算错误成本,小流量启动,逐步增大流量。
冷启动 语义特征。百级别种子 相似度曝光试探曝光。比例选取,初始曝光策略,优质长尾池,运营池,曝光池,
广告实验,
当下推荐系统的分析和关于长尾效应的解决猜想相关推荐
- 什么是长尾理论-长尾效应
什么是长尾理论 --长尾效应 1988年,英国登山家Joe Simpson写了一本名叫<触摸巅峰>(译者:这是Touching the Void通用的中文翻译的书.该书讲述了在秘鲁安第斯山 ...
- 工业界推荐系统实用分析技巧
作者 | 纳米酱 链接 | https://zhuanlan.zhihu.com/p/188228577 编辑 | 机器学习与推荐算法 这篇文章主要讨论推荐系统的分析技巧,杜绝无脑调参,探讨如何靠简单 ...
- tracepro杂散光分析例子_AES分析中的干扰效应及校正,你知道吗?
2019-12-23 10:00:03 来源: AES分析中的干扰效应及校正-检测家 在原子发射光谱(AES)分析中存在的干扰效应会对样品的测量结果产生系统误差或偶然误差.干扰现象依据产生的机理可分为 ...
- 长尾效应解析以及长尾效应在电商中的应用
什么是长尾效应 通俗理解 在正态分布中,曲线中间凸起的是"头",两边相对平缓的部分叫做"尾". 对于绝大部分的需求来说,都会集中在中间凸起的"头&qu ...
- 长尾分布(long-tail distribution)和长尾效应
长尾分布(long-tail distribution)和长尾效应 1.长尾效应 作者:赵澈 链接:https://www.zhihu.com/question/20027490/answer/204 ...
- 奥巴马获胜的秘密武器--“长尾效应”
无可否认,奥巴马的个人魅力和语言艺术已经让美国人,特别是年轻人疯狂.除此以外,他之所以能够获胜,和"长尾效应"不无关系. 通过互联网,奥巴马建立了庞大的草根性筹款网络,获得了大量政 ...
- 李开复:长尾效应带给媒体的不是威胁
导读: <长尾理论>是2006年最畅销的书,阐述的是小众市场显露的种种商机.作者认为,所有非主流的市场累加起来就会形成一个比主流市场还大的市场,这些少量的需求会在需求曲线上面形成一条长长的 ...
- 长尾效应环境下的电子商务
"文化多样性"指各群体和社会借以表现其文化的多种不同形式.这些表现形式在他们内部及其间传承. <保护和促进文化表现形式多样性公约>第33届联合国教科文组织大会 长尾效应 ...
- 长尾效应(由百度网络资料整理)
Long Tail Effect "头"(head)和"尾"(tail)是两个统计学名词.正态曲线中间的突起部分叫"头":两边相对平缓的部分 ...
- 推荐系统实用分析技巧
来自 | 知乎 作者 | 纳米酱 链接 | https://zhuanlan.zhihu.com/p/188228577 编辑 | 机器学习与推荐算法公众号 这篇文章主要讨论推荐系统的分析技巧,杜绝无 ...
最新文章
- 张亚勤清华AIR战队首次亮相,这阵容不是一般强
- 使用ip6tables禁用ipv6
- 如何写一份优秀的Java程序员简历?
- [原创] Legato 8.1 oracle full backup skip 奇怪的问题处理过程 -- 非调度日期手工运行调度也不成功(skip)...
- 在学习django的时候
- 《幽灵行者》:近期最酷炫的赛博朋克游戏之一
- oracle 数组类型
- python(16)-列表list,for循环
- X-Frame-Options 响应头
- PHP学习笔记 - 在Eclipse中使用XDebug调试代码 | Using XDebug debug code in eclipse
- mysql GRANT
- go sqlite mysql_Go语言中使用SQLite数据库
- JavaScript 是如何成为一门严肃的编程语言的
- python实现一个简单的图片浏览器
- Not enough space in file systems for the current software selection. An additional XXXX MiB is neede
- 公众号内打开提示404_微信公众号文章“号内搜”新功能玩法
- 成功解决raise KeyError(f“None of [{key}] are in the [{axis_name}]“)KeyError: “None of [Index([‘age.in.y
- 计算机随机储存器是什么,随机存储器是什么
- Django 2.1文档
- SEO关键词之选取策略及具体方法
热门文章
- 通过虚拟机安装Ubuntu系统到移动硬盘
- IBM POWER 710(小型机) 登录AMSI
- c语言case小于,大于和小于switch语句C
- Hacking EV3系列之七:iPhone 手势无线控制LEGO EV3 Gyro Boy 机器人
- java的duplicate用法_Java IntBuffer duplicate()用法及代码示例
- 2013年,我的推荐博客汇总
- 牛逼的 弹出层 layer !!!
- 【阅读笔记】联邦学习实战——用FATE从零实现横向逻辑回归
- html广告位代码,javascript实现一个简单的广告位
- php广告统计代码,JS广告、统计代码如何添加,怎样添加JS统计代码和广告