写点什么

Embedding 在推荐算法中的应用总结

  • 2019-11-29
  • 本文字数:1586 字

    阅读完需:约 5 分钟

Embedding在推荐算法中的应用总结

Embedding 向量作为推荐算法中必不可少的部分,主要有四个运用方向(前 3 个引用于王喆老师):


  • 在深度学习网络中作为 Embedding 层,完成从高维稀疏特征向量到低维稠密特征向量的转换(比如 wide&deep,DIN 等模型);

  • 作为预训练的 Embedding 特征向量,与其他特征向量连接后一同输入深度学习网络进行训练,比如 FNN 模型;

  • 通过计算用户和物品的 Embedding 相似度,Embedding 可以直接作为推荐系统或计算广告系统的召回层或者召回方法之一(比如 Youtube 推荐模型)

  • 通过计算用户和物品的 Embedding,将其作为实时特征输入到推荐或者搜索模型中(比如 Airbnb 的 embedding 应用)。

  • 本文将着重梳理一下 embedding 在 3 和 4 上的应用。


1.Item2vec: Neural Item Embedding for Collaborative Filtering


基本上参照 google 的 word2vec 方法,把 item 视为 word,用户的行为序列视为一个集合,item 间的共现为正样本,并按照 item 的频率分布进行负样本采样。缺点就是没有建模用户对不同 item 的喜欢程度高低。


  1. Airbnb: Real-time Personalization using Embeddings for Search Ranking at Airbnb


共训练了三个 embedding,包括 Listing Embedding、User Type Embedding 和 Listing Type Embedding,这里 Listing 可理解为一个商品 item。其中 Listing Embedding 对应的是用户的短期兴趣偏好,通过用户在 Session 中的点击序列训练得到。其中用到了一些 trick,比如在有预定的 session 中,在 loss 函数中加入预定 listing;另外可以随机加入几个同目的地的房源作为负样本。最终的目标函数为:



那么怎么解决冷启动问题呢?对于新加入的房源,可以从已有 embedding 的房源中,选择 3 个同种类且距离最近(但是要在半径 10miles 以内)的 3 个房源,并用其 embedding 的平均值来作为新房源的 embedding。


另外为了建模用户的长期兴趣,可以拿用户长期的 booking session 序列,但是 booking session 数据是很稀疏的。解决方案是将 listing 和用户进行分类。就可以产生如下的序列:



然后基于 word2vec 方法去训练得到 user type 和 item type 的 embedding 表示。


  1. Billion-scale Commodity Embedding for E-commerce Recommendation in Alibaba


可看作是 deep-walk 算法的改进,deep-walk 对于出现次数很少甚至没有用户交互过的商品是学习不到很好的 embedding 表示的。本文使用基于 side information(比如商品品牌、店铺名、类别)的图嵌入学习方法。


首先介绍的是 base 的 Graph Embedding 方法,过程如下图:



然后是 Graph Embedding with Side information,主要就是加入了 side information 来解决冷启动问题。在加入 Side information 之后,商品表示为一种 aggregated embeddings:



其中 W0 代表 item embedding,W1,Wn 代表每种 Side information 对应的 embedding。


最后介绍的是 Enhanced Graph Embedding with Side information ,不同的 side information 在最终的 aggregated embeddings 中所占的权重应该是不同的,比如一个购买了 iphone 的用户,倾向于查看 mac 或者 ipad,这是因为苹果这个品牌的影响力很大。此时 aggregated embeddings 计算公式为:



  1. Deep Neural Networks for YouTube Recommendations


主要在候选集生成阶段使用了下面的模型。



在上面模型进行 serving 的过程中,没有直接使用整个模型去做 inference,而是直接使用 user embedding 和 item embedding 去做相似度的计算。其中 user embedding 是模型最后一层 mlp 的输出,vedio embedding 则直接使用的是 softmax 的权重。


相关文章:


https://zhuanlan.zhihu.com/p/24339183?refer=deeplearning-surfing


https://zhuanlan.zhihu.com/p/55149901


https://zhuanlan.zhihu.com/p/57313656


https://www.jianshu.com/p/229b686535f1


https://zhuanlan.zhihu.com/p/52169807


本文转载自 Alex-zhai 知乎账号。


原文链接:


https://zhuanlan.zhihu.com/p/78144408


2019-11-29 08:002328

评论

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

一文带你读懂CNCF Landscape

焱融科技

分布式 云原生 高性能 云存储 cncf

简单四步学会在数字孪生可视化场景中创建小地图!

ThingJS数字孪生引擎

大前端 地图 物联网 可视化 数字孪生

揭秘版权保护下的视频隐形水印算法(上篇)

拍乐云Pano

Apache ShardingSphere 邀您相约 Open Source Day

SphereEx

视频云会议已成未来发展必然趋势

anyRTC开发者

音视频 WebRTC 视频会议 云视频

数字货币这波热潮,各国都舍不得错过

CECBC

视频云峰会|“科技 X 艺术” 的颗粒度体验是什么?

阿里云CloudImagine

阿里云 AR 艺术 摄影 vr

367W字!京东商城Java架构师设计的亿级高并发秒杀手抄笔记

Java架构追梦

Java 架构 秒杀系统 亿级并发 京东商城

你用哪些软件和方式来提高工作效率?

万事ONES

项目管理 ONES 敏捷管理

前端vue面试题,附答案

buchila11

Vue

拼拼有礼APP开发|拼拼有礼软件系统开发

绿色篮子APP开发|绿色篮子软件系统开发

2021能源发展极速前进,可视化赋能行业高效运作

一只数据鲸鱼

数据可视化 3D可视化 智慧能源 能源管理 光伏发电

企业协作通过什么软件可以提高工作效率?

万事ONES

项目管理 敏捷开发 ONES 协同办公

哈哈生活系统开发|哈哈生活软件APP开发

论文解读丨图神经网络应用于半结构化文档的命名实体识别和关系提取

华为云开发者联盟

文档 识别 图神经网络 半结构化文档 关系提取

怎么在linux系统下安装Nginx?一分钟学会!

小桃

Linux 网络安全 系统

iOS工程师如何恍然大悟?

程序员 IT 编程之路 iOS 知识体系

架构实战营作业 M01

Shawn Liu

#架构实战营

一千零一次飞升APP系统开发内容

HarmonyOS开发者的喜讯——华为认证来啦!

科技汇

华云大咖说 | 安超虚拟化平台全“芯”亮点揭秘

华云数据

扩展Elasticsearch客户端简化ES查询(.net core/framework)

Spook

Camtasia实用技巧之光标效果

淋雨

视频剪辑 专业录屏 Camtaisa

模块一作业

张文龙

#架构实战营

慧心购系统开发|慧心购软件APP开发

网络攻防学习笔记 Day67

穿过生命散发芬芳

网络攻防 7月日更

查看Linux端口占用,并关掉相关进程。

学神来啦

云计算 Linux 运维

接下来的40年,碳中和对我们来说意味着什么?

CECBC

动手实操丨基于随机森林算法进行硬盘故障预测

华为云开发者联盟

机器学习 数据分析 modelarts 随机森林算法 硬盘故障

架构实战营作业模块一

五只羊

架构实战营

Embedding在推荐算法中的应用总结_文化 & 方法_Alex-zhai_InfoQ精选文章