本文为您介绍PAI-Studio提供的Word2Vec算法组件。

Word2Vec算法组件利用神经网络,通过训练,将词映射为K维度空间向量,且支持对表示词的向量进行操作并和语义相对应。输入为单词列或词汇表,输出为词向量表和词汇表。

配置组件

  • 可视化方式
    页签 参数 描述
    字段设置 选择单词列 用来进行训练的单词列。
    参数设置 单词特征维度 单词的特征维度数量。取值范围为0~1000,默认值为100。
    语言模型 训练使用的语言模型。取值范围为skip-gram模型cbow模型,默认值为skip-gram模型
    单词窗口大小 单词的窗口大小。取值范围为正整数,默认值为5。
    使用随机窗口 是否使用随机窗口。默认使用。
    截断最小词频 取值范围为正整数,默认值为5。
    采用hierarchical softmax 是否采用HIERARCHICAL SOFTMAX。默认采用。
    负采样 负采样的窗口大小。默认值为0,表示不可用。
    向下采样阈值 向下采样的阈值。默认值为0,表示不可用。
    起始学习速率 取值大于0,默认值为0.025。
    迭代次数 取值大于等于1,默认值为1。
    执行调优 核心数 默认为系统自动分配。
    每个核的内存大小 默认为系统自动分配。
  • PAI命令方式
    pai -name Word2Vec
        -project algo_public
        -DinputTableName=w2v_input
        -DwordColName=word
        -DoutputTableName=w2v_output;
    参数名称 是否必选 描述 默认值
    inputTableName 输入词汇表的名称。
    inputTablePartitions 输入词汇表中参与分词的分区名称。格式为partition_name=value。多级分区格式为name1=value1/name2=value2。如果指定多个分区,用英文逗号(,)分隔。
    wordColName 单词列名。单词列中每行为一个单词,换行符用</s>表示。
    inVocabularyTableName 对输入词汇表执行wordcount操作后的输出结果。 系统会对输出表执行wordcount操作
    inVocabularyPartitions 对输入词汇表执行wordcount操作后的输出结果中的分区名称。 inVocabularyTableName对应表的所有分区
    layerSize 单词的特征维度数量。取值范围为0~1000。 100
    cbow 训练使用的语言模型。取值范围为0(skip-gram模型)和1(cbow模型)。 0
    window 单词的窗口大小。取值范围为正整数。 5
    minCount 截断的最小词频。取值范围为正整数。 5
    hs 是否采用HIERARCHICAL SOFTMAX。取值范围为0(不采用)和1(采用)。 1
    negative 负采样的窗口大小。取值范围为正整数,0表示不可用。 0
    sample 向下采样的阈值。取值范围为1e-3~1e-5。0表示不可用。 0
    alpha 取值大于0。 0.025
    iterTrain 取值大于等于1。 1
    randomWindow 指定单词窗口的展示方式。取值范围为0(不随机,其值由window参数指定)和1(大小在1~5间随机)。 1
    outVocabularyTableName 输出词汇表的名称。
    outputTableName 输出词向量表的名称。
    lifecycle 输出表的生命周期。取值范围为正整数。
    coreNum 核心数,需要与memSizePerCore参数同时设置才生效。取值范围为正整数。 系统自动分配
    memSizePerCore 内存数,需要与coreNum参数同时设置才生效。取值范围为正整数。 系统自动分配

示例

  • 输入词汇表如下。
    说明 word2vec只能接收词频统计的右输出节点作为输入。
    输入
  • 输出结果输出结果

    第一列为对应的词输出,第二列之后为对应的embedding结果,维度由layerSize参数指定。

常见问题

报错“Vocab size is zero! vocab_size: 0”,表示词典为空,调小minCount参数值,即可解决。