1 需求概述2 目标概述3 设计与实现 - xilinx forums.pdfVIP

  • 2
  • 0
  • 约7.11千字
  • 约 7页
  • 2018-12-19 发布于上海
  • 举报

1 需求概述2 目标概述3 设计与实现 - xilinx forums.pdf

1 需求概述2 目标概述3 设计与实现 - xilinx forums.pdf

1 需求概述 广告是互联网行业的重要商业模式之一。在互联网广告行业中,准确地预测用户广告点 击行为具有重要意义。在影响用户广告点击行为预测的众多指标中,广告点击率(CTR, Click-Through-Rate )是一种十分重要指标。所以,准确并快速地预测广告点击率有利于提 升广告产生的收入,进一步增加互联网平台的吸引力,形成正向循环。 2 目标概述 由于硬件平台限定为百度云异构多核平台,本项目的目标就是实现基于百度云异构多核 平台的广告点击率预测系统,整体结构如图1 所示。 系统的硬件平台为百度云异构多核平台,计算核心由 Intel Xeon E5-2650 v4 CPU 和 Xilinx XCKU115 FPGA 组成,CPU 与FPGA 通过PCIE 总线使用DMA 方式进行数据传输。 系统的处理流程为: (1)对输入的待预测文件 (test.txt)进行预处理; (2 )根据数据计算的密集程度,通过调用Polaris API 使用FPGA 对计算密集型任务进 行加速计算,通过编写软件使用CPU 对其他任务进行计算; (3 )将FPGA 和CPU 的计算结果进行汇总,并得出最终的结果; (4 )将最终结果输出到预测结果文件 (predict.csv )。 图1 系统整体结构 3 设计与实现 系统设计流程如图2 所示。 - 1 - 图2 系统设计流程 (1)DeepFM 模型训练 系统所使用的广告点击率预测模型为DeepFM 模型,训练使用的深度学习框架为百度的 PaddlePaddle。 实现可参考百度PaddlePaddle 的GitHub 上提供的案例: /PaddlePaddle/models/tree/develop/legacy/deep_fm (2)预处理优化 预处理过程可分为统计信息和数据处理两部分。预处理每次处理的数量为一个数据片 ( ),数据片包含的数据条数根据实际情况决定。 统计信息指的是统计训练集的相关信息,包括整数型字段过滤和归一化信息,类别型字 段One-Hot 编号表; 数据处理指的是根据统计信息对每个字段进行处理得到相应的特征,整数型字段的过滤 和归一化,类别型字段的过滤和One-Hot 编码。 One-Hot 编码可以理解为查找One-Hot 编号表。由于One-Hot 编号表示在统计信息后生 成并保持不变,所以可以对统计完成后的One-Hot 编号表进行排序,对于关键字相同的表项, 记录下关键字对应的字段序号用以区别。查找时先使用二分法根据关键字查找排序后的 One-Hot 编号表,然后根据字段序号进行判断并进一步查找,直到找到对应的编号。 图3 预处理优化 - 2 - (3)网络参数提取 PaddlePaddle 模型训练后会得到一个网络参数的压缩包。将这些参数转换成模型重构所 需要的格式,需要经过三个步骤。 1)将压缩包(model-pass-x-batch-xxx.tar.gz )使用paddle.v2.parameters.Parameters 类中 的get 方法将网络参数保存为numpy.ndarray 形式; 2 )使用numpy.savetxt 方法将numpy.ndarray 保存在.txt 文件中; 3 )编写程序将.txt 文件中的网络参数转换成模型重构所需要的形式(以数组的形式保存 在头文件.h 中)。 (4)模型重构 模型重构是将DeepFM 模型训练时使用的基于Python 的框架使用C++重新实现并优化, 如图4 所示。重构后模型的正确性可以通过比较输出结果是否与PaddlePaddle 实现输出结果 一致进行验证。重构的好处在于与Polaris API 使用同种编程语言

文档评论(0)

1亿VIP精品文档

相关文档