1 背景
贝壳找房拥有较为完备的统一标准户型图采集流程,长期以来积累了大量统一格式的贝壳标准户型图。这些标准户型图还有个共同的特点:保存了完整的矢量信息,即矢量图。
矢量图在数学上定义为一系列由线连接的点。具有只能靠软件生成,文件占用空间小,放大不失真等特点。在户型矢量图中,点和线的信息描述了户型的每一个细节,因此,户型矢量图可以帮助用户认识户型。
贝壳的标准户型图附有详细的矢量信息
FrameX 是一个以户型数据为基础的可以智能量化户型质量、自动进行户型特色解读、构建户型画像并在此之上进行应用输出的 AI 系统,由贝壳数据智能中心策略算法部研发。
它的数据处理范围不仅涵盖了所有贝壳的标准户型图,也可以将任意其他样式的户型图转为贝壳标准户型图。在贝壳,大多数户型相关的应用里都有它的身影。截止 2020 年上半年,FrameX 已经为贝壳找房 18 个不同的业务场景提供户型 AI 能力支持。慢慢从基础数据支持走向前台,为用户找房提供更有温度的帮助。
2 FrameX 的体系架构
2.1 提供能力
FrameX 提供两大类应用能力,一是对单个户型的信息挖掘,二是户型之间的关系量化表达。这两种能力都依赖于贝壳标准矢量户型图。
单个户型的信息挖掘
单个户型的信息挖掘,针对的是每一个具体的户型。户型之于用户,影响深远。户型的选择既要考虑一般的居住体验,也要兼顾自身的家庭成员构成,选择适合自家的房子。
首先,FrameX 提供了最直观的自动打标签功能。我们开发了 26 个常用的用于抽象描述户型特点的标签,比如”户型方正“、”南北通透“等,每一个标签都有详细的严格定义,并且任何一个户型有没有某一个标签,都是可以量化的。这样可以让用户最短时间内了解一个户型的特点。
用最少的字,描述一个户型最大的特点
26 个二值化的标签数据仍然丢弃了很多户型信息,但是如果我们将大量细节的户型信息提供给用户,用户的理解成本会大大增加。因此,为了方便用户可以直接量化户型的质量,我们通过大数据分析,将户型的细节特征量化,并进行加权,得到最终的 ”空间尺度“、”通透采光“、”房屋功能“三个维度的质量得分以及综合这三个维度的综合户型质量得分。
户型打分分布
为了方便用户理解户型的打分以及标签特点,我们又将所有影响户型质量的特征转化成文字、图片和视频,以更直观和贴近用户的方式展示户型的特点,进行专业化的解读。
基于单个户型的信息,我们可以对每个城区、商圈、小区的户型计算其统计特征,描述小区、商圈以及城区的户型特色,可以帮助用户从更大粒度的视角找房。
某小区户型打分分布
某小区户型面积分布
某小区户型类别分布
户型之间的关系量化表达
户型之间的关系量化表达,针对的是一个户型的集合,发掘其中每个户型之间的关联关系,这种关系最基本的就是呼吸管间的”距离“——相似程度。
我们接触的几乎所有对户型感兴趣的同事和朋友都希望知道某个城市到底有多少种户型,但是贝壳所采集的户型数据都是依赖于房屋,也无法在采集阶段完成归类任务。
FrameX 可以从贝壳标准户型矢量抽取用于计算关系的特征,这些特征可以用于计算任意两个户型之间的”距离“,进而对小区内、城区内、城市内的户型进行聚类。现在如果有人问北京市在贝壳找房有多少种户型,FrameX 可以明确回答: 106453
将户型聚类特征压缩到三维可以发现明显的聚簇
聚类是 FrameX 对静态的离线户型数据的处理,但是如果用户想实时获取与某个房子户型最接近的房源,聚类数据很难提供,而是需要一种可以快速精准检索的能力。我们综合拓扑学、图形学和几何学,将每个户型的拓扑、图形和几何特征压缩到向量数据中,通过向量实时检索,提供实时的相似户型查询能力。
查询户型得到的相对布局相似的 TOP5 户型
两大类应用能力之外,FrameX 提供了从非贝壳标准到贝壳标准户型图的智能转化功能,使得 FrameX 的应用能力更具普适性。我们为 FrameX 开发了一款工具”拍贝“来做这件事。”拍贝“使得用户可以用手机拍一张户型图就可以找到与这个户型相同或相似的房源,目前”拍贝“已经开始在北京、成都和青岛三个城市试点应用。
"
拍贝"应用场景:贝壳找房二手首页
"拍贝"可以识别图片,并重建出户型图的矢量数据,从而按户型找房
2.2 技术架构
FrameX 系统架构图
FrameX 采用了经典的分层结构,整个系统分为数据层、特征层和应用层。数据层用于数据收集和存储,应用层用于输出 AI 能力。特别的,由于户型矢量的复杂性,也基于户型特征的复杂性,我们设计了特征层,作为数据层向应用层输送特征的过渡,得到的特征数据也方便进行全局数据分析。
数据层接入了贝壳的标准矢量户型图数据库和”拍贝“。”拍贝“既可以实时获取非贝壳标准户型图转化来的贝壳标准矢量,又可以离线批量转化,数据落地到数据库中。
特征层分为解读特征和关系特征,解读特征注重”点“,是非对齐的 key-value 离散特征,主要用于单个户型的信息挖掘;关系特征注重整体,是各种对齐的连续特征,主要用于户型之间的关系量化表达。
应用层主要包括户型标签、户型打分、图文户型解读、户型解读视频等在内的解读应用和以相似户型查询和户型聚类为主的户型关系应用。
3 FrameX 的算法应用
FrameX 中既有传统经典算法的应用,也有世界前沿的深度学习模型应用。在算法应用上,我们奉行实用主义,不一味追求算法的复杂性和模型热度,而是用事实说话,对用户有用的才是好算法。
解读算法
户型解读特征提取时,更多的需要考虑人在其中的真实感受,需要将抽象概念具体化,需要在多种约束条件下在解空间中找到最优解。这里边的约束条件极为复杂,因此我们都会对传统算法进行修改,以适应户型解读场景。
比如在南北通透判定时,我们采用的是 DFS 算法,主要参考房间之间的位置关系,由于需要考虑空气流通,对门窗的约束条件就会较多;在判定户型方正时,我们采用贪心算法,通过非”方正“的部分大小来判定是否户型是否方正。
相似算法
关系特征的提取主要难点在于如何用最少的向量信息来表达最多的特征,因此重点在特征抽取方法上,我们开发出了绝对布局、相对布局、精简外轮廓、精准外轮廓和面积分布 5 种特征,用于不同的场景。如果查询一个两居或三居室的相似户型房源,绝对布局/相对布局查询效果会比较好;查询一个一居室,精简外轮廓/精准外轮廓结果会令人满意;查询一个 4 居室的房子,面积特征会起到很大作用。
在千万级的数据上进行聚类是一个有很大挑战的任务,我们聚类使用了分布式的集群,但是单单运算能力的加强还不足够,我们又实现了自底向上的层次聚类,在损失最小精度的情况下完成了对千万级户型数据的聚类。
“拍贝”算法
“拍贝”的任务是将一张户型图片(不限于贝壳标准户型图)转成贝壳标准户型图,同时得到标准矢量户型图。我们调研了大量文献,最终采用了深度学习+整数优化的模型。整个流程可以表示为:图片 -> 点、线、面概率热力图 -> 物理条件约束的 Integer Programming -> 点线面数据 -> 贝壳标准矢量图 -> (渲染)贝壳标准户型图,同时也集成了 OCR 能力提高识别准确率。目前对于非贝壳标准的户型图片准确识别率已经达到了 70%。
“拍贝”算法架构图
4 FrameX 的愿景
作为房产交易平台的户型 AI 赋能系统,FrameX 已经做到了业内领先的水平。但是最为一个引领户型人工智能的系统,它还任重而道远。
首先,我们的户型解读还在依赖于人工设计的条件约束,缺少进化空间,我们希望能将更多的人工智能技术应用到其中,减少人的参与,甚至发掘更多的人无法总结的解读点。
而在户型关系我们目前主要集中于相似场景的能力,在有限数量户型的对比、户型间的改造关系还没有实现量化,这也是我们会继续努力的方向。
此外,用户十分关心的户型改造,DIY 户型等方向我们也会持续关注和探索。
总而言之,我们会坚持做难而正确的事,为用户在贝壳找房贡献自己的力量。
本文转载自公众号贝壳产品技术(ID:beikeTC)。
原文链接:
评论