DoorDash使用贝叶斯算法为客人推荐菜谱

机器学习正在让人们在餐馆点菜变得容易和轻松。 可为每个用户创建个性化的体验,通过根据人们的点菜历史订单为餐馆提供推荐建议。

通过建模菜肴之间的相似性,这样如果你喜欢某些美食,就可以推荐其他什么美食。

要做到这一点,主要是基于订单使用了贝叶斯网络结构学习。贝叶斯网络是一种概率图模型,它表示两个变量之间及其在图结构中的依赖性之间的关系。 比如,如果有“西班牙人”和“Tapas”变量,就能表示它们之间的概率分布,也就是说如果你喜欢西班牙食​​物,你很可能喜欢Tapas。

贝叶斯网络结构学习算法找到数据中所有变量之间的联合概率分布的紧凑表示。简单来说,根据你过去不同的点菜概率,能推荐找到某种类型的美食。 而使用这些干涉数据将能让我们获得真正的因果关系,从而我们可以看到菜肴之间的关系,但我们不能确保箭头就代表因果关系。

为了学习网络结构,我们使用一个爬坡的做法(hill climbing approach) ,得到下图, 您可以尝试使用自己的数据这种技术bnlearn R包。 (虽然贝叶斯网络可以表示反向关系,但我们只在下面的图表中显示正向关系。)


快速看看这张图,其显示一些有趣的关系。如果你喜欢意大利,你可能会喜欢比萨或面食。但在这里也有一些令人惊讶的结果:例如,如果你喜欢快餐,结果你可能也喜欢中国食物。

在未来,我们希望使用此类型的模型来向特定用户推荐某些促销或新餐馆。 例如,如果我们想要一个特定的泰国餐厅,我们可以看到,这可能是喜欢亚洲食品相关的任何人。


DoorDash Blog — How to get from Salad to Sushi in