Airbnb 发布开源的机器学习软件包 Aerosolve

  • 孙镜涛

2015 年 6 月 15 日

话题:语言 & 开发架构机器学习

Airbnb是一个旅行房屋租赁网站,用户可以通过该网站发布、搜索度假房屋租赁信息并完成在线预定程序,它成立于 2008 年 8 月,总部设在美国加州旧金山市。Airbnb 的用户遍布 190 个国家的近 33000 个城市,发布的房屋租赁信息达到 50 多万条,被时代周刊称为“住房中的 EBay”。在 6 月 4 日举行的 OpenAir 开发者大会上,Airbnb 发布了一个为人而设计的机器学习软件包——Aerosolve

与其他的机器学习库相比,Aerosolve 具有以下特点:

  • 特征呈现基于 thrift,支持 Pairwise Ranking Loss 和单上下文的多条目呈现。在 Aerosolve 中,特征会按照逻辑分组,每一个组称为一个特征簇,我们可以一次性地对整个特征组进行转换,或者将两个不同的特征簇组合到一起创建新的特征簇。每一个特征向量(FeatureVector)有三种类型:stringFeatures、floatFeatures 和 denseFeatures。
  • 支持一种特征转换语言,让用户能够对特征进行更多的控制。Aerosolve 将特征转换包含在一个独立的转换模块中,与模型解耦,用户既能够将转换操作拆散使用,又可以提前转换相关数据。例如,在一个应用程序中用户可以在运行时上下文确定之前对一个文集中的条目数据进行转换和存储,然后在运行时做上下文的转换,并将转换后的上下文与提前转换的条目逐一进行联合获取最终的特征向量。常用的转换操作包括:列表转换交叉转换多尺度网格转换
  • 人类友好的调试模型。模型目录中包含很多模型,但是其中最主要的两个是:线性模型和样条模型,其他的都是试验性的模型或者是为可推理模型创建转换的子模型。
  • 独立的轻量级Java 推理代码
  • 使用 Scala 代码进行训练
  • 简单的图片内容分析代码,适合于图片的排序或者排名。

需要注意的是,Aerosolve 适合于稀疏的、可推理的特征,例如搜索(搜索关键词、过滤词)或价格(房屋的数量、位置和价格)中通常会出现的特征;不适合非常密集的人类无法推理的特征,例如原始的像素集或者音频样本。

最后,Aerosolve 所需的制品托管在 bintray 上,如果你使用 Maven、SBT 或者 Gradle,那么需要将仓库指向bintray。如果想了解更多信息,可以点击这里


感谢郭蕾对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群InfoQ 好读者)。

语言 & 开发架构机器学习