前言
深度学习是当前热门课题,核心流程包含:数据表征、数据录入与建模、基于结果调优。“万丈高楼平地起”,如果数据根基不稳,那么很难达成理想结果。
本文从这个问题切入,和大家交流如何用Embedding表征对象,以及如何在业务落地。
万物皆可Embedding
Embedding简史
Embedding最早由Hinton在1986年提出,直到2013年word2vec的推出,让一切皆可embedding,并迅速应用在特征表达,画像构建召回排序业务场景
在正式接触Embedding之前,我们先了解一下One-Hot编码表征对象方法:
浅粉红 | 粉红 | 猩红 | One-Hot编码 |
1 | 0 | 0 | 浅粉红:[1,0,0] |
0 | 1 | 0 | 粉红:[0,1,0] |
0 | 0 | 1 | 猩红:[0,0,1] |
One-Hot编码优点是简单实现,但是无法表达更多有意义的含义(比如范例中的色差)。每多一种色彩,那么维度就多一层,在成功表征对象的同时,引发了新的多维度问题(维度灾难)
如何解决上述问题呢?有请Embedding主角登场!
Embedding定义
Embedding 字面理解是“嵌入”,实质是一种映射,从语义空间到向量空间的映射,同时尽可能在向量空间保持原样本在语义空间的关系。
通俗理解:用特定的数字表达一个“对象”object,并且保留原样本的语义(比如色差、距离) 。
同样借助色彩表征例子来理解概念:
颜色 | RGB格式 |
浅粉红 | [255, 182, 193] |
粉红 | [255, 192, 203] |
猩红 | [220, 20, 60] |
通过One-Hot和Embedding对比来加深理解:
Embedding原理
文本:“Embedding技术对深度学习推荐系统的重要性”
目标:将里面的每一个分词,都可以用向量数字表达
模型:Embedding有两种建模方式CBOW(给定上下文,预测中心词)和Skip-gram(给定输入词,预测上下文),这里选择Skip-gram作介绍
主要分为三个步骤:
Embedding技术在业务实践
实践思路
我们将站台用户点击序列拼接得到长文本,输入到item2Vec建模,得到每个物件的Embedding向量值Post_Embedding向量表达。再将用户所看到Post_Embeddings值整合,就得到User_Embedding。
数据分析
基础信息比对:
深度信息比对:
结论:用户实际看物件与Embedding推荐集合,存在深度相关性,大概率会被用户点击!
业务场景
基于用户浏览行为,每天定时为用户推送 “喜好” 笋盘集
注:图源安居客(侵删),业务场景与其类似,仅供参考
实践步骤
1. 将站台所有用户的点击序列串连
用户id | 点击序列 |
A | 1,2,3,4 |
B | 2,3,6,7 |
C | 3,4,7,6 |
聚合点击序列得到click_order_str:1,2,3,4,2,3,6,7,3,4,7,6..
2. 点击序列集合导入到item2vec中
model = word2vec.fit(click_order_str)
3. 得到每个物件的embedding
4. 通过物件集求embedding之和,得到人的embedding
result = scores_table.select('userId','emb').rdd.map(lambda x: (x[0], x[1])) .reduceByKey(lambda a, b:[a[i] + b[i] for i in range(len(a))]).collect()
5. 以人的embedding为参数,得到相似度最高前N个物件
syms = model.findSynonyms(row[1], 150)
6. 对相似集业务过滤,推荐给对应用户
业务过滤包含不限于:用户已看、价差较大、物件质量较低等,在推送给用户前剔除
我另外整理了简版demo(包含代码和测试数据)便于大家学习
业务成效
在原有ALS基础上,我们融合了Embedding集合,最终物件点阅数显著提升 !
Embedding进阶
如果我们的业务实际素材不够丰富,或者期望更多的训练素材,大家可使用随机游走得到“模拟”训练集。
基于Graph-Embedding的随机游走:Deep Walk
除了串联已有的点击序列,作为数据建模,还可以利用图结构,扩大我们的数据集,以得到更丰富的embedding向量表达。
我们将被点击到的已知物件ID取出,再结合用户点击序列顺序,进行如图b所示随机游走,得到图c更为丰富的点击序列。同样借助item2vec建模,得到数据集。
结论:用Deep Walk在租售场景应用,得到的结果不理想,体现在用户已看物件和推荐物件落差极大,因此不做更进一步探究!
总结
目前我们已经学习了ALS、Embeding两种推荐算法,并在业务落地应用,这些都是多路召回的不同策略。
页面更新:2024-04-15
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号