【阅读笔记】Real-time Personalization using Embeddings for Search Ranking at Airbnb

Methodology

这篇论文里主要介绍了两个应用于搜索里推荐和排名的任务的嵌入式表示学习算法:

  • Listing embeddings for short-term real-time personalization
  • User-type & Listing type embeddings for long term personalization

List Embeddings

首先定义集合 S S S为N个不同用户的浏览商品记录的集合,集合 S S S里每一个Session s = { l 1 , . . . . l M } s= \{l_{1}, ....l_{M}\} s={l1,....lM} 为来自用户的一次的连续浏览点击不同商品的历史记录的集合,其中 l i l_{i} li为单条产品的浏览记录。

注意这里,当同个用户两个连续的浏览记录的时间间隔超过半小时算成两个不同的浏览Session。

然后将这个集合S里的记录当做一个实体利用Word2Vec的skip-gram算法嵌入到向量空间里,学习得到每个历史记录list的向量表示,从而分析出这些浏览记录的关联和相似性。
模型的细节如图(1-1)所示:
)

和skip-gram算法原理一样我们需要优化损失函数:
L = ∑ s ∈ S ∑ l i ∈ s ( ∑ − m ≥ j ≤ m , i ≠ 0 l o g P ( l i + j ∣ l j ) ) L = \sum_{s\in S} \sum_{l_{i} \in s}(\sum_{-m \geq j \leq m,i \neq 0}logP(l_{i+j}|l_{j})) L=sSlis(mjm,i̸=0logP(li+jlj))

参数m是控制训练时滑动窗口的大小, P ( l i + j ∣ l j ) P(l_{i+j}|l_{j}) P(li+jlj)依旧采用softmax函数有:

P ( l i + j ∣ l j ) = e x p ( v l i T v l i + j ′ ) ∑ l = 1 ∣ υ ∣ e x p ( v l i T v l ′ ) P(l_{i+j}|l_{j}) = \frac{exp(v_{l_{i}}^{T}v_{l_{i+j}}^{'})}{\sum_{l=1}^{|\upsilon|}exp(v_{l_{i}}^{T}v_{l}^{'})} P(li+jlj)=l=1υexp(vliTvl)exp(vliTvli+j)

∣ υ ∣ |\upsilon| υ是list里不同的浏览商品记录的数量, v l i v_{l_{i}} vli是中心词向量,也被称为输入词向量(input vector), v l i + j ′ v_{l_{i+j}}^{'} vli+j是上下文词向量,也被称为输出词向量(output vector)。 最后训练完得到的 v l i v_{l_{i}} vli v l i + j ′ v_{l_{i+j}}^{'} vli+j两者就是我们要的词向量表示。

同时由于 listing 里浏览商品记录数量庞大,导致原始的skip-gram算法计算量太大。即不可能让中心词向量与所有上下文词汇都完成计算。所以论文参考Word2Vec优化的模型Negative Sampling ,在list里生成正集合$ D_{n} $​(里面的元素对在一个 session 窗口mm内连续点击)和负集合 $D_{p} $​(里面的元素为随机取的),则需要优化的损失函数变为:
a r g m a x θ ∑ ( l , c ) ϵ D p l o g 1 1 + e − v c v l + ∑ ( l , c ) ϵ D n l o g 1 1 + e v c v l argmax_{\theta}\sum_{(l,c)\epsilon D_{p}} log \frac{1}{1+e^{-v_{c}v_{l}}} + \sum_{(l,c)\epsilon D_{n}} log \frac{1}{1+e^{v_{c}v_{l}}} argmaxθ(l,c)ϵDplog1+evcvl1+(l,c)ϵDnlog1+evcvl1

Booked Listing as Global Context

第一个出彩的地方。
作者结合了对Negative Sampling模型和实际业务理解,修改了这个损失函数,将浏览记录里的Booked List(预定的记录)作为一个global text 放在损失函数里。普通的word2vec在训练过程中,词的context是随着窗口滑动而变化,这个global context是不变的。如下面的公式:

a r g m a x θ ∑ ( l , c ) ϵ D p l o g 1 1 + e − v c v l + ∑ ( l , c ) ϵ D n l o g 1 1 + e v c v l + l o g 1 1 + e − v l b v l argmax_{\theta}\sum_{(l,c)\epsilon D_{p}} log \frac{1}{1+e^{-v_{c}v_{l}}} + \sum_{(l,c)\epsilon D_{n}} log \frac{1}{1+e^{v_{c}v_{l}}} + log \frac{1}{1+e^{-v_{l_{b}}v_{l}}} argmaxθ(l,c)ϵDplog1+evcvl1+(l,c)ϵDnlog1+evcvl1+log1+evlbvl1

注意到公式的最后一项和前面两项的区别,在累加符号的下面,没有变D限制。所以最后一项里的 v l b v_{l_{b}} vlb即是booked list的向量表示,作为全局的上下文信息与中心词进行运算。

同时观察上图(1-1)所示的skip-gram改进的模型,商品浏览记录list里的商品的通过大小为2n+1的滑动窗口从第一个产品开始,每一轮学习过程里中心词(产品)向量 v l v_{l} vl 都被所选定的正集合$ D_{n} 里 的 里的 v_{c} 和 全 局 的 和全局的 -v_{l_{b}}$共同更新。

为什么要加入最终预定(Booked)的list作为global text呢?

我的理解是:word2vec的算法毕竟是非监督的,用户浏览的再多只能代表感兴趣却不能保证最后一定会booked,而Airbnb的业务最终是希望用户Booked,加入一个监督信息的约束,能够将学到的Embedding向量更好的和业务目标靠近。

Adapting Traning for Congregated Search

第二个出彩的地方:
由于用户的在旅行时订购旅店通常在一个单一固定的市场或者地点里,即booking list里也通常都是一个地点或者市场里旅店。所以negative sampling模型里构建的 D p D_{p} Dp里的产品(旅店)很大概率都是了来自同一个市场。另一方面,由于反例 D n D_{n} Dn是随机生成,很大概率生成反例产品和目标产品来自不同的市场。
造成情况就是,在每一轮学习里,给定的中心产品l,具有正上下位关系产品来自同一个市场,而反上下位关系产品来自不同的市场。
作者发现,这种不平衡的正反用例规则会导致我们学到的向量表示会潜在的包含不同市场之间的相关性,而我们想得到的embeding是学习不同产品之间的相关性。为了消除影响,所以作者随机抽取同一市场的商品构建辅助负集合 D m D_{m} Dm

优化的目标函数又新增了一项:

a r g m a x θ ∑ ( l , c ) ϵ D p l o g 1 1 + e − v c v l + ∑ ( l , c ) ϵ D n l o g 1 1 + e v c v l + l o g 1 1 + e − v l b v l + ∑ ( l , m n ) ϵ D m n l o g 1 1 + e v m n v l argmax_{\theta}\sum_{(l,c)\epsilon D_{p}} log \frac{1}{1+e^{-v_{c}v_{l}}} + \sum_{(l,c)\epsilon D_{n}} log \frac{1}{1+e^{v_{c}v_{l}}} + log \frac{1}{1+e^{-v_{l_{b}}v_{l}}} + \sum_{(l,m_{n})\epsilon D_{m_{n}}} log \frac{1}{1+e^{v_{m_{n}}v_{l}}} argmaxθ(l,c)ϵDplog1+evcvl1+(l,c)ϵDnlog1+evcvl1+log1+evlbvl1+(l,mn)ϵDmnlog1+evmnvl1

Cold start listing embeddings

每一周都会有新的商品信息被住户创建放在Airbnb网站上,在商品刚创建的那一刻,由于还没有用户点击加入到clicked list里,所以还没有被训练成新的向量。论文处理方式是利用用户创建host提供的位置,价格,列表信息在10英里内找相似的三个房子(类型、价格范围)的embedding均值来表示。

Examining Listing Embeddings

在8亿的click sessions上训练32维embeddings,进行K-means聚类,可以发现位置相近的聚集在一起,可知我们最后学习到的向量里体现了地理位置的相似性。如下图所示:
Markdown

同时,我们利用余弦相似度去计算来自Los Angeles的不同类型和不同价格的商品向量表示,得到如下的结果:
Markdown
可以很明显看出,学习到的向量表示出了相同类型和价格的listing比不同的更具有相似性的特点。

当然商品价格相似性可以直接从host填写商品的信息直接获取,但是有很多更为抽象的属性无法直接从商品信息里直接获取,比如这里list里商品房屋的建筑风格,给人感觉等。
如下面图所示,我们最后学习得到的向量能够将与它风格最接近的几个房屋:
Markdown

作者为了高效方便的研究从List学习到的向量表示的特点,内部开发了一个Similarity Exploration Tool,演示视频

如下图:
Markdown

User-type&Listing-type Embeddings

(待补充)

参考资料

知乎如何看待kdd 2018 best paper
Word2vec入门看这篇,非常直白浅显概括原理,没有推导过程
Cs224n第二周笔记里面有对自然语言处理理解和word2vec公式推导
Word2vec公式推导过程很清晰
Word2vec四种模型的详细介绍
论文实现部分笔记

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ms-settings:personalization-background是Windows 10操作系统中的一个设置选项,用于更改桌面背景图片。用户可以通过该选项选择自己喜欢的图片或幻灯片作为桌面背景,也可以设置背景图片的填充方式、颜色等。 ### 回答2: ms-settings:personalization-background是Windows 10的设置功能之一,它允许用户自定义桌面背景图像。通过这个设置,用户可以选择一张图片作为桌面背景,或者设置幻灯片来自动轮换多张图片。 这个设置功能非常简便易用,用户只需点击桌面上任意一处空白区域,然后选择“个性化”选项,就可以进入ms-settings:personalization-background页面。在该页面上,用户可以从本地计算机上选择图片作为桌面背景,或者从Microsoft Store下载背景图片。用户还可以选择“幻灯片”选项,将多张图片作为背景并设置轮换时间。此外,用户还可以选择背景显示方式,包括平铺、居中、填充等。 ms-settings:personalization-background不仅方便了用户自定义桌面背景,同时也让桌面背景更加个性化。用户可以根据自己的喜好选择各种美丽独特的背景图片,或者选择自己喜欢的图片拼贴成幻灯片进行轮播。无论是工作还是休闲,这个设置功能都可以让用户的计算机桌面更加舒适、个性化、温馨。 ### 回答3: ms-settings:personalization-background是Windows 10中的一个设置页面,用于更改桌面背景。Windows 10允许用户选择不同的背景图片或幻灯片作为桌面背景,以及对背景色进行自定义。此外,用户还可以选择是否在锁定屏幕上显示相同的桌面背景。 通过这个设置页面,用户可以轻松地上传自己的图片作为桌面背景,并应用到所有的设备上。此外,用户可以通过“背景选项”中的下拉框选择不同的背景设置,包括桌面背景、开始菜单和任务栏、锁定屏幕,以及高对比度设置等,以适应不同的使用习惯和视力。 此外,Windows 10还提供了“Dynamic Theme”和“Slideshow”两种背景设置,让用户可以轻松地更改背景图片,实现更加个性化的桌面。用户可以设置图片轮播时间间隔,以及图片来源。此外,用户还可以通过“浏览”按钮来添加自己喜爱的图片文件夹,使得Windows随机选择其中的图片作为桌面背景。 总的来说,ms-settings:personalization-background是Windows 10中一个非常有用的设置页面,可以让用户轻松自定义自己的桌面背景,实现更加个性化的用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值