英特尔® 至强® 处理器 E5 v40 有助于提高百度深度神经网络点击率

背景

每天,人们都会为了处理业务、观看视频或购物搜索网站,查找信息。根据 Hubspot 8 的报告, “…75% 的用户只会浏览搜索结果的第一页。”如果用户寻找的产品广告碰巧出现在搜索列表的顶部,人们通常会访问这些广告。出现在搜索网页前几页的广告必须在用户中享有较高的知名度,通常需要若干年的积累。如果广告包含了广为人知的信息或产品,或包含热门关键字,也能在搜索列表的前几页显示。

销售产品或服务的新网站如何才能在搜索列表的前几页显示?关键是使用正确的关键字,并与用户搜索产品或服务时使用的关键字相关。

百度1 是中国最常用的搜索引擎。为了使广告在搜索列表中的排名靠前,广告公司需要向百度支付一定的费用。如果有人访问/点击了广告,公司需要向百度付费。可以按照点击次数付费 (PPC),也可以根据投放时间的长短支付一定的金额(付款总额和用户点击次数无关)。

为了确定正确的搜索关键字,百度在广告平台及其他应用的核心服务中采用了机器学习2。引擎的核心是点击率 (CTR)3 模块。

下文将介绍百度 CTR 及英特尔® 至强® 处理器 E5 v4 产品家族如何提升百度 CTR 模块的性能。

什么是点击率?

根据维基百科的定义,CTR 是点击特定链接的用户数量占浏览页面、电子邮件或广告的用户总数的百分比。

Click-through rate

CTR 能帮助预测广告的相关性,尽可能多地增加用户的点击次数,这么做是因为百度根据点击次数进行收费。

为了实现上述目标,百度采用了深度神经网络 (DNN)。3 DNN 不仅能预测广告的相关性,还可以提升用户访问网站时的体验。通过提升语音和图像识别的准确性提升用户体验。

深度神经网络

维基百科对 DNN 4 的定义如下所示:深度神经网络 (DNN) 是一个人工神经网络 (ANN),在它的输入和输出层之间存在多个单元隐藏层。

神经网络 (NN) 通过小规模地模拟大脑皮层的神经结构来效仿人脑的运转。NN 包含 3 层:输入、隐藏和输出层。为了训练 NN,将模式(训练数据集)发送至输入层,基于 NN 的规则,输入层将根据输入模式修改连接的权重。DNN 是一个包含更多隐藏层的 NN。信息从一个隐藏层传输至下一个隐藏层的过程中会结合更复杂的信息。因此,相比 NN,DNN 能更准确地模拟输入模式。

Baidu-webops-2271-fig1

图 1:深度神经网络图。

图 1 显示了包含 4 个隐藏层的典型 DNN。一般而言,隐藏层数越多,训练数据集越大,预测结果会更准确。百度正使用非常庞大的数据集训练 DNN。例如,使用 100 多亿个示例来训练语音识别,用于训练图像识别引擎的图像高达 1000 亿张左右。


百度 CTR 和英特尔® 至强® 处理器 E5 v4 产品家族是一对绝佳组合

百度利用大型数据集训练它的 DNN 模块。有时,训练过程会持续数周的时间,可以通过增强计算能力来减少训练时间。百度的 DNN 大量使用了 DGEMM - 一款面向浮点数的矩阵乘法函数。5 DGEMM 是在百度 DNN 完全连接层计算两个示例的相似性的核心操作,有助于计算 CTR。

百度的 DNN 使用了英特尔® 数学核心函数库(英特尔® MKL)6 提供的 DGEMM 函数,以替换 DGEMM 代码。英特尔至强处理器 E5 v4 产品家族支持英特尔® 高级矢量扩展指令集 2(英特尔® AVX2),7 利用英特尔 AVX2 对英特尔 MKL 进行了高度优化,最终提升了百度 DNN 的性能。由于英特尔 MKL 能自动检测和利用新特性(如果适用),因此,无需修改代码便能充分利用下一代英特尔® 至强® 处理器的新特性,这是英特尔 MKL 的另一大优势。请务必将应用连接至最新版英特尔 MKL。

性能测试流程

为了证实英特尔 AVX2 和更强大的硬件能够提升百度 DNN 的性能,我们在两个平台上运行了测试。一个系统配备了英特尔®至强® 处理器 E5-2699 v3,另一个系统配备了英特尔® 至强® 处理器 E5-2699 v4。

测试配置

搭载英特尔至强处理器 E5-2699 v4 的系统

  • 系统:预生产
  • 处理器:英特尔至强处理器 E5-2699 v4 @2.2GHz
  • 高速缓存:55 MB
  • 内存:128 GB DDR4-2133MT/秒

搭载英特尔至强处理器 E5-2699 v3 的系统

  • 系统:预生产
  • 处理器:英特尔至强处理器 E5-2699 v3 @2.3GHz
  • 高速缓存:45 MB
  • 内存:128 GB DDR4-2133 MT/秒

操作系统:CentOS*

软件:

  • GNU* C 编译器套装 4.8
  • 英特尔 MKL 2016 更新 1

应用:百度机器学习深度神经网络 CTR

测试结果

英特尔至强处理器 E5-2699 v4 的计算能力有助于缩短百度训练 DDN CTR 模块的时间,并能提供更好的用户体验。

Figure 2

图 2:采用英特尔® 高级矢量扩展指令集(英特尔® AVX)和英特尔® 高级矢量扩展指令集 2(英特尔® AVX2)的应用对比。

图 2 显示采用英特尔® 高级矢量扩展指令集(英特尔® AVX)和英特尔 AVX2 的应用在英特尔至强处理器 E5-2699 v4 的系统上的测试结果。英特尔 AVX2 支持百度 CTR 搜索引擎的性能提升了 67%。

Figure 3

图 3:使用英特尔® 至强® 处理器 E5-2699 v3 和英特尔® 至强® 处理器 E5-2699 v4 的应用对比。

图 3 显示了搭载英特尔至强处理器 E5-2699 v3 的系统和搭载英特尔至强处理器 E5-2699 v4 的系统的测试结果。由于使用了英特尔 AVX2,以及英特尔至强处理器 E5-2699 v4 拥有更多的内核,性能提升了 23%。

注:在性能检测过程中涉及的软件及其性能只有在英特尔微处理器的架构下方能得到优化。诸如 SYSmark* 和 MobileMark* 等性能测试均采用特定的计算机系统、组件、软件、操作系统及功能进行测量。上述任何要素的变动都有可能导致测试结果的变化。请参考其他信息及性能测试(包括结合其他产品使用时的运行性能)以对目标产品进行全面评估。如欲了解更多信息,请访问:http://www.intel.com/performance

结论

优化 CTR 的核心模块有助于提升百度机器学习模块的速度。由于百度机器学习模块在广告平台及其他百度应用中广泛应用,优化该模块必将提升这些应用的性能。通过使用英特尔 MKL 提供的 DGEMM 函数以及运行搭载英特尔至强处理器 E5 v4 产品家族的系统,CTR 模块的性能得以显著提升。

参考资料

  1. 百度公司信息
  2. 机器学习
  3. 点击率
  4. 深度神经网络
  5. DGEMM
  6. 英特尔® 数序核心函数库
  7. 英特尔® AVX2
  8. http://blog.hubspot.com/insiders/inbound-marketing-stats
有关编译器优化的更完整信息,请参阅优化通知