21.3.2 Airbnb推荐系统使用Item Embedding
中介平台:短租房
客户输入地点、价位、关键词等
Airbnb搜索推荐列表
Airbnb如何体恒推荐列表的质量?论文:Real-time Personalization using Embedding for Search Ranking at Airbnb.
提出了两种通过Embedding分别捕获用户的短期兴趣和长期兴趣的方法,即利用用户点击会话(click session)和预定会话(booking session)序列。
这里浏览点击的房源之间存在强时序关系,及前面房源会对后面房源产生很大的影响,可以把一段时间内连续发生的房源序列看作句子,把序列中的房源看作句子中的词。这样的结构看上去和word2vec的训练数据的构造并没有什么区别,因此可以直接按照word2vec的方法(这里采用skip-gram模型)进行Embedding训练。
训练生成Listing Embedding和User-type&Listing-type Embedding,并将Embedding特征输入搜索场景下的rank模型,以提升模型效果。
1.4 用Embedding处理分类特征
近几年来,从计算机视觉到自然语言处理再到时间序列预测,神经网络、深度学习的应用越来越广泛。在深度学习的应用过程中,Embedding这样一种将离散变量转变为连续变量的方式在各方面为传统机器学习、神经网络的应用带来极大便利。该技术目前主要有两种应用,自然语言处理中常用的Word Embedding以及用于类别数据的Entity Embedding。
Embedding就是用一个低维的向量表示一个事物,可以是一个词、一个类别特征(如商品、电影、物品等)或时间序列特征等。通过学习,Embedding向量可以更准确地表示对应特征的内在含义。
Embedding通过多次迭代,从数据中学习到一些规则。Embedding层往往是神经网络的第一层,它可以训练,可以学习到对应特征的内在关系。
Embedding层有时又称为Learned Embedding。一个模型学习到的Embedding,也可以被其他模型重用。
如图1-23,两个分类特征(input_3,input_4)转换为Embedding后,与连续性输入特征(input_5)合并在一起,然后,连接全连接层。在训练过程中,Embedding向量不断更新。
1.5 Graph Embedding
图1-24,左边是人们在电商网站浏览物品的轨迹,这些轨迹图结构,通过一些算法计算后,可以把作图转换为右图这样具有序列样本特征的格式。
1.6 Contextual Word Embedding
word2vec:存在一词多义问题?----静态词嵌入。
无论上下文及其含义是什么,静态词嵌入都会给出相同的表示。
动态词嵌入
1.6.1 多种预训练模型概述
词嵌入是预训练模型的学习载体,根据词嵌入的学习方式,可分为上下文无关和上下文有关两类,两者的区别在于一个词语的嵌入是否随着上下文动态地变化。
上下文无关的词嵌入:
只关注学习词嵌入的单一表示的预训练模型(如word2vec),训练完成后,其词嵌入就固定了(或处于静态),而且一个词对应一个固定的词向量,其预训练的词嵌入虽可以捕获单词的语义,但无法解决一词多义问题。
上下文有关的词嵌入:
预训练模型:ELMo、BERT、GPT、XLNet
除了带有学习到的结果(即词嵌入),还带有学习这些词嵌入的模型架构和学到的权重参数等。
因此,把这些预训练模型迁移到下游任务时,便可根据上下文动态调整。
ELMo和GPT采用自回归语言模型
BERT、ERNIE、ALBERT:掩码语言模型
XLNet:排列语言模型