开发者社区 > 大数据与机器学习 > 人工智能平台PAI > 正文

机器学习PAI报一个问题:我DSSM负采样版本,请问这个问题咱们有碰到过吗?

机器学习PAI报一个问题:我DSSM负采样版本,user tower输入两个特征:gender(F, M, UNKNOWN,共3种)与age_level([1, 17], [18, 24], ..., UNKOWN,共11种),item tower一个特征:item_id。我们输入数据都提前补好了缺失值,gender的hash_bucket_size设的200(unique value有3个),age_level的hash_bucket_size设为300。我们预期上user tower产生33种不同的user embedding,但是实际上有一些样本attr被hash到同一个bucket里去了,只有30种不同的user embedding,导致他们虽然feature不同但是embedding相同,请问这个问题咱们有碰到过吗?9f23a09bd6f6ac7938219bcf991b462f.png
看上图,gender一样age_level不一样,但是embedding一样,看起来是age_level被hash到同一个bucket了

展开
收起
真的很搞笑 2023-11-30 11:14:24 43 0
3 条回答
写回答
取消 提交回答
  • 807ce278ec3dc10a4731d2aa614673a3.png
    确实是一样的,这种取值有限的,要么用个vocab_dict或者EmbeddingVariable好了 可以防止冲突,或者干脆设置的大一些,比如1000
    这说明,大多数未知年龄的,都把他当做25-29 的年龄来处理(应该出现概率高)。看起来也有道理啊,此回答整理自钉群“【EasyRec】推荐算法交流群”

    2023-11-30 20:58:25
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    您在机器学习PAI中遇到的这个问题,是因为使用了相同的hash函数和哈希桶大小对不同的特征进行了哈希处理。在这种情况下,即使输入数据不同,但它们可能被哈希到同一个桶里,导致生成的embedding相同。

    为了解决这个问题,您可以尝试以下方法:

    1. 增大hash_bucket_size

      • 尝试增加hash_bucket_size值,确保每个特征都有足够的空间来分散其哈希结果。
    2. 使用独立的哈希函数或参数

      • 对于不同的特征,使用不同的哈希函数或者为每个特征设置不同的哈希参数,以减少冲突的可能性。
    3. 使用多层哈希

      • 如果单层哈希仍然无法解决问题,可以考虑使用多层哈希技术,例如两层或多层哈希,以进一步减少冲突。
    4. 使用其他编码方式

      • 考虑使用其他的特征编码方式,如独热编码(one-hot encoding)或基于树的方法(如决策树或随机森林),这些方法可能会提供更好的区分能力。
    5. 调整特征组合

      • 确保您的组合特征是有效的,并且包含所有必要的信息。如果需要,可以尝试使用不同的特征组合方式。
    6. 检查代码实现

      • 检查您的代码实现,确保哈希过程正确无误,没有逻辑错误。
    2023-11-30 14:15:59
    赞同 展开评论 打赏
  • 天下风云出我辈,一入江湖岁月催,皇图霸业谈笑中,不胜人生一场醉。

    检查数据集和特征设置是否合理,并确保模型在训练过程中没有发生过拟合的情况。image.png
    同时,您可以尝试调整特征的hash_bucket_size来增加不同特征的区分度,从而避免相似特征被哈希到同一个bucket中。训练模型文档可以参考这个:https://help.aliyun.com/zh/pai/user-guide/xgboost-train
    ---来自XGBoost训练文档

    2023-11-30 13:33:32
    赞同 展开评论 打赏

相关产品

  • 人工智能平台 PAI
  • 热门讨论

    热门文章

    相关电子书

    更多
    大规模机器学习在蚂蚁+阿里的应用 立即下载
    阿里巴巴机器学习平台AI 立即下载
    机器学习及人机交互实战 立即下载