个性化推荐的家庭

房地产个性化服务在家庭购买经验的不同阶段提供个性化房地产内容。提供无摩擦的家庭购买经验,我们设计了个性化推荐的家庭服务.

当用户通过单击找到一个有趣的家庭时,推荐的主机使他们能够通过了解用户来探索相关的新主页列表’最后搜索,历史和兴趣。这将帮助用户探索更多相关的新列表,而无需返回搜索页面。

向用户推荐新房是一个具有挑战性的问题。访问Realtor.com的许多用户是new users或没有注册帐户的新家庭买家,他们没有以前的搜索历史记录。这种情况导致了 冷启动问题对于许多智能系统,我们将在后面的部分中讨论更多。为避免此问题,我们使用类似的家庭模块应用混合方法并倒置逻辑,以提供有用的信息,并改善个性化的购房体验。

在这篇文章中,我们将讨论我们在Realtor.com上提供推荐的家庭服务的解决方案。我们使用机器学习技术,尤其是协同过滤,了解有关用户行为的更多信息。我们的目标是在使用Realtor.com找到一个家庭购买者的个性化内容。

在下一节中,我们简要介绍了行业推荐发动机的最佳实践。

推荐系统:简要审查

推荐系统预测用户更喜欢对他人一个项目的可能性。本建议书基于用户在线项目或其他信号的互动,例如趋势。推荐系统在增加收入和利润等业务指标时发挥着非常重要和关键的作用。举个例子,Amazon据报道A.29%在用户购买经验的每个部分中使用推荐系统增加销售增加。

通常,可以定义两种主要的推荐系统;一个是内容为基础 建议和另一个是协同过滤推荐。

在基于内容的推荐系统中,如下图所示,项目特征提取。基于用户的历史明确的反馈,如喜欢或评级,或者implicit feedback,如停留时间,它推荐类似的物品。您可以了解有关与基于内容的推荐系统相关的类似房屋服务  in this post.

这种方法具有优缺点。在基于内容的推荐系统中,我们无需提供有关其他用户的信息。它看起来看待物品和用户之前的历史的相似之处。对于大量用户来说,它在生产中缩放得分。缺点是这种方法不会扩展用户兴趣,因为它仅考虑项目相似性,而不是用户相似性。

要解决这个问题,协同过滤推出推荐系统。在这种方法中,用户和项目相似度被认为是推荐。下图显示了协同过滤方法的一般思想。

在这种方法中,假设用户A和B都喜欢一个家。由于我们知道这些用户类似并且具有相同的品味,那么我们可以向用户推荐一个家,如果它是先前的用户喜欢的。

矩阵分解是在基于协作滤波的推荐系统中使用的主要技术之一。顾名思义,它以两个或更多个矩阵分解用户项以这样的方式分解,使得分解的方式的乘法是很接近到原始的(考虑损失函数)。下图显示了概念。

如图所示,它首先从用户 - HOMES反馈矩阵开始。评分可能是explicit(喜欢,保存,评级),implicit(停留时间,花时间探索新的家庭列表)或组合。我们考虑最大值是1和min为0.通过使用矩阵分解,我们生成两个矩阵;一个是用户 - 而另一个是家庭特色。矩阵被称为embedding。该技术将用户和主页投影到公共空间(特征空间)。通过将这些矩阵乘以,我们可以预测用户对未知新列表的感兴趣的可能性。

这种方法具有优缺点。其中一个主要优点是其嵌入和提取与用户和家庭相关的功能的能力。在基于内容的系统中,需要域专家来定义相似之处。作为一种缺点,协作过滤遭受所谓的冷启动问题.

正如您所看到的,用户首选的可能性是点产品用户和家庭嵌入。这冷启动问题发生 如果在训练期间没有看到物品,因为系统可以’t造成嵌入物,可以’t使用此项目查询模型。为了避免冷启动问题,我们使用了混合方法,它使用基于内容和协作滤波。在下一节中,我们将审查我们的模型和方法。

个性化推荐的家庭: A Hybrid Approach

混合的协作过滤提供比我们的数据集的经验更强大的解决方案,而不是纯协同过滤。对于我们的个性化家庭建议,我们使用了LightFM库,基于混合方法。

lightfm是一个python库混合矩阵分解以嵌入式格式呈现用户和项目。基于我们耗尽我们的数据的实验,它显示出更好的性能与其他矩阵分解包。我们还可以使用此软件包使用用户和家庭功能。

为了进一步解决冷启动问题,我们添加了额外的提升逻辑,以提供更好的推荐。我们推荐的家庭模型每天都在批量中产生建议,即至少访问过的用户K截然不错的家园在最后M days (由于知识产权考虑,我们无法透露配置参数)。对于在提到的时间段内具有少于K个不同的家庭视图的其他用户,我们使用用户使用类似的HOMES服务的结果。下图显示了我们的升级逻辑。

在下一节中,我们将简要审查推荐家庭的评估程序。

推荐的房屋评价

构建机器学习模型的基本思想是通过迭代改进它,直到实现所需的准确性。模型评估指标将有助于我们了解模型的性能。作为一种良好的做法,必须在两个阶段,离线和在线跟踪模型的性能。 

离线指标用作指示灯,以确定模型是否在向生产滚动之前在问题声明中服务。对于个性化推荐的房屋,我们已经测量了精确度并回想一下来评估模型的性能。为了测量离线指标,我们利用了历史用户行为。 我们回到时间并通过考虑用户行为来为用户生成建议,直到一定时间。在该时间之后的用户行为与建议进行比较,以确定模型对用户家庭搜索旅程的影响。

对于个性化推荐的家庭,如果用户正在探索和显示我们为其服务的建议的兴趣,可以估计成功措施,从A / B测试中可以通过点击率和引线速率来衡量。这些指标是在线指标,并跟踪,直到A / B测试成熟并达到所需的置信区间。结果A/B test,我们生成了一个3.48%提升房地产咨询和一个4.34% 增加点击率。

推荐的家庭管道架构 

我们设计个性化推荐的家庭服务的方法是利用A面向服务的架构(SOA)。我们使用AWS服务在不同层中建立我们的管道。下图显示了我们的高级架构。

我们的个性化推荐的家庭管道由五层组成,如下所述:

  • Data Tier:第一层是数据层,它包括关于家庭,访客及其互动的所有相关数据。数据以批处理方式进入我们的系统以产生个性化内容。这款层是使用的AWS S3 在我们的数据湖中.
  • ETL Tier:ETL代表Extract, Transform,LOAD是三个数据函数用于将数据拉出一个数据源,对其进行转换,并将其放入另一个数据源中。在此阶段,我们正在使用基于地图 - 基于地图的技术(AWS EMR / SPARK)和SQL技术(AWS Athena.)基于数据和用例的性质。 
  • 机器学习(ML)层:一旦我们的数据转换为适当的格式,我们就会应用我们的个性化推荐模型。我们正在使用Spark and Python开源库(LightFM),如前所述。 
  • API Tier:一旦个性化推荐内容准备就绪,它将作为推送或拉动转移到API层,以提供演示层或其他服务。我们用了AWS DynamoDB.对于我们的API和AWS SQS 对于通知服务和广告系列服务。 
  • 演示文稿:最后,在移动或台式前端呈现类似的房屋。我们类似的家庭模型是根据与模块的新用户交互定期更新。我们用了Jenkins and AWS数据管道为策划我们的管道。

结论和备注

在本博客文章中,我们简要介绍了我们个性化推荐的房屋模块。我们使用此服务来培养许多其他服务,如前端,通知和我们的营销活动。 我们继续改善当前推荐的家庭模型,并在Realtor.com上进行更多个性化数据产品。

最后,您要感谢将该模块发布到生产中的推荐队:Aishwarya Bose,Davood Alishahian,Jayant Kashyap,Krishnakumar,Latife Genc Kaya,Sohrab Seyed Fathi,Srinivasulu和我们的前队员,Akila Vaidyanathan,Akila Vaidyanathan,Arjun Pudar, Jayakrishnan Vijayaraghavan,Lakshmi Doddi和Laxman Chinnakotla。