问题描述
在解决了 issue #7 之后, 我发现了新的性能瓶颈,即我们在处理 Item ID 与 User ID 时进行了多次映射操作,代码中也保留了双份的映射数据
这个问题有两点影响:
- 这个映射无法并行化(并行化效率不高),导致每个 epoch 需要为此花费一定的等待时间
- 代码中保留了两套 ID 体系,提高了我们在修改代码/加入新模型时的心智压力,我曾经错误使用了映射前的 content embbedding 作为输入
问题范围
包括并不限于,负采样过程:
u_idx = np.array([data.user[x] for x in users])
...
i_idx = [data.item[x] for x in items]
j_idx = [data.item[x] for x in value_ids]
预测过程:
item_names = [self.data.id2item[iid] for iid in ids]
成本
我们是否可以只在 databulider 阶段进行一次处理,然后在训练和测试阶段只使用一套 ID 体系?
然而这个修改较为巨大,涉及多处需要修改的代码,可能需要花费大量的检查/测试过程以确保结果正确性。
问题描述
在解决了 issue #7 之后, 我发现了新的性能瓶颈,即我们在处理 Item ID 与 User ID 时进行了多次映射操作,代码中也保留了双份的映射数据
这个问题有两点影响:
问题范围
包括并不限于,负采样过程:
预测过程:
成本
我们是否可以只在 databulider 阶段进行一次处理,然后在训练和测试阶段只使用一套 ID 体系?
然而这个修改较为巨大,涉及多处需要修改的代码,可能需要花费大量的检查/测试过程以确保结果正确性。