O Doc2Vec é um algoritmo de machine learning que gera vetores de documentos de comprimento fixo ao tratar IDs de documentos como palavras especiais durante o treinamento. Ele aprende simultaneamente vetores de palavras e de documentos, permitindo comparar relações semânticas entre documentos pela medição de distâncias no espaço vetorial.
Use o Doc2Vec quando precisar:
Classificar documentos por similaridade a um documento de consulta
Criar sistemas de recomendação de conteúdo
Agrupar documentos por tópico
O algoritmo recebe uma tabela de vocabulário como entrada e produz até três saídas: uma tabela de vetores de documentos, uma tabela de vetores de palavras e uma tabela de vocabulário opcional.
Limitações
O Doc2Vec é executado exclusivamente em recursos de computação do MaxCompute.
Configure o componente Doc2Vec
Há dois métodos de configuração disponíveis: o PAI console (Machine Learning Designer) e comandos PAI via scripts SQL.
Configure no PAI console
Na página de pipeline do Machine Learning Designer, configure o componente Doc2Vec com os parâmetros descritos abaixo.
Aba Fields Setting
|
Parâmetro |
Descrição |
|
Document ID Column |
Nome da coluna de documento usada no treinamento. |
|
Document Content |
Palavras usadas no treinamento. Separe as palavras com espaços. |
Aba Parameters Setting
|
Parâmetro |
Descrição |
|
Dimensions of Word Features |
Número de dimensões dos vetores de palavras. Valores válidos: 0–1.000. Valor padrão: 100. |
|
Language Model |
Modelo de treinamento. Valores válidos: Skip-gram Model (padrão) e CBOW Model. |
|
Word Window Size |
Tamanho da janela de contexto. Deve ser um número inteiro positivo. Valor padrão: 5. |
|
Minimum Frequency of Words |
Frequência mínima de palavras para inclusão no treinamento. Palavras com frequência inferior a este limiar são excluídas. Deve ser um número inteiro positivo. Valor padrão: 5. |
|
Hierarchical Softmax |
Indica se o hierarchical softmax será usado para otimizar o treinamento. Selecionado por padrão. |
|
Negative Sampling |
Tamanho da janela de negative sampling. Deve ser um número inteiro positivo. Valor padrão: 5. Defina como 0 para desativar o negative sampling. |
|
Downsampling Threshold |
Limiar para downsampling de palavras frequentes. Valores válidos: 1e-3 a 1e-5. Valor padrão: 1e-3. Defina como 0 para desativar o downsampling. |
|
Initial Learning Rate |
Taxa de aprendizado inicial. Deve ser maior que 0. Valor padrão: 0,025. |
|
Training Iterations |
Número de iterações de treinamento. Deve ser maior ou igual a 1. Valor padrão: 1. |
|
Use Random Window |
Modo da janela de palavras. Valores válidos: A Random Value Between 1 to 5 e Specified by the Window Parameter (padrão). |
Aba Tuning
|
Parâmetro |
Descrição |
|
Number of Computing Cores |
Número de núcleos de computação a serem usados. Por padrão, o sistema determina o valor automaticamente. |
|
Memory Size per Core (MB) |
Memória alocada por núcleo. Por padrão, o sistema determina o valor automaticamente. |
Configure com comandos PAI
Invoque o componente Doc2Vec com comandos PAI. Para obter informações sobre como executar comandos PAI em scripts SQL, consulte Script SQL.
O exemplo a seguir mostra uma configuração mínima:
PAI -name pai_doc2vec
-project algo_public
-DinputTableName="d2v_input"
-DdocIdColName="docid"
-DdocColName="text_seg"
-DoutputWordTableName="d2v_word_output"
-DoutputDocTableName="d2v_doc_output";
A tabela de entrada deve conter pelo menos duas colunas: uma coluna de ID do documento (como docid) e uma coluna de conteúdo do documento (como text_seg) com palavras separadas por espaços.
A referência completa de parâmetros está descrita a seguir.
|
Parâmetro |
Obrigatório |
Padrão |
Descrição |
|
|
Sim |
— |
Nome da tabela de vocabulário de entrada. |
|
|
Não |
— |
Partições a serem usadas da tabela de entrada. Formato: |
|
|
Sim |
— |
Nome da coluna de ID do documento usada no treinamento. |
|
|
Sim |
— |
Nome da coluna de conteúdo do documento usada no treinamento. As palavras devem estar separadas por espaços. |
|
|
Não |
100 |
Número de dimensões dos vetores de palavras. Valores válidos: 0–1.000. |
|
|
Não |
0 |
Modelo de treinamento. |
|
|
Não |
5 |
Tamanho da janela de contexto. Deve ser um número inteiro positivo. |
|
|
Não |
5 |
Frequência mínima de palavras para inclusão no treinamento. Deve ser um número inteiro positivo. |
|
|
Não |
1 |
Indica se o hierarchical softmax será utilizado. |
|
|
Não |
5 |
Tamanho da janela de negative sampling. Deve ser um número inteiro positivo. Defina como |
|
|
Não |
1e-3 |
Limiar de downsampling para palavras frequentes. Valores válidos: 1e-3 a 1e-5. Defina como |
|
|
Não |
0,025 |
Taxa de aprendizado inicial. Deve ser maior que 0. |
|
|
Não |
1 |
Número de iterações de treinamento. Deve ser maior ou igual a 1. |
|
|
Não |
1 |
Modo da janela de palavras. |
|
|
Não |
— |
Nome da tabela de vocabulário de saída. |
|
|
Sim |
— |
Nome da tabela de vetores de palavras de saída. |
|
|
Sim |
— |
Nome da tabela de vetores de documentos de saída. |
|
|
Não |
— |
Ciclo de vida das tabelas de saída. Deve ser um número inteiro positivo. |
|
|
Não |
Auto |
Número de núcleos de computação. Tem efeito apenas quando |
|
|
Não |
Auto |
Tamanho da memória por núcleo em MB. Tem efeito apenas quando |
Referências
Para obter uma visão geral do Machine Learning Designer, consulte Visão geral do Machine Learning Designer.