特征提取

最近更新时间:2019-09-26 19:05:13

Word2Vec on SONA

算法简介

Word2Vec 将文本中的词语映射到 k 维向量空间中,同时向量空间上的相似度可以用来表示词语语义上的相似度。

参数说明

  • 输入数据格式
    文档,每行一个句子,如下所示:
word1 word2 word3 ...
word4 word5 word6 ...
... ...
... ...
  • 训练节点

    • 算法 IO 参数

      • 训练数据:训练数据所在的 COS 路径。
      • 模型输出:训练结果保存 COS 路径。
    • 算法参数

      • Embedding 特征的维度:embedding 向量的维度。
      • 学习率:初始学习率。
      • BatchSize:每个 mini batch 数据大小。
      • 最大 epoch 数:最大迭代轮数。
      • windowSize:滑动窗口大小。
      • 是否对数据进行采样操作:是否对训练数据进行采样。
      • 是否进行 ID 重映射:是否进行 ID 重映射。
      • cbow 或者 skipgram:cbow 方式或者 skipgram 方式。
      • 模型分区个数:参数服务器模型的分区数量。
      • 负采样数:负采样节点个数。
      • checkpoint 轮数:每隔多少轮做一次 checkpoint。
    • spark conf 参数

      • spark.angel.tmp.output.path.prefix:angel 临时目录的前缀路径,为 COS 路径。
      • saprk.angel.output.path.deleteonexist:为了防止误删除模型,默认不自动删除模型输出路径的文件。如果需要设置为 true。
    • 资源参数

      • num-executors:任务启动的 spark executor 个数,可根据数据量来配置,一般训练数据量越大,需要的 worker 个数越多。
      • executor-memory(g):每个 executor 需要的内存,单位为 g。
      • executor-cores:每个 executor 需要的 CPU 核数。
      • driver-memory(g):spark driver 需要的内存,单位为 g。
      • spark.ps.instances:angel ps 个数,可根据模型大小来配置,一般模型越大,需要的 ps 个数越多。
      • spark.ps.cores:每个 angel ps 需要的核数。
      • spark.ps.memory(g):每个 angel ps 需要的内存,单位为 g。

demo 示例

  • 数据集准备
  • 从【输入】>【数据源】>【COS 数据集】 拉取数据集组件。
  • 配置数据集组件参数即训练数据的 COS 路径。
  • 拉取算子组件配置参数
  • 从【算法】>【机器学习算法】>【特征提取】>【Word2Vec on SONA】拉取算子组件,和数据集组件组成 pipeline。
  • 配置算子的 IO 参数以及算法参数。
  • 配置算子的资源参数,包括 spark 和 angel 的资源参数。
  • 单击【运行】运行作业。
  • 右键【算子组件】>【日志信息】>【spark 控制台】 查看日志。

本算子主要解决了词表示学习的问题

将高维稀疏的词表示嵌入到低维的向量空间。

  • 原始数据如下图所示:
  • 运行算子后得到的结果有词向量文件和词映射文件。
  • 词映射文件格式为:映射后的 ID:原单词。
  • 词向量文件格式为:映射后的 ID:词向量。

[2.0] FeatureCombination

本算子提供基于原有特征列组合、过滤、筛选产生新特征的功能。

参数说明

IO 参数

与普通的机器学习算子类似,需要填写数据路径、文件类型、有无标题栏、数据分隔符,以及特征列。这里的特征列是指所有参与特征组合的列。

算法参数

算法参数有三个基本项,分别是产生新特征的迭代次数、每轮迭代最大增长的特征数以及特征选择规则。特征选择规则可以有方差和树模型。由于树模型是基于监督学习的,所以选择树模型时,需要额外填写标签列和当前的任务类型(分类还是回归)
1569221411775

特征组合结果查看

特征组合算子有两个输出桩,第一个桩是正常的数据输出,即特征组合之后的数据集,可以正常连接后续的机器学习流程算子。第二个输出桩是特征组合结果,不需要额外连接任何算子,只需要鼠标右键单击,查看特征组合结果即可。
1569221677753
例如新特征 feature0_0,它是由就特征 f_0 和 f_0 自交叉组合而成的,feature0_1 是由 f_0 和 f_1 交叉而出的。特征组合结果的预览支持1000行,全量数据支持下载。
img

对后续算子的影响

例如原始数据0 - 29列是特征,30列是标签。假如全选特征作为备选,迭代3轮,每轮最多产生10个新特征,则最后会产生30个新特征。如果下面接一个分类器,则它的特征列应该填写 "0-29, 31-60"