使用匹配分数演变个性化建议

拍摄者罗斯乔克斯uns

对于大多数买家来说,寻找一个梦想家是一个艰巨的任务。在Realtor.com,我们使用称为“匹配分数”的系统帮助用户在旅程中,从用户的角度来看,评估任何家庭的相对重要性。用户的匹配得分是从用户搜索历史推断出来的各种功能,例如平均房屋价格,床,浴室和批量平方英尺。由于用户与Realtor.com上的Homes进行交互,因此分数是实时计算的,这将估计用户对特定家庭的偏好。

匹配分数是一款通用个性化模型,可用于个性化网站的许多方面。例如,类似的家庭是Realtor.com上突出的机器学习模块,使用户能够找到与他们正在寻找的房屋类似的家庭。类似的家庭机器学习模型推荐类似房屋现在将为每个用户使用匹配分数个性化。匹配分数还将推动通知系统对每个用户的潜在候选家庭排名。

您可能希望收到市场上个性化最佳家园的通知!

机器学习项目的生命周期始终迭代以收集数据,火车和服务模型。在这个博客文章中,我们描述了最终的设计和实施匹配分数,沿途面临的挑战。

特征工程是机器学习生命周期的核心组件。处理数据的Tberytes或可能不会产生最佳结果,但该数据的战略特征工程将推动机器学习模型的成功。对于匹配分数,我们推断了来自ClickStream数据的Tbreabytes的许多隐式功能以了解用户行为。我们为每个消费者设计了四个特征组:

  • 用户在过去的90日历日如何表现如何?
  • 用户在过去90天的互动中是如何表现的?
  • 用户在访问的第一天是如何表现的?
  • 邮政编码,城市等消费者的静态特征很少

用户行为,如优选的价格范围,床,浴室,建筑风格,平方英尺/批量平方英尺,故事,上市类型,纬度/经度,城市和邮政编码在上面列出的功能组中捕获。除了目前出售的数百万家庭之外,还有很多新的房屋每天都在市场上。这种方法使我们能够根据消费者的利益有效推荐各种家庭。

经验法则:永远不要多次处理数据!

缩放这些有时的数据驱动的工作是机器学习生命周期最具挑战性和有趣的部分。我们利用了基于Spark的无务体系结构AWS.胶水要处理大量数据,以确保我们再也不会重新计算相同的任务。我们在捕获时跟踪用户的单击事件并通过事件日期和目标日期分区。捕获并分区事件数据后,不需要再次从数据湖中获取。分析和了解处理特征的重要性比计算它们更重要。胶水爬行派上用力生成雅典娜S3顶部的表并运行查询(SQL)进行统计分析。

模型生成是努力向用户指定与用户的相关性分数的另一个重要步骤。对于我们的用例,仅利用一个回归模型来获得用户与家庭的匹配是不够的,因为我们还必须捕捉到候选人池中其他房屋上的特定家庭的相对重要性。这些偏好使我们成为我们模型的学习 - 排名回归设置。

对于每个用户,可以从他们的交互和每个交互的停留时间推断出他们偏好的故事。这些功能有助于学习为用户排名家庭。我们正在使用基于渐变的基于树的LightGBM模型来实现这一目标。由于我们也纳入排名以获得房屋,我们不得不提出排名损失目标职能。我们希望惩罚用户至少互动的家园,从而降低等级,并奖励用户与最多互动的家园。这可以通过将每个家庭与另一个家庭进行比较来实现,并检查它是否应该更高或更低,或者,每个家庭可以为用户与用户交互的所有房屋分配一个等级,然后学会移动家庭达到更高的等级或降级。后一种方法确保了用户互动的所有房屋的实际排名,所以我们选择了lambda等级为我们的模型排名损失目标函数。

我们为我们的培训进行了随机唯一用户选择了一个月的数据,以及与所有机器学习培训一起,我们将我们的数据集分开,使得80%用于由随机访问者组成的培训数据集,而其余的验证数据被用作验证数据。我们在接下来的两周内准备了测试数据。模型本身占据了具有用户行为属性,家庭属性和使用消费者所需的城市和邮政编码的可能性计算的用户行为属性,家庭属性和一些属性的传染媒介。我们基于我们如何捕获与家庭的用户参与,即互动是基于其引导提交,保存或共享或点击的基础。 

指标是确定模型是否对先前的迭代或基线模型执行良好的关键方法。对于我们的模型,我们选择了传统的排名算法指标,即归一化的折扣累积增益(NDCG),平均平均精度(MAP),以及前3个,5和7个房屋召回。以简单的方式,NDCG奖励更多相关项目到在数据集上标准化的较高级别。这意味着NDCG得分越高,模型越好。平均平均精度给出了模型如何召回顶-K家庭中所有相关房屋的成功。较高的值表示成功率更高。

匹配分数在排名现有模块时发现其用例。我们对另一台机器学习模型进行了离线评估,并观察到上述指标的〜1.5x-2x。

模型推理部署是一种重要的元素,可以使用全容量的机器学习建模。 AWS.杰匠是托管ML模型的一个很好的平台,因为它使您可以灵活地带来自己的模型以及内置模型。为了使用SAGEMAKER,我们需要将源代码集装在丢弃器图像中并将其推向弹性容器注册表。接下来,需要使用模型和端点配置属性来配置Sagemaker端点,以引用ECR中的Docker图像。由于它是一种基于机器学习的API,响应时间包括运行时功能计算和模型预测。缩放推理API以满足SLA,是部署过程中最具挑战性的部署过程,具有在API上的计算工作。

索手匠对传统API有哪些优势?

  • 可以基于观众类型插入和切换多种型号
  • 单个端点可用于托管多个模型
  • 多模型端点可用于服务器端A / B测试
  • 可以随时间监测模型的性能

对于使用机器学习解决的任何问题,在高级时,有两个阶段:

  • 候选生成
  • 候选人排名

候选生成是第一阶段,其中在适用于用户(消费者)的更广泛级别中选择候选者(房屋)。候选排名是ML模型通过使用家庭和用户的特征来计算每个候选者的分数来排名候选的第二阶段。

该模型是通用个性化预测API,因为在候选人的候选者和用户的非常详细的级别计算的功能,使得给定任何一组候选者,该模型将能够为每个用户排名相关的家庭。我们使用各种候选生成技术基于用例来生成候选者,并在它们上应用匹配得分来排名候选者。简而言之,匹配分数可以解释如下所示:

关键挑战涉及扩展系统以支持大量的大数据,并确保云上的模型部署成本低。 ETL管道利用粘合无助的架构来处理此问题。

个性化是一个关键因素,适应行业中大多数产品,以提高用户参与和保留。对于搜索房屋的用户,具有强大的一组功能,我们建立了一个通用的个性化模型,可以跨Realtor.com应用。通过启动A / B测试来估算使用匹配分数来估计参与的增加和铅转换率的匹配分数来积极致力于使用匹配分数来进行个性化推送和电子邮件通知。

我们对这一项目的未来非常兴奋,就如何利用它的众多用例和它为其建立的基础设施建立的标准来说,这是在Realtor.com上向前移动的机器学习项目的基础架构。

特别感谢所有为该项目成功的人提供:Davood Alishahian,Ivan Hom,Krishnakumar,Latife Genc Kaya,Rajesh Rao,Reza Rahimi,Sohrab Seyed Fathi,Srinivasulu G,以及我们的前同事:Aishwarya Bose, Angela Tao,Arjun Poddar和Lakshmi Doddi。