第一周
- 2020-06-01
- 参加腾迅广告大赛
- 与团队成员沟通,确认数据处理方式
- 参加腾迅广告大赛
- 2020-06-02
- 参加腾迅广告大赛
- 准备数据
- 了解 MySQL 的引擎
- 撰写数据处理文档
- 参加腾迅广告大赛
- 2020-06-03
- 参加腾迅广告大赛
- 整理数据
1. 统计数据的视图合并
2. 创建每个 creative_id 的统计数据
3. 创建每个 user_id 的统计数据
4. 创建 tf-idf 计算表,全部数据都保留在结果中,排序在 train_creative_id 中完成,保留素材的个数在程序的代码中完成
5. 创建素材词典,重新编码 creative_id
6. 创建用户词典,重新编码 user_id
7. 创建训练数据,沿用all_log_valid_1m
中的数据,重新编码creative_id
和user_id
- 整理数据
- 解决大型数据集遇到的 Memory Error 问题
- 使用稀疏矩阵
- 参加腾迅广告大赛
- 2020-06-04
- 参加腾迅广告大赛
- 解决 Memory Error 问题:使用 64 位的 Python + 扩大 Windows 的虚拟内存
- 创建训练 Word2Vec 的数据
- 使用 嵌入层 训练网络:效果不好
- 使用 One-Hot 编码后的数据训练,精确度有所提高
- 因为数据的稀疏性问题,使用 L1 正则有所帮助,减少素材库和用户库的大小也有所帮助
- 参加腾迅广告大赛
- 2020-06-05
- 参加腾迅广告大赛
- 1m 的数据准备,撰写 Word2Vec 算法代码,使用 Keras 的 Embedding 层和 MLP 学习 Age 分类,精确度最高可以达到 87%,数据量不够大,算法容易过拟合,数据提供的信息不足
- 确定 user_id 的数目 ( 决定了训练数据集的大小 )
- 确定 batch_size 与 user_id 的关系
- 确定 creative_id 的数目与之的关系 ( 决定了词典的大小 )
- 确定 epoches 与 creative_id 的关系
- 确定 embedding_size 与 creative_id 的关系
- 参加腾迅广告大赛
- 2020-06-06
- 参加腾迅广告大赛
- 将 1m 的数据中没有访问素材的天用 0 填充,增加 1 作为每个用户数据开始序列
- 增加实验日志文件,记录实验效果
- 参加腾迅广告大赛
第二周
- 2020-06-07
- 参加腾迅广告大赛
- 重新基于「用户访问素材」的比例来提取数据,因为原来基于「product_id」的提取方式不正确
- 数据预处理模块 preprocessing.py
- 网络构建模型 network.py
- 重构 MLP-W2V-Gender-Keras.py
- 总结
- 网络结构最优的就是 MLP,但是参数很难调试,对于大数据量基本不可能使用
- 使用 MLP 作为基准,测试其他方便快捷的学习方式
- 稠密向量的维度可以低一些,可能跟数据本身分类有限有关系
- 网络很容易过拟合,注意降低网络复杂度,还可能跟数据量太少有关系
- 参加腾迅广告大赛
- 2020-06-08
- 参加腾迅广告大赛
- 购买新的电脑,必要的投入是需要的
- 登记 50 万数据表的统计数据
- 500K 数据表的统计信息
- 创建 tf-idf 数据
- 创建训练数据
- 更新 50 万 和 500 万的统计数据
- 重构:5m_51 的统计数据表
- 重构:数据预处理模块
- 重构:网络构建模块
- 提取数据处理模块和网络构建模块的函数
- 删除错误数据日志,重新构建不同网络结构计算的结果
- 参加腾迅广告大赛
- 2020-06-09
- 参加腾迅广告大赛
- 安装新的电脑环境:CUDA+cuDNN+Tensorflow-GPU+PyCharm+Navicat+MySQL+Python+AnaConda+Git+GitHub+HuoRong+QQ Wubi+VSCode+Office 2013+
- 参加腾迅广告大赛
- 2020-06-10
- 参加腾迅广告大赛
- 准备 3m 的 Word2Vec 训练数据,本地训练成功后,上传到服务器进行训练
- 使用 Conv1D 训练网络
- 使用 RNN 或者 LSTM 训练网络
- 创建全部字段的全部数据的表
- 格式修正
- 重构:数据预处理模块
- Conv1D 实验报告
- 基于 深度学习 训练模型
- 参加腾迅广告大赛
- 2020-06-11
- 参加腾迅广告大赛
- 编写测试 Gender 问题的分类代码
- 构建所有数据的统计信息
- 修正代码错误
- 增加异常控制代码
- 简化模型构建代码
- 原始数据统计信息
- 调用统一的「网络构建函数」来训练
- 重构「网络模型构建」函数,将各种函数统一为参数配置
- 补充输出实验报告需要的数据
- 对「age」字段进行学习
- 对「age」进行网络训练
- 注:记得修改模型
- 增加
- construct_GlobalMaxPooling1D ( ) :构造全局最大池化模型
- 增加
- load_data ( ) :载入数据函数
- data_sequence_no_start ( ) :生成数据序列,不包含文章开始标志
- 重新输出完整的数据集
- 有 time_id 的时间序列数据
- 无 time_id 的非时间序列数据
- 参加腾迅广告大赛
- 2020-06-12
- 参加腾迅广告大赛
- 撰写全部数据处理的 SQL
- 重构输出函数
- 修正数据处理函数中的错误
- 重构训练模型的函数
- 参加腾迅广告大赛
- 2020-06-13
- 参加腾迅广告大赛
- 记录昨晚进行的训练,发现机器会自动休眠,训练时需要注意
- 反复训练会导致显卡溢出,需要避免反复载入数据
- 对数据进行整理,使之更符合重要性排列的特征
- 将代码抽取成函数,可以进行批量训练
- 参加腾迅广告大赛
第三周
- 2020-06-14
- 参加腾迅广告大赛
- 配置与监控 2060 显卡
- 修正素材库计数
- 输出多分类的原始数据类别统计
- 重构训练代码,提取批训练函数,提取数值为变量
- 使用 Excel 文件保存复杂的实验日志模型
- 参加腾迅广告大赛
- 2020-06-15
- 参加腾迅广告大赛
- 解决 Git 的 receive.denyCurrentBranch 问题
- 使用 Excel 保存复杂的实验日志
- 重构输出函数,输出多分类的原始类别统计,和预测的统计重构多重训练函数,使用循环完成多重训练
- 修正素材数计算错误
- 删除无用代码
- 重构数值为参数
- 抽取批训练函数
- 保证所有数据都有目标数据,防止产生过多的0类别
- 重构 load_data() 函数,提供对序列数据载入的支持
- 代码注释
- 代码完善与优化,修正部分错误
- 参加腾迅广告大赛
- 2020-06-16
- 参加腾迅广告大赛
- 重构并且测试数据处理脚本,导出全部字段,方便后期处理
- 训练不同层的
GlobalMaxPooling1D+(Dropout+Dense+BatchNormalization+Activation)*n
,探索数据特征处理存在的问题
- MySQL
- user.primary
- storage engine
- row_format
- Collation
- Performance->Count ( * )
- 参加腾迅广告大赛
- 2020-06-17
- 参加腾迅广告大赛
- LSTM 和 GRU 的训练效果都不好,需要思考为什么?
- 增加 train_data_all_temp 的索引字段,方便后面编程时查询相关数据
- VSCode 设置
files.maxMemoryForLargeFilesMB
- 编写多输入代码: creative_id + click_times
- 参加腾迅广告大赛
- 2020-06-18
- 参加腾迅广告大赛
- 调试运行多输入代码: creative_id + click_times
- 编写多输入代码:
- creative_id
- click_times
- product_id
- product_category
- advertiser_id
- industry
- 将代码重构为可配置运行,对比不同特征产生的效果
- 参加腾迅广告大赛
- 2020-06-19
- 参加腾迅广告大赛
- 休息:没有新的想法,人感觉疲劳,需要休息
- 参加腾迅广告大赛
- 2020-06-20
- 参加腾迅广告大赛
- 重新制作新的特征,回归最简单的方式计算模型的效果
- 准备提交最后的结果
- 参加腾迅广告大赛
第四周
- 2020-06-21
- 参加腾迅广告大赛
- 建立新的网络模型
- 参加腾迅广告大赛
- 2020-06-22
- 参加腾迅广告大赛
- Windows 10 安装 OpenSSH Server
- VSCode 安装 SSH 开发插件,配置 SSH 开发环境
- 撰写 fix 风格的数据处理代码
- 参加腾迅广告大赛
- 2020-06-23
- 去成都图书馆
- 整理 GitHub 项目到 Server 端
- 2020-06-24
- 去四川图书馆
- 撰写 yapf 配置
- 2020-06-25
- 端午节快乐
- VSCode 重构问题
- Conda 在 PowerShell 中无法激活环境的问题
- 2020 腾迅广告大赛
- 可以正确处理周期内固定长度的数据:包括 fix_day(), fix_three_days(), fix_week()
- 2020-06-26
- 2020 腾迅广告大赛
- data_no_time_no_repeat(): 没有 time_id,也不重复 creative_id 的数据,用于 MaxPooling() 训练
- data_no_time_with_repeat(): 没有 time_id,可以重复 creative_id 的数据,用于 Word2Vec() 训练
- Windows 10 的 PowerShell 遇到 PSSecurityException 问题的解决方案
- Windows 10 利用 Spy++ 寻找发生冲突的快捷键相关的软件
- VSCode 面对错误的字体大小产生的显示错误
- 2020 腾迅广告大赛
- 2020-06-27
- 2020 腾迅广告大赛
- Gensim 的 Word2Vec 训练
- Gensim 的权重加载到 Keras Embedding 层
- 使用 Word2Vec 训练 GlobalMaxPooling,不容易过拟合,但是精度只有 90%
- 将训练的模型参数和精度结果进行保存
- 2020 腾迅广告大赛
第五周
- 2020-06-28
- 2020 腾迅广告大赛
- 使用 word2vec 训练 多种网络模型(GM+GA+Conv+LSTM)
- 修改GitHubPages的文件标签为英文
- 2020 腾迅广告大赛
- 2020-06-29
- 2020 腾迅广告大赛
- 整理 Word2Vec 文件名称
- Gensim 的 Word2Vec() 函数的中文说明
- 2020 腾迅广告大赛
- 2020-06-30
- 2020 腾迅广告大赛
- 重构 Word2Vec 数据输出文件
- 重新训练 Word2Vec 模型
- 帮奶奶买东西
- 2020 腾迅广告大赛