写点什么

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:002525

评论

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

网易云音乐音视频算法的 Serverless 探索之路

阿里巴巴中间件

云计算 阿里云 Serverless 云原生 中间件

给JSONObject添加自定义遍历方法

FunTester

单元测试 Fastjson JSON库 spock FunTester

打破 Serverless 落地边界,阿里云 SAE 发布 5 大新特性

Serverless Devs

阿里云 Serverless 函数计算

如何赋能APaaS平台应用管理员

明道云

官方线索 | 阿里云1024程序员创造营

穿过生命散发芬芳

1024我在现场

先行一步,7 大技术创新和突破,阿里云把 Serverless 领域的这些难题都给解了

Serverless Devs

阿里云 gpu VPC 函数计算

堪称神级的Spring Boot手册,从基础入门到实战进阶

Java 程序员 Spring Boot

第 24 章 -《Linux 一学就会》- shell中色彩处理和awk使用技巧

学神来啦

Linux linux运维 linux云计算 linux一学就会

直面Z级计算挑战,英特尔携手生态合作伙伴加速开发者工具和软件部署

科技新消息

[2021年新鲜出炉]K8s工程师资料合辑,书籍推荐,面试题,精选文章,开源项目,PPT,视频,大厂资料

奔着腾讯去

golang Docker Kubernetes 容器 云原生

三轮融资笔笔过亿,来画如何实现弯道超车?

ToB行业头条

阿里最新春招面经,腾讯/美团/字节1万道Java中高级面试题

收到请回复

Java 程序员 面试 职场 后端

递推算法与递推套路(手撕算法篇)

有道技术团队

学习 编程 算法

一文详解从云计算到 Serverless

Serverless Devs

云计算 Serverless

【IT运维小知识】安全组是什么意思?

行云管家

网络安全 安全 数据安全 安全组 IT运维

英特尔On技术创新峰会公布开发者重点投入计划,全面赋能开发者

科技新消息

iOS 崩溃日志在线符号化实践

百度Geek说

瑜伽CRM系统使老师再也不用教学分心

低代码小观

CRM 管理工具 CRM系统 瑜伽 瑜伽馆管理

安全漏洞的复现与总结

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 漏洞挖掘

英特尔全面升级开发者专区(Developer Zone),携手开发者共塑科技未来

科技新消息

网易云音乐音视频算法的 Serverless 探索之路

Serverless Devs

阿里云 Serverless 算法 音视频

业内首款云原生技术中台产品云原生 Stack 来了!

阿里巴巴云原生

阿里云 云原生 技术中台

企业级开发工具,J2PaaS低代码平台核心能力解析!

J2PaaS低代码平台

软件开发 低代码 低代码开发 低代码平台

Linux指令日志分析(一)

正向成长

日志分析

Redis核心原理与实践--Redis启动过程源码分析

binecy

redis 源码阅读

架构实战营毕业总结

maybe

IOS技术分享| ARCall视频通话重构

anyRTC开发者

ios 音视频 语音通话 视频通话 视频呼叫

医药研发企业数据中台的选择

鲸品堂

产业互联网

用建造者模式实现一个防SQL注入的ORM框架

Tom弹架构

这一篇 K8S(Kubernetes)我觉得可以了解一下!!!

牧小农

Docker 容器 kubenetes

阿里二面:为什么要分库分表?

Java MySQL 数据库 架构 面试

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