您好,欢迎光临,本网站提供SEO关键词快速排名、网站优化服务。

互联网服务

网页制作长尾词核心词提升上词率平台

【网络优化推进fb将军-排行榜4】你想知道Facebook是怎么推荐的吗?FB开源深度学习推荐模型

作者:jcmp      发布时间:2021-05-02      浏览量:0
Facebook博客选择,作者:Maxi

Facebook博客选择,作者:MaximNaumov等,机器心理编译,参加:道路。

随着深度学习的发展,基于神经网络的个性化和推荐模式成为在生产环境中构建推荐系统的重要工具。但是,这些模型与其他深度学习模型有显着的不同,必须能够处理类别数据,该数据类型用于描述高级属性。对于神经网络来说,很难有效地处理这种稀疏的数据,没有公开的代表性模型和数据集也推迟了社区在这方面的研究进展。

为了促进这个子领域的进步,Facebook开源于当前最优秀的深度学习推荐模式DLRM,该模式通过PyTorch和Caffe2平台实现。DLRM通过结合,与此同时过滤,与其他模型相比,可以有效地处理生产水平的数据,提供当前最佳结果。

Facebook在官方博客中,开源DLRM模型和发表相关论文,旨在帮助社区寻找新的方法,解决这种模型面临的独特挑战。Facebook希望鼓励进一步的算法实验、建模、系统协同设计和标准测试。这有助于新模式和更高效的系统的诞生,为人们提供更相关的数字服务。

1、解决了DLRM模型

DLRM模型使用嵌入处理类别的特征,使用以下多层感知器(MLP)处理连续特征。然后,显着计算不同特征的二相互作用。最后,使用顶部多层感应器处理结果,输入sigmoid函数,获得点击的概率。

2、标准与系统合作设计

DLRM的开源可以作为标准使用,

这可以在不同的硬件平台上进行。例如,BigBasinAI平台。

DLRM标准提供两个版本的代码,分别使用PyTorch和Caffe2。另外,DLRM还有使用GlowC分子实现的变体。为了适应不同的框架,每个版本的代码都有所不同,但整体结构类似。

这些模型允许比较Caffe2框架和PyTorch框架和Glow。最重要的是,将来我们可以从各个框架中选择最好的特征,组合成框架。

DLRM标准支持随机输入和合成输入的生成。标准模型也支持模型定制生成类别特征对应的索引。这是因为有很多理由。例如,如果某个应用程序使用了特定的数据集,由于隐私无法共享数据的话,可能可以通过分布来表示类别的特征。另外,如果想学习记忆行为等系统组件,可能需要捕捉合成轨迹内原始轨迹的基本位置。

另外,Facebook根据使用场景的不同,使用多种个性化推荐模型。例如,为了实现高性能,许多服务在单机上批量处理输入并分配多个模型,从而在不同的平台上实现并行推断。另外,Facebook数据中心的大量服务器具有结构异构性,从不同的SIMD带宽到不同的SIMD带宽到不同的SIMD带宽。结构异构性为软硬件协同设计和优化提供了机会。(深入分析Facebook荐系统结构的深入分析参考论文《The先生ArchtturalimplicationstoffacebooksDNNN-based面向Recomendation》。)的双曲馀弦值。的双曲馀弦值。的双曲馀弦值。

3、并行计算

如第一张图所示,DLRM标准模型由主要执行计算的多层感知器和限于内存容量的嵌入构成。因此,它自然需要依靠数据并行计算来提高多层感知器的表现,并行模型来解决问题。

DLRM标杆模型提供并行化解决方案。通过butterfly这个shuffle的机制,将每个设备中的minnibatch的嵌入矩阵分割成多个部分,分配给所有设备。如下图所示,每个颜色代表minibatch的一个要素,每个数字代表一个设备及其分配的嵌入矩阵。Facebook研究团队计划优化该系统,并在未来的博客中公开详细的性能细节。

4、建模和算法实验

DLRM标准模型采用Python语言编写,支持灵活部署。模型的结构、数据集和其他参数由命令行定义。DLRM可用于训练和推断。在训练过程中,DLRM增加了反向传播功能,更新了参数。

代码完整,可以使用公数据集,包括Kaggle展示广告挑战比赛数据集Kagle。该数据集包包括13种连续特征和26种,定义了MLP的输入层的大小和嵌入的数量,其他参数可以使用命令进行定义。例如,根据以下命令,DLRM模型可以产生训练结果。结果如下图所示,

左图显示了模型在训练和测试集中的二值交叉膦损失。右图显示了模型在训练集和测试集中的精度。

DLRM模型可以在真实的数据集中运行,有助于测量模型的精度,特别是使用不同的数值技术和模型进行比较实验。Facebook团队计划深入分析量化和算法实验对DLRM模型的影响。

5、DLRM模型开源码

用户如何使用模型?Facebook官方在GitHub上开源了相关代码。目前,DLRM模型主要实现了两个版本:

通过使用DLRMData相关模块,可以快速生成或加载数据,也可以使用相应的脚本进行测试。另外,如果您想尝试标准模型,您还可以查看./bench目录下的DLRM标准。

6、训练和测试

7、下图显示了如何训练小模型。

8、用户还可以使用Debug模型训练:

为了测试正常运行,可以使用以下代码:

9、模型的保存和加载

训练时,模型可以使用-save-model=保存。测试时精度提高的话,模型会被保存。检查测试精度的命令是:-test-freqtervals。

可使用-load-model=加载前保存的模型。加载的模型可以继续用于训练,并通过checkpoint保存。如果只要求模型测试,就需要特别命令-inference-only。

原博客地址:。本地。https://///p>。facebook.facebook.facebook.facebook.facebook.facom/recon-model/