文章标题

来源:互联网 发布:苹果cms多功能手机模板 编辑:程序博客网 时间:2024/06/05 10:17

read_book:198万

user2:用户列去重 38万 得到对应索引
item2:书列去重 7万 得到对应索引
content:类别 199

训练集:对于同一用户合并同类别的书为大类787966条数据

验证集:195915行数据,对于同一用户合并同类别的书为大类150575条数据。
去除训练集中没有出现过的用户以及类别没有出现在训练集集中的行数据150569
包括25210个用户,丢掉验证集中在训练集中仅仅浏览过一次的用户 剩下23704个用户

对于新用户的推荐:因为没有用户相关的兴趣偏好特征和标签,也没有阅读相关的特征。不能使用用户相似性和内容相似性。只能推荐热门书籍。
按浏览过的用户数排列
用户看过次数加权
不同类别内分层推荐
对于新的书目:确定新书的类别,按类别推荐给喜欢该类别的一部分用户(按规定用户数目推荐或者按兴趣阈值推荐)

目前DSSTNE不算是一个成熟的项目,它过于像“黑盒子”。为了了解它的工作原理和运行机制,不得不去看它的源代码,发现了很多重要的待办事项(//TODO)。他们还发现,在互联网上没有足够的教程,也没有什么人做相关实验。这是一个非常有趣的项目,它只是需要一点成熟的时间。
DSSTNE不需要编程技能。与DSSTNE的交互都是通过终端中的命令完成的。

四层前馈网络input->1536(relu)->1536(relu)->output(sigmoid)

环境:anaconda dsstne

开发部署文档:
数据选取口径、

数据需求说明、(用户、书名、类型、次数)

数据预处理说明、(将相同用户对同一类书的浏览次数进行求和,数据形式为 用户 类型 总次数)
考虑到数据分布的不均衡,75%的数据浏览次数在16次以内,而剩余25%的数据处于[16,21618],因此将数据归一化时采取了
times=x/16 其余少部分过大数据强制为1。最终输入模型的数据行格式为用户 类型 评分

模型规则:利用四层前馈神经网络结构,采用mini-batch的随机梯度下降,其中batch=256,以一个样本作为一次输入对象,整个样本380810的用户数据迭代次数为200次。
最终为训练集中每个用户推荐五类偏好概率最高的类型。

测试评估报告:
测试数据选取:同一批用户在下一个时间维度上的浏览提取

测试方法说明:通过对照相同用户预测结果和实际浏览的类型,若推荐结果类型与浏览结果类型有重合,则对该用户预测有效。预测有效的用户数/测试集中的用户数

测试结果:最终准确比例达到。。。

源代码:数据处理的源代码,跑模型的源代码,
测试源代码:测试数据处理代码,验证输出代码

原创粉丝点击