Skip to content

效率问题 - 多次映射操作 #11

@qyzl7

Description

@qyzl7

问题描述

在解决了 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 体系?

然而这个修改较为巨大,涉及多处需要修改的代码,可能需要花费大量的检查/测试过程以确保结果正确性。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions