干货 | 机器学习模型在携程海外酒店推荐场景中的应用

推荐系统学习笔记-推荐系统分布式离线训练 工业界需要训练大型的机器学习模型,一些广泛使用的特定的模型在规模上的两个特点:1. 参数很大,超过单个机器的容纳能力(比如大型Logistic Regression和神经网络)2. 训练数据巨大,需要分布式并行提速(大数据)这种需求下,当前类似MapReduce的框架并不能很好适合。如果每个参数都有一个时间戳,那么参数众多,时间截也众多,由于parameter server在oush和oul的时候都是range-based,那么在range里面的参数共享同一个时间戳,就可以大大降低空间复杂度。 阅读详情

作者简介

 

Louisa,携程算法工程师,热爱前沿算法和技术在个性化推荐和广告建模等业务的性能优化和落地。

导读

互联网企业的核心需求是“增长”,移动互联时代下的在线旅游业也不例外。随着大数据、云计算和人工智能等技术的不断进步,通过算法和模型来实现增长已成为核心。

近年来推荐系统迅速崛起,主要解决在信息过载的情况下,帮助用户高效获取感兴趣的信息,同时帮助企业最大限度的吸引用户、留存用户、增加用户黏性、提高用户转化率。因此个性化的推荐服务对于在线旅游业也变得非常重要,通过推荐能够将用户从众多的旅行选择中解放出来,指导用户快速找到感兴趣的项目,大大简化用户的旅行计划和购买。

在线旅游服务商 (OTA)提供的应用中包含酒店、航班、旅游产品、攻略等各个环节和产品。其中酒店涉及到的推荐场景较多,例如城市热门酒店推荐、附近同类型酒店推荐、机票页酒店交叉推荐、Meta着陆页相似酒店推荐、信息流推荐等。大部分场景都实现了个性化的推荐服务,其核心就是一组酒店与一组用户相匹配的挑战。

推荐准确性取决于如何利用可用信息,这些信息主要包括物品信息(I)、用户信息(U)及上下文信息(C)等,例如给定的酒店特征、酒店的位置吸引力、用户的购买历史等。将这些信息构建一个函数 f(U,I,C),预测用户对特定候选酒店的喜好程序,再根据喜好程度对所有候选酒店进行排序,生成推荐列表。见图1推荐系统逻辑框架。

推荐系统排序模型在推荐系统中占据绝对核心的地位,很多公司也都在提出并尝试一些前沿的算法和推荐模型。而机器学习和深度学习模型正在变得越来越复杂,将这种复杂模型推上线,模型响应速度就可能变得很慢,因此对推荐系统的数据流和工程实现产生新的挑战。

如何做到海量数据的实时处理、特征的实时提取、线上模型服务过程的数据实时获取以及工程能力与技术方案的平衡等,成为模型上线的重要挑战。本文主要探讨OTA酒店推荐方面常用的在线部署模型以及技术架构,并从核心之外的角度审视推荐系统的不同技术模块及优化思路。

图1 推荐系统逻辑框架

一、酒店推荐系统的技术架构

实际推荐系统中主要解决的问题可以分为两类,数据部分以及算法模型部分。其中数据部分融合了数据离线批处理、实时流处理的数据流框架。算法模型部分则是集训练 (training)、评估 (evaluation)、部署 (deployment)、线上推断 (online inference) 为一体的模型框架。目前通用的推荐系统技术架构如图2所示。

图2 推荐系统的技术架构示意图

1.1 数据部分

推荐系统的数据部分主要负责用户、物品、上下文的信息收集与处理。并且按实时性强弱,分别在三种平台上进行处理。客户端是最接近用户的环节,也是能够实时收集用户会话内行为及上下文特征的地方,这些特征随http请求一起到达服务器端是常用的请求推荐结果的方式。

随着Storm、Spark Streaming、Flink等流计算平台的日益成熟,利用流计算平台进行准实时的特征处理已经成为当前推荐系统的主要模式。流计算平台并非完全实时的平台,每次需要等待并处理一小批日志,以流的形式进行微批处理(mini batch),系统可能无法在3分钟内把session内部的行为历史存储到特征数据库(如Redis)中。但它的优势是能够进行一些简单的特征统计的计算,比如一个物品在该时间窗口内的曝光次数,点击次数、一个用户的页面浏览时长等。

大数据离线数据处理主要是利用Spark等分布式批处理计算平台对全量特征进行计算和抽取。主要用于模型训练和离线评估,以及将特征保存入特征数据库,供之后的线上推荐模型使用。

酒店推荐系统中的实时特征部分主要来源于用户的实时点击行为数据和一些上下文信息(如GPS获得的地点信息等),通过Storm或Flink进行准实时流处理,将用户实时行为数据解析入特征数据库Redis。

离线特征部分主要包含用户和酒店两部分的特征。其中用户离线特征主要由用户画像(CRM)提供,包含数据库中用户的订单和浏览历史信息等,并且严格遵守欧盟通用数据保护条例(GDPR)。酒店离线特征主要包含酒店的基础信息,如星级、评分等。由于特征维度及样本量较大,离线特征数据的清洗与预处理通常在Spark平台上进行,后将处理好的特征数据落入HDFS的Hive表并同步至Redis缓存中。离线特征与实时特征合并供线上模型使用。下面代码展示Hive表数据同步Redis的方法:

1.2 模型部分

模型部分是推荐系统的主体,一般由召回层、排序层、补充策略与算法层组成。召回层一般利用高效的召回规则、算法或者简单的模型,快速从海量的候选集中召回用户可能感兴趣的物品。排序层利用排序模型对筛选的候选集进行精排序。排序层是推荐系统产生效果的重点,后面部分将重点介绍一些主流推荐模型和酒店推荐上的应用。

补充策略与算法层也被称为再排序层,再将推荐列表返回用户之前,根据新鲜度、多样性等指标结合补充策略与算法进行一定调整,最终形成用户可见的推荐列表。从召回所有候选物品集,到最后产生推荐列表,这一过程一般称为模型服务过程。

在线环境进行模型服务之前,需要通过模型训练确定模型结构及参数值,并生成模型文件。另外,为了评估推荐模型的效果,方便模型的迭代优化,推荐模型部分有离线评估和线上A/B测试等多种线上线下评估模式。

 

二、酒店推荐系统的工程实现

如何将离线训练好的模型部署在线上的生成环境,进行线上实时推断,一直是业界难点。目前酒店推荐场景中主要用到两种部署推荐模型的主流方法,一是利用PMML转换并部署模型,二是Tensorflow Serving方式。

2.1 利用PMML转换并部署模型

酒店推荐场景中由于实时数据量较大,通常采用SOA框架实现分布式服务,完成模型服务过程。但绝大部分SOA框架都是Java或C++语言编写,而预测模型大多是基于Python语言。因此常用预测模型标记语言(Predictive ModelMarkup Language,以下简称PMML)重新实现算法模型,然后将模型封装成类,通过JAVA调用这个类来进行预测。由python封装的模型可以通过sklearn中的sklearn2pmml函数实现PMML文件转换。XGBoost模型需要JPMML-XGBoost命令行转换工具,转换命令为:

                           

XGBoost模型需要生成.model模型文件和 .fmap特征映射文件。.model文件可以通过save_model函数生成。

2.2 Tensorflow Serving

上面的方法也适用于Tensorflow生成的模型,但由于Tensorflow模型文件往往较大,且PMML文件无法优化,使用起来比较麻烦。本质上讲,Tensorflow Serving的工作流程和PMML类工具的流程是一致的。不同之处在于,Tensorflow定义了自己的模型序列化标准。

利用Tensorflow自带的模型序列化函数可将训练好的模型参数和结构保存至某文件路径。路径下包括variables文件夹和saved_model.pbtxt文件。variable文件夹下包含各个变量的状态(断点),有*.data和*.index两类文件。*.data记录变量的内容。*.index文件用于将变量名映射到*.data中的变量数据。.pbtxt文件是包含SavedModel、MetaGraphs、Graphs、签名等的二进制protobuf。模型文件通常由自身的Python API生成,然后由Tensorflow的客户端库(如JAVA或C++库)来加载模型并进行在线预测。以下代码展示了使用SavedModelBuilder 构建 SavedModel 的典型方法:

添加Tensorflow相关依赖后Java导入已保存的模型方法为:

具体的酒店实时推荐工程架构如图3所示。

图3 酒店实时推荐工程架构

三、Embedding技术在酒店推荐中的应用

Embedding方法已成为应用最广泛的深度学习技术。通过低维的向量表示一个对象,可以同时表达对象之间的潜在关系,即向量之间的距离反应对象之间的相似性。该方法的流行始于自然语言处理领域对于词向量生成问题的研究,发展到其他应用领域的物品也可以通过某种方式生成其向量化表示,例如旅游领域对酒店进行Embedding,并对酒店进行相似度计算,因此成为常用的推荐系统召回层技术。

Embedding技术中最著名的就是Word2vec模型,用于生成对词的向量表达。而对于用户购买序列中的商品或者用户浏览序列中的酒店使用的Embedding方法称为Item2vec方法。

在酒店召回层我们采用了酒店Embedding技术计算相似度,召回候选酒店集。在Word2vec方法中词的上下文即为邻近词的序列,而词的序列其实等价于一系列连续操作的item序列。因此,我们将用户一次浏览会话中连续点击的酒店序列作为训练语料,学习酒店的向量表示。抽取用户的连续点击如表1所示。酒店间的共现为正样本,且按照酒店的频率分布进行负样本采样。

表1 用户在同一个会话下的酒店连续点击记录

uid

sessionid

hotelid

001

1

1701976, 480887, 1525866, 846838

002

4

686430,1542818,993356,1525732,1525866,688217,1701976,1007025

酒店嵌入矩阵(Embeddingmatrix)的行数为酒店的总个数,列数为嵌入维度。酒店相似度使用余弦相似度。将相似度得分从高到低排序,选取TopN酒店做候选酒店。酒店向量生成使用的是Word2vec模型中的Skip-Gram模型。Skip-Gram神经网络模型训练一个带有单个隐含层的简单神经网络来执行某个预测任务,训练好的模型并不用于实际预测,其真正目的是获取输入层-隐含层的权重矩阵,将这些权重值视为词向量。

图4展示了当skip_window = 2时(即仅选输入词前后各两个词和输入词进行组合),训练样本是如何产生的(蓝色代表输入词,方框内代表位于窗口内的单词)。通过输入文本中成对的单词来训练神经网络,其输出概率代表着到词典中每个词有多大可能性跟输入单词同时出现。

 

图4 训练样本生成

每个词wt都决定了wt+j,基于极大似然估计方法,希望所有样本的条件概率p(wt+j|wt)之积最大,这里使用对数概率。因此Word2vec的目标函数如公式(1)所示。

  (1)

基于训练数据需要构建词汇表并对单词做one-hot编码。神经网络结构如图5所示。假设从训练数据中抽取出10000个唯一不重复的单词组成词汇表,则模型的输入为10000维的向量,输出也是10000维的向量。每一维输出都是一个概率,代表当前词是输入样本时输出词的概率大小。

图5 Skip-Gram神经网络

隐含层不使用激活函数,输出层使用softmax计算输出概率。由于权重矩阵规模非常大,通过梯度下降更新权重是相当慢的,并且需要大量的训练数据避免过拟合。因此通常对优化目标采用负采样方法,即每个训练样本的训练只会更新一小部分的模型权重,从而降低计算负担。Skip-Gram模型的Tensorflow核心代码如下所示:

 

Word2vec和由其衍生出的Item2vec是Embedding技术的基础性方法,但都是建立在序列样本的基础上。在互联网场景下,数据对象之间更多呈现的是图结构。典型的场景是由用户行为数据生成的物品关系图,如图6(a)(b) 所示,以及由属性和实体组成的知识图谱,如图6(c)所示。

图6 物品关系图与知识图谱

由于用户浏览酒店的模式不一定呈现序列结构,而是一种关系图结构,我们后期尝试Graph Embedding中的DeepWalk方法对图结构中的节点酒店进行Embedding。即在由酒店组成的图结构上进行随机游走(如图7所示),产生大量酒店序列,然后将这些物品序列作为训练样本输入Word2vec进行训练,得到酒店的Embedding。在DeepWalk算法中,需要定义随机游走的跳转概率,即到达节点vi后,下一步遍历vi的邻接点vj的概率。见公式(2)。

图7 随机游走

  (2)

其中ε是物品关系图中所有边的集合。如果物品关系图是有向有权图,则N+(vi)是节点vi所有的出边集合,Mij是节点vi到节点vj边的权重。如果物品关系图是无向无权图,则权重Mij将为常数1,且N+(vi)是节点vi所有边的集合。酒店推荐场景采用无权无向图结构进行训练。

四、酒店推荐系统中的模型应用

深度学习之前传统的推荐模型发展主要由这几部分组成:协同过滤算法族、逻辑回归模型族、因子分解机模型族以及组合模型,思路演化主要是增强泛化能力、保留记忆能力、挖掘特征组合关系。

经典的协同过滤算法曾是推荐系统的首选模型,并且衍生出矩阵分解模型,能够更好的处理稀疏共现矩阵问题,增强模型的泛化能力。在酒店推荐中我们也常常将协同过滤作为召回层的算法使用。与协同过滤仅利用用户和物品之间的显式或隐式反馈信息相比,逻辑回归能够利用和融合更多用户、物品及上下文特征。并发展出来因子分解机模型FM,加入二阶部分,使模型具备进行特征组合的能力。在此基础上又发展出域感知因子分解机FFM,进一步加强因子分解机特征交叉的能力。

另外为了融合多个模型优点,将不同模型组合使用成为推荐模型常用的方法。Facebook提出的GBDT+LR[ 梯度提升决策树+逻辑回归 ] 组合模型是在业界影响力较大的组合方式。其中GBDT作为有监督的特征转换器,对于连续型特征和离散特征分别做离散化非线性变换和笛卡尔乘积的特征组合,将实数向量转换为简单的二进制值向量,构造新特征向量。LR用于新特征向量的训练,并取得比单独使用两个模型都好的结果。组合模型中体现的特征工程模型化的思想,成为深度学习推荐模型的主要思想之一。

酒店推荐系统仍然延续通常意义上的CTR(Click- through rate)预估类的优化目标,其任务核心衍生为把推荐问题当作分类问题对待,预测用户点击某个酒店的概率CTR,并且返回用户一组按CTR从高到低排序的酒店列表。因此也称为搜索排序系统。

酒店推荐场景亦属于高度稀疏数据,往往需要解决记忆/泛化问题及特征交互问题。因此深度学习模型的优势就展现出来,通过学习一种低维的特征向量表示(Dense Embedding),深度神经网络已经表现出自动学习复杂特征交互的潜力。并且通过较少的特征工程,可以从稀疏特征中更好的泛化去发现特征关联。深度学习推荐模型大量借鉴并融合了深度学习在图像、语音及自然语言处理方向的成果,在模型结构上进行了快速的演化。主要有以下几种演变方向。

(1)改变神经网络的复杂结构,从单层神经网络模型AutoRec到经典的Deep Crossing(深度特征交叉),增加了深度神经网络的层数和结构复杂度。

(2)改变特征交叉方式,例如NeuralCF(神经网络协同过滤)和PNN(基于积操作的神经网络)模型。

(3)组合模型,主要是指Wide&Deep模型及其后续变种Deep&Cross、DeepFM等,通过组合不同特点、优势互补的网络,提升模型的综合能力。

(4)注意力机制与推荐模型的结合,主要包括FM与注意力机制的AFM和DIN(深度兴趣网络)。

(5)其他结合方式(序列模型、强化学习与推荐模型的结合等)。

以下简单介绍几种在推荐模型演化过程中常用的模型结构和原理。

4.1 Factorization Machines(因式分解机)

对于一个给定的特征向量,线性回归建模时采用的函数是

 

(3)

其中, W0和为模型参数。方程中各特征分量xi和xj (i≠j)之间相互独立,即中仅考虑单个的特征分量,而没有考虑特征分量之间的相互关系。因此将改写为:

 

(4)

公式中增加了任意两个不同特征之间的关系。但是在稀疏数据中,这样的建模方式存在一个缺陷,对于训练数据中未出现交互的特征分量,不能对相应的参数进行估计。而在类似推荐这种高度稀疏数据场景中,样本中出现未交互的特征分量是很普遍的。

为了克服上面的缺陷,针对每个维度的特征分量xi引入辅助向量

其中为超参数, wij改写为

 

则模型方程可以改写为:

       

                                      

由于对应一种矩阵分解技术,因此模型方程的方法称为Factorization Machines。该模型方程可以证明在线性时间0(kn) 内计算,并且方程可以进一步推导为:

(6)

FactorizationMachines的Tensorflow核心实现代码如下:

4.2 Wide & Deep Learning

深度学习存在过度泛化的问题,当用户与物品交互较少即特征向量稀疏时推荐一些与用户不相关的项目(例如用户有特定的偏好或者一些小众项目),这种情况下大多数项目不应该被推荐,但是Dense Embedding会给出非0的预测,因此不相关的项目也会被推荐。而进行特征交叉乘积变换的线性模型能够记忆这些特殊情况或例外规则,并且使用更少的参数。Google在2016年提出了Wide& Deep模型,很好的结合了线性模型的记忆能力和深度神经网络的泛化能力,在训练过程中同时优化2个模型的参数,从而达到整体模型的预测能力最优。模型结构如图9所示。

图9 Wide & Deep模型结构

Wide部分就是LR,输入特征包含了原始特征和交叉特征。Deep部分是MLP网络,隐含层的激活函数使用ReLUs=max(0,a),输入特征包含了连续的特征和embedding特征。对于一个逻辑回归任务Wide & Deep模型预测方程为:

(7)

其中Y是二分类标签,σ(.)是sigmoid函数,∅(x)是原始特征的交叉乘积转换。Wwide是所有线性模型的权重向量,Wdeep是应用于最后激活层输出的权重。

Wide& Deep建模可以使用Tensorflow高级API,建模步骤如下:

(1)选择Wide部分的特征(wide_columns):稀疏基础特征和交叉特征。

(2)选择Deep部分的特征(deep_columns):连续型特征、类别特征(编码)。

(3)将Wide & Deep特征合并输入模型(DNNLinearCombinedClassifier)。

4.3 FTRL 算法

Wide& Deep模型训练方面常使用结合 L1 正则的Follow-the-regularized-leader (FTRL) 算法进行Wide部分训练,而Deep部分使用AdaGrad算法进行训练。

其中FTRL算法可以实施于在线学习,对模型参数进行实时更新,在处理诸如逻辑回归之类的带非光滑正则化项的凸优化问题上性能非常出色。像Batch Gradient Descent 等优化算法,是对一批样本进行一次求解,得到一个全局最优解。而实际CTR预测需要更快速地更新模型,模型的参数需要针对每一个新来样本进行一次迭代。因此可以通过工程上实现FTRL算法,从而快速更新模型的参数。FTRL算法的特征权重更新公式为:

(8)

其中是针对每个特征维度的学习率。如果特征 A 比特征 B变化快,那么在维度 A 上面的学习率应该比维度 B 上面的学习率下降得更快。维度i的学习率定义为:

(9)

在Logistic Regression中,假设σ(a)=1/(1+exp(-a))是sigmoid函数,yt∈{0,1},需要预测Pt=σ(Wt),损失函数使用LogLoss函数:

(10)

梯度.Logistic Regression的FTRL算法为:

4.4 DeepFM

Wide & Deep 模型中需要宽度部分和深度部分两类不同的输入,而宽度部分仍然需要依赖大量的特征工程工作。2018年提出的DeepFM 模型结合了分解向量机(FM)和深度神经网络(DNN),既能学习复杂的低阶与高阶特征交互又不需要原始特征以外的特征工程,并且允许端到端的学习方式。模型结构如图10所示。嵌入层(Dense Embedding)将原始输入向量压缩到低维稠密向量,作为FM和深度部分的输入。因此不同于Wide & Deep 模型,DeepFM的FM部分和深度部分共享相同的输入向量,从而可以进行端到端的训练。

图10  DeepFM 模型结构

尽管不同Field的输入长度不同,但是Embedding之后的Dense vector的长度均为k。Dense vector其实就是输入层到Embedding层该神经元相连的k条线的权重,即。这k个值组合起来就是我们在FM中所提到的辅助向量vi,即FM和深度神经网络的共享输入向量。其中深度部分可以使用不同的神经网络结构。如图所示DeepFM模型是一种并行结构,预测结果可以表示为:

(11)

DeepFM 模型的Tensorflow核心实现代码如下:

五、酒店推荐系统评估

推荐系统一般分为离线评估和在线评估两部分。离线评估的指标主要是机器学习模型常用的一些评估指标,包括准确率、精确率与召回率、F1-Score、AUC值等。在线评估的主要方式是A/B测试,主要评估指标有点击率、转化率、点击排名等。

为了测试模型效果,我们选取了某一个酒店推荐场景,并抽取100万左右数据作为训练样本。其中正样本为用户点击,负样本为有露出但用户未点击,并对数据集做样本平衡处理。特征部分不赘述。模型离线表现如表2所示。

表2 模型离线表现对比

Model

AUC (5000  iters)

Logistic  Regression

0.597

Xgboost

0.737

XGBoost+LR

0.75

FM

0.599

Wide  & Deep

0.799

DeepFM

0.80

在线测试部分使用A/B测试,其中A版本为旧版本,推荐算法基于规则推荐,B版本为新版本,使用XGBoost模型进行酒店点击率预测并排序,同时使用基于酒店的协同过滤算法进行候选酒店召回。工程上线参考第三部分描述。A/B实验周期为一个月,使用的评估指标包括酒店平均点击率及酒店订单量等。其中酒店平均点击率增长25.35%,酒店订单量总增长率为27.31%,效果较显著。更多模型结构将会持续上线实验。

六、推荐系统中的一些问题

在构建推荐系统的过程中,推荐模型的作用是重要的,但并不是推荐系统的全部。推荐系统需要解决的问题是综合性的,包含特征选取和处理、召回层设计、实时性要求、模型在线学习以及冷启动和推荐多样性问题等。这里主要探讨一下冷启动和推荐多样性问题。

冷启动问题主要包括用户冷启动(新用户注册,无历史行为)、物品冷启动(新物品加入,无用户交互历史)和系统冷启动问题(无任何相关历史数据)三类。主流的冷启动策略是基于规则的冷启动过程,在这过程中可以丰富用户和物品特征,从而通过推荐模型进行个性化推荐。

另外也可以通过主动学习、迁移学习和探索利用机制。最经典的启发式探索利用方法为几个Bandit算法,如Thompson Sampling算法和UCB(Upper Confidence Bound)算法,二者都是利用了分布的不确定性作为探索强弱的依据。UCB算法流程如下:

(1)假设有K个老虎机,对每个老虎机进行随机摇臂m次,获得老虎机受益的初始化经验期望。

(2)用t表示至今摇臂的总次数,用nj表示第j个老虎机至今被摇臂的次数,计算每个老虎机的UCB值:

(3)选择UCB值最大的老虎机i摇臂,并观察其收益Xi,t。

(4)根据Xi,t更新老虎机i的收益期望值。

(5)重复第2步。

ThompsonSampling算法和UCB算法都是工程中常用的探索与利用方法,不但可以解决冷启动问题,还可以发掘用户新兴趣,增加推荐结果的多样性,减少大量同质化内容同时出现时用户的厌倦情绪。可以说探索与利用的思想是所有推荐系统不可或缺的补充。


参考文献

[1] 《深度学习推荐系统》,王喆

[2] H.B. McMahan, G. Holt, D. Sculley, M. Young, D. Ebner, J. Grady, L. Nie, T.Phillips, E. Davydov, D. Golovin, S. Chikkerur, D. Liu, M. Wattenberg, A. M.Hrafnkelsson, T. Boulos, and J. Kubica, “Ad click prediction: a view from thetrenches,” in ACM SIGKDD, 2013.

[3]X. He, J. Pan, O. Jin, T. Xu, B. Liu, T. Xu, Y. Shi, A. Atallah, R. Herbrich,S. Bowers, and J. Q. Candela, “Practical lessons from predicting clicks on adsat facebook,” in ADKDD, 2014, pp. 5:1–5:9.

[4] S.Rendle, “Factorization machines,” in ICDM.

[5]H. Cheng, L. Koc, J. Harmsen, T. Shaked, T. Chandra, H. Aradhye, G. Anderson,G. Corrado, W. Chai, M. Ispir, R. Anil, Z. Haque, L. Hong, V. Jain, X. Liu, andH. Shah, “Wide & deep learning for recommender systems,” CoRR, vol.abs/1606.07792, 2016.

[6]Huifeng Guo, Ruiming Tang, Yunming Ye, Zhenguo Li, Xiuqiang He, and ZhenhuaDong, “DeepFM:AnEnd-to-End Wide & Deep Learning Framework for CTR Prediction,”arXivpreprint arXiv:1804.04950, 2018

活动推荐

2020云原生微服务大会

8 月 18 日 - 19 日,由阿里云主办的首届“云原生微服务大会”将在线召开。5 大论坛,25 个议题,750 分钟技术干货分享!与 25 位技术大咖一起,聚焦微服务架构发展前沿,共迎云原生时代。

大会官网PC端链接:https://developer.aliyun.com/topic/microservices2020#/

【推荐阅读】

《携程架构实践》

京东

当当

《携程人工智能实践》

京东

当当

 “携程技术”公众号

  分享,交流,成长

于磊-携程AI和推荐系统的云化实践 于磊-携程AI和推荐系统的云化实践于磊-携程AI和推荐系统的云化实践于磊-携程AI和推荐系统的云化实践 立即下载

相关推荐

深入解析Transformer三大注意力机制:自注意力、交叉注意力与因果自注意力

注意力机制是深度学习中的核心概念,它模拟了人类在处理信息时选择性聚焦的能力。其基本原理是通过计算查询与键的相似度,动态地为值分配权重,从而提取关键信息。这一机制解决了传统序列模型(如RNN)难以并行化和捕获长距离依赖的痛点,技术价值在于显著提升了模型的计算效率和表征能力。在自然语言处理、计算机视觉等应用场景中,注意力机制已成为构建强大模型的基石。本文聚焦于Transformer架构中的三种核心注意力变体:自注意力用于建立序列内部的全局关联,交叉注意力连接编码器与解码器的信息,而因果自注意力则确保自回归生成的

weixin_29094775的博客 409

RS推荐系统-实例之基于内容相似度的酒店推荐

在推荐系统中,有一个环节是基于物品的推荐。它是基于物品的相似度,即物品的静态属性,如物品内容描述、物品特征向量等属性。这次我们会用到TFIDF和相似度计算的方法,对用户进行酒店推荐。本次使用的酒店数据会放到github中,需要自取:https://github.com/Vihagle/AI/tree/main/data. import numpy as np import pandas as pd import nltk nltk.download('stopwords') from sklearn.met

你好,今天的你 1078

Dia 使用说明

简述 在linux上面能找到dia这个工具还是挺幸运的,因为之前画流程图总是使用ubuntu默认的word工具 在里面画图,感觉流程图使用起来麻烦,并且视觉效果真的不好看。 自从使用Dia后,感觉至少画起来流程图会变得越来越标准了。但是Dia也存在问题,就是使用的文档很少,使用中遇到为后,查起来比较费劲,但是至少问题不是很多,所以使用中遇到的几点问题我就记下来,和大家分享,加快大家的开发和文档整理能力。 我会按照遇到的问题来说,不存在使用的先后顺序。 1. Dia 去掉背景中的线条 首先去点那个大一点的蓝色

linan101的博客 4926

机器学习在马蜂窝酒店聚合中的应用初探

出门旅行,订酒店是必不可少的一个环节。住得干净、舒心对于每个出门在外的人来说都非常重要。 在线预订酒店让这件事更加方便。当用户在马蜂窝打开一家选中的酒店时,不同供应商提供的预订信息会形成一个聚合列表准确地展示给用户。这样做首先避免同样的信息多次展示给用户影响体验,更重要的是帮助用户进行全网酒店实时比价,快速找到性价比最高的供应商,完成消费决策。 酒店聚合能力的强弱,决定着用户预订酒店时可选价格的「厚度」,进而影响用户个性化、多元化的预订体验。为了使酒店聚合更加实时、准确、高效,现在马蜂窝酒店业务中...

whyrookie的博客 876

美亚杯取证比赛必备:Veracrypt挂载+检材解压保姆级教程(附常见错误排查)

本文提供美亚杯数字取证竞赛的Veracrypt挂载与检材解压保姆级教程。详细解析从分卷压缩包解压(密码格式为MeiyaCup+年份)到使用Veracrypt正确挂载加密容器的全流程,并附有常见错误排查与高级应急方案,帮助选手高效突破技术门槛,顺利进入取证分析阶段。

alice7model的博客 1032

玩转肺癌目标检测数据集Lung-PET-CT-Dx ——①从TCIA获取影像数据集

该目标检测公共数据集源自 The Cancer Imaging Archive(TCIA),是肿瘤研究方面的著名的医学影像公开数据库。 数据以 DICOM 格式存储,由肺癌受试者的 CT 和 PET-CT DICOM 图像组成。

takedachia的博客 1万+

Hotel booking酒店预订——数据分析与建模

Hotel booking酒店预订——数据分析与建模:https://zhuanlan.zhihu.com/p/196757364?utm_source=wechat_session 写文章Hotel booking酒店预订——数据分析与建模(转载翻译自kaggle)海上泊舟数据分析师数据源:https://www.sciencedirect.com/science/article/pii/S2352340918315191字段解释:hotel 酒店is_canceled 是否取消lead_time 预

古月哲亭 9214

华为无线WiFi实战:基于802.1x与NPS的企业级认证部署指南

本文提供了一份详尽的华为无线WiFi企业级认证部署实战指南。通过整合802.1x协议与Windows NPS服务器,构建基于AD域账号的安全认证体系,彻底解决传统WiFi密码共享带来的安全风险。文章详细拆解了从NPS服务器配置、证书部署到华为AC端RADIUS模板、AAA方案、认证域及VAP模板调用的全流程,并附有终端连接测试与常见故障排查方法,助力企业实现高效、安全的无线网络接入管理。

weixin_29239661的博客 267

携程个性化推荐算法实践

携程个性化推荐算法实践 携程作为国内领先的OTA,每天向上千万用户提供全方位的旅行服务,如何为如此众多的用户发现适合自己的旅游产品与服务,挖掘潜在的兴趣,缓解信息过载,个性化推荐系统与算法在其中发挥着不可或缺的作用。而OTA的个性化推荐一直也是个难点,没有太多成功经验可以借鉴,本文分享了携程在个性化推荐实践中的一些尝试与摸索。 推荐流程大体上可以分为3个部分,召回、

huangshulang1234的博客 8049

S32K144 ADC硬件触发+DMA传输实战:从寄存器配置到数据采集全流程

本文详细解析了S32K144微控制器中ADC硬件触发与DMA传输的协同工作机制,提供了从寄存器配置到数据采集的全流程实战指南。通过PDB定时触发ADC转换,并利用DMA实现数据自动搬运,构建了高效、实时的汽车级数据采集系统,有效释放CPU资源,满足汽车电子应用的严苛要求。

weixin_29194693的博客 474

将Keil中的变量数组导出

首先,写好导出数据的函数。

小柚子的博客 1951

干货 | 携程酒店排序推荐广告高效可靠数据基座--填充引擎

作者简介yang,携程资深后端开发工程师,专注推荐系统架构、数据流批一体、系统稳定性、效率提升等领域;kevin,携程高级研发经理,专注以技术驱动解决推荐系统中产品业务上的共性问题,创新生产模式,重构生产力;莫秃,携程高级后端开发工程师,负责酒店机器学习平台的研发工作;一、背景与思考1.1 背景携程酒店排序推荐广告工程(以下简称酒店推荐工程)在数据层面引入抽象化的统一数据协议UnifiedPB,解...

携程技术 1183

Spatial-ORMLLM: Improve Spatial Relation Understanding in the Operating Room with Multimodal Larg...

手术室(OR)中的精准空间建模是众多临床任务的基础,可为术中感知、风险规避及手术决策提供支持。现有方法虽利用大规模多模态数据集进行 latent 空间对齐,以隐式学习空间关系,但却忽视了多模态大型语言模型(MLLM)的3D能力。然而,这种方法存在两个问题:1)手术室通常缺乏多台视频和音频传感器,多模态3D数据难以获取;2)仅依赖易获取的2D数据训练,无法捕捉复杂场景中的细粒度细节。为解决这一问题,我们提出——首个针对手术室3D空间推理的大型视觉语言模型。

UnknownBody_2的博客 592

《携程技术2020年度合辑》,送给爱学习的你

01序言 2020年跌宕起伏,突如其来的疫情对旅游行业造成了前所未有的冲击,也让更多人进一步感受到技术互联互通的重要性。对于旅游业技术人而言,外部的不可控因素让我们更加聚焦于系...

携程技术 728

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

携程推荐系统架构学习

下图是携程推荐系统的架构图,参考携程大数据实践:高并发应用架构及推荐系统案例 这个图,画的较携程应用系统整体架构学习清晰。 对我的技术选型和架构设计有很多借鉴参考的地方 1 数据采集 采集的是哪些数据? 采集数据的格式是什么? 采集数据的工具是什么?采集数据时间窗如何? 数据传输方式是什么? 2 数据清晰

warrah 南极狼 3797

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

干货 | 强化学习在携程酒店推荐排序中的应用探索

作者简介宣云儿,携程酒店排序算法工程师,主要负责酒店排序相关的算法逻辑方案设计实施。目前主要的兴趣在于排序学习、强化学习等领域的理论与应用。前言目前携程酒店绝大部分排序业...

携程技术中心 725

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

干货 | 当你在携程搜索时,背后的推荐系统是如何工作的

作者简介葛荣亮,携程搜索部门高级研发工程师。2015年加入携程,目前主要负责搜索平台的前端+数据挖据工作。一、前言随着旅游业的发展,人们对搜索的要求越来越高。智能化大趋势...

携程技术中心 2717

计算机毕业设计之基于机器学习的酒店推荐系统

通过功能模块图,可以清晰地展示系统的模块划分、模块之间的依赖关系和数据流向,帮助开发人员更好地理解系统结构,方便进行系统设计和开发工作。接下来,通过运用机器学习算法对数据进行训练和建模,从而实现酒店推荐的功能。系统了协同过滤算法,该算法可以根据用户的历史行为和偏好,为用户推荐符合其需求的酒店。同时还使用了基于内容的推荐算法,通过分析酒店的特征信息,为用户推荐相似的酒店。接口实现前端与后端的交互,用户可以根据自己的需求输入查询条件,后端接收请求后,调用相应的机器学习模型进行推荐,并将结果返回给前端展示。

2401_85505850的博客 380

机器学习领域有哪些算法/模型可以应用在酒店推荐系统里面?

这些算法/模型通常用于处理用户行为数据、偏好数据以及酒店特征等信息,以预测用户可能感兴趣或满意的酒店。除了之前提到的算法和模型,还有一些其他的方法和技术可以在酒店推荐系统中应用。这些方法可能不是专门针对推荐系统设计的,但在特定情况下可以提供额外的价值或改进推荐效果。每种方法都有其适用场景和局限性,实际应用时可以根据业务需求、数据特点以及计算资源等因素选择最合适的技术组合。此外,随着领域的发展,还会有新的技术和方法出现,持续推动推荐系统的进步。

weixin_42736657的博客 1496

创新实训十

选定多地点进行酒店推荐的算法 由于现在得不到每个地点的平均游玩时间,所以考虑其他的实现办法。 (1)要去的地点多于一个,但是酒店入住日期只有一天 首先根据根据每一个地点进行推荐,得到一个推荐顺序,然后计算出推荐重叠的酒店,对于排名比较靠前又都出现在每个地点的推荐酒店列表里的酒店,视为优质选择,优先推荐。 如果这几个地点相隔较远,那么在推荐时注明酒店与每个地点的距离,方便用户选择。 (2)要去的地点多于一个,酒店入住日期多于一天 首先根据根据每一个地点进行推荐,得到一个推荐顺序,然后计算出推荐重叠的酒店,对于

weixin_44818741的博客 172

数字化酒店的数据分析:提高客户满意度

1.背景介绍 随着互联网和人工智能技术的发展,酒店业也在不断地数字化,以提高客户满意度。数字化酒店通过大数据分析、人工智能、机器学习等技术,对客户行为、酒店运营等方面进行深入分析,从而提高客户满意度。 在这篇文章中,我们将从以下几个方面进行讨论: 背景介绍 核心概念与联系 核心算法原理和具体操作步骤以及数学模型公式详细讲解 具体代码实例和详细解释说明 未来发展趋势与挑战 附录常见问题与解答...

AI天才研究院 1839

干货 | 携程酒店推荐模型优化

作者简介Yorkey,携程高级算法专家,主要从事大规模分布式推荐系统设计和算法研发工作。一、背景当用户在线上浏览酒店时,作为旅行平台,如何挑选更合适的酒店推荐给用户,降低其选择的费力度,...

携程技术 2262

机器学习模型在携程海外酒店推荐场景中的应用

导读 互联网企业的核心需求是“增长”,移动互联时代下的在线旅游业也不例外。随着大数据、云计算和人工智能等技术的不断进步,通过算法和模型来实现增长已成为核心。 近年来推荐系统迅速崛起,主要解决在信息过载的情况下,帮助用户高效获取感兴趣的信息,同时帮助企业最大限度的吸引用户、留存用户、增加用户黏性、提高用户转化率。因此个性化的推荐服务对于在线旅游业也变得非常重要,通过推荐能够将用户从众多的旅行选择中解放出来,指导用户快速找到感兴趣的项目,大大简化用户的旅行计划和购买。 在线旅游服务...

hellozhxy的博客 945

基于SpringBoot + Vue的大学生平时成绩量化管理系统(角色:学生、教师、管理员)

💛博主介绍:作为资深全栈程序员🎉,我专注于为大学生提供毕业设计支持。凭借丰富的开发经验和深入的技术解析,我在此分享实用的编程资源、源代码,并提供定制化技术咨询💡。致力于协助学生在毕业设计中取得成功我的目标是让技术学习变得更高效、更有趣。欢迎关注👋,一起在计算机科学的海洋中乘风破浪⛵️,共创辉煌🏆。👇🏻精选专栏,推荐订阅👇🏻计算机毕业设计最强指南✅计算机最全毕设项目推荐✅✨文末附上源码及联系方式✨。

我们不是普通的猪,我们是一群热爱编程、追求创新的“猪仔”。在这里,我们用键盘敲出梦想,用代码编织未来。 3133

Lr

二、 逻辑回归        言归正传,因为广告大部分是按照CPC计费的,而我们手里的流量是固定的,因此对每条广告请求我们就需要保证这条广告的展示收益更大。而广告收益是可以根据点击率、广告计费价格、广告质量度均衡决定的,所以我们就需要评估广告的质量度和点击率,本文就主要研究广告点击率预估中广泛使用的逻辑回归模型。在实际广告点击率预估的应用中,样本数目和特征(逻辑回归粗暴离散化后)的数目均可以达到

周红伟讲AI 1102
上一篇: 干货 | 数据治理落地难?携程度假数据治理需求设计实践
下一篇: UED专栏 | 携程机票订后服务“航班助手”的三大设计秘籍
携程技术
博客等级 码龄10年 3716粉丝 324原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值