请问下机器学习PAI文档里DIN和BST组件化实现,特征里list和key是怎么做的映射?[阿里云机器学习PAI]

“请问下机器学习PAI文档里DIN和BST组件化实现,sequence特征里list和key是怎么做的映射?

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
=====这是一个广告位,招租中,联系qq 78315851====
2 条回复 A 作者 M 管理员
  1. 在DIN和BST机器学习PAI组件中,特征里的list和key是通过以下步骤进行映射的:

    1. 使用Python API将特征转换为PAI可以处理的格式。例如,你可以使用以下代码将特征转换为PAI可以处理的格式:
    # 将特征转换为PAI可以处理的格式features = list_of_lists_of_numbers + list_of_strings + list_of_dicts
    1. 使用PAI的特征工程功能将特征转换为PAI可以处理的格式。例如,你可以使用以下代码将特征转换为PAI可以处理的格式:
    # 使用PAI的特征工程功能将特征转换为PAI可以处理的格式featurizer = FeatureExtractor(features)features = featurizer.transform(features)
    1. 使用PAI的特征映射功能将特征转换为PAI可以处理的格式。例如,你可以使用以下代码将特征转换为PAI可以处理的格式:
    # 使用PAI的特征映射功能将特征转换为PAI可以处理的格式mapper = FeatureMapper(features)features = mapper.transform(features)
    1. 使用PAI的特征转换功能将特征转换为PAI可以处理的格式。例如,你可以使用以下代码将特征转换为PAI可以处理的格式:
    # 使用PAI的特征转换功能将特征转换为PAI可以处理的格式transformer = FeatureTransformer(features)features = transformer.transform(features)

    请注意,你需要确保你的PAI版本能够正确地工作在一起,并且能够正常地处理特征里的list和key映射。

  2. “list是所有sequence 特征的embeding 拼接起来的,key是所有非sequence 特征的embedding 拼接起来
    这个例子里, concat([cate_id,brand], axis=-1) 是key; concat([tag_brand_list, tag_category_list], axis=-1) 是sequence
    ,此回答整理自钉群“【EasyRec】推荐算法交流群””

  3. 对于阿里云机器学习PAI的DIN和BST组件化实现,特征里list和key的映射方式,文档中并没有明确说明。但根据一般的特征工程实践,我们可以推测可能的做法如下:

    • 对于List类型的特征,您可能需要将列表中的每个元素单独作为特征进行处理。例如,如果一个特征是颜色列表,那么您可能需要为红色、蓝色和绿色分别创建三个新特征。
    • 对于Key类型的特征,您可能需要使用One-Hot Encoding或其他编码方法将键转换为多个二进制特征。例如,如果一个特征是城市名(如”北京”,”上海”等),那么您可能需要为每个城市创建一个新特征,并使用二进制编码表示该城市是否存在。