Todos os produtos
Search
Central de documentação

Platform For AI:Collaborative filtering (etrec)

Última atualização: Jun 27, 2026

O componente Collaborative Filtering (etrec) usa um algoritmo de filtragem colaborativa baseado em itens para calcular a similaridade entre pares de itens a partir de dados de interação usuário-item. Com base em uma coluna de usuário e uma coluna de item, o componente gera os N itens mais similares para cada item. Esse recurso é comum na etapa de recall de pipelines de recomendação.

Como funciona

  1. Lê os registros de interação usuário-item da tabela de entrada (coluna de usuário + coluna de item).

  2. Identifica, para cada item, os usuários que interagiram com ele e calcula as pontuações de similaridade em relação aos demais itens conforme o tipo de similaridade selecionado.

  3. Grava os N itens mais similares por item na tabela de saída como pares chave-valor (item_id:similarity_score).

Escolha um tipo de similaridade

Selecione o algoritmo de similaridade conforme as características dos dados de interação:

Tipo de similaridade

Quando usar

WbCosine

Filtragem colaborativa baseada em itens de uso geral. Use como padrão na maioria dos cenários de recomendação.

asymcosine

Relações direcionais entre itens. Ajuste alpha (fator de suavização) e weight (coeficiente de ponderação) para controlar o grau de assimetria.

Jaccard

Dados de interação binários (clicou/não clicou, comprou/não comprou).

Configure o componente

Você pode configurar o componente de duas formas: pelo PAI console (visual) ou por comandos PAI (baseados em SQL). Ambos os métodos expõem os mesmos parâmetros.

Método 1: Configurar no PAI console

Na página de pipeline do Machine Learning Designer, selecione o componente Collaborative Filtering (etrec) e defina os seguintes parâmetros.

Fields Setting tab

Parâmetro

Descrição

User Column

Nome da coluna de usuário na tabela de entrada.

Item Column

Nome da coluna de item na tabela de entrada.

Delimiter between items in the output table

Separador entre itens na tabela de saída. Padrão: espaço.

Delimiter between key-value in the output table

Separador entre chaves e valores na tabela de saída. Padrão: dois pontos (:). Não há suporte a espaços.

Parameters Setting tab

Parâmetro

Descrição

Similarity Type

Algoritmo para calcular a similaridade entre itens. Consulte Escolha um tipo de similaridade. Valores válidos: WbCosine, asymcosine, Jaccard.

TopN

Número máximo de itens similares mantidos por item na tabela de saída.

Calculation Behavior

Discontinued. Este parâmetro não tem mais efeito. Valores válidos: Add, Mul, Min, Max.

Minimum Item Value

Exclui do cálculo usuários com menos interações que este limiar. Aumente o valor para filtrar usuários com histórico esparso, pois o comportamento deles tende a refletir a popularidade do item, não a preferência pessoal.

Maximum Item Value

Exclui do cálculo usuários com mais interações que este limiar. Diminua o valor para filtrar usuários de alto volume (como bots automatizados), cujos registros podem gerar ruído nas pontuações de similaridade.

Smoothing Factor

Válido apenas quando Similarity Type for asymcosine. Valores válidos: (0, 1). Padrão: 0,5.

Weighting Coefficient

Válido apenas quando Similarity Type for asymcosine. Índice de peso aplicado à fórmula de cosseno assimétrico. Padrão: 1,0.

Método 2: Configurar com comandos PAI

Execute o comando pai_etrec em um SQL Script. Para mais informações, consulte SQL Script.

PAI -name pai_etrec
    -project algo_public
    -DsimilarityType="wbcosine"
    -Dweight="1"
    -DminUserBehavior="2"
    -Dlifecycle="28"
    -DtopN="2000"
    -Dalpha="0.5"
    -DoutputTableName="etrec_test_result"
    -DmaxUserBehavior="500"
    -DinputTableName="etrec_test_input"
    -DuserColName="user"
    -DitemColName="item"

Parâmetro

Obrigatório

Descrição

Padrão

inputTableName

Sim

Nome da tabela de entrada.

userColName

Sim

Nome da coluna de usuário na tabela de entrada.

itemColName

Sim

Nome da coluna de item na tabela de entrada.

inputTablePartitions

Não

Partições a serem lidas da tabela de entrada.

Tabela completa

outputTableName

Sim

Nome da tabela de saída.

outputTablePartition

Não

Partição de destino na tabela de saída.

similarityType

Não

Algoritmo de similaridade. Valores válidos: wbcosine, asymcosine, jaccard.

wbcosine

topN

Não

Quantidade de itens mais similares a manter por item. Valores válidos: 1–10000.

2000

minUserBehavior

Não

Número mínimo de interações necessárias para incluir o usuário. O sistema exclui usuários abaixo deste limiar, pois o comportamento deles tende a refletir a popularidade do item, não a preferência pessoal.

2

maxUserBehavior

Não

Número máximo de interações permitidas para incluir o usuário. O sistema exclui usuários acima deste limiar; registros de alto volume (por exemplo, de bots automatizados) podem gerar ruído.

500

itemDelimiter

Não

Delimitador entre itens na tabela de saída.

Backspace

kvDelimiter

Não

Delimitador entre chaves e valores na tabela de saída.

:

alpha

Não

Fator de suavização quando similarityType=asymcosine. Valores válidos: (0, 1).

0.5

weight

Não

Índice de peso quando similarityType=asymcosine.

1.0

lifecycle

Não

Ciclo de vida da tabela de saída.

1

coreNum

Não

Número de núcleos a alocar.

Determinado pelo sistema

memSizePerCore

Não

Memória por núcleo, em MB.

Determinado pelo sistema

Exemplo

Este exemplo cria uma tabela de entrada mínima, executa o algoritmo de filtragem colaborativa e inspeciona a saída.

Etapa 1: Crie a tabela de dados de treinamento.

DROP TABLE IF EXISTS etrec_test_input;
CREATE TABLE etrec_test_input AS
SELECT *
FROM (
    SELECT CAST(0 AS STRING) AS user, CAST(0 AS STRING) AS item
    UNION ALL SELECT CAST(0 AS STRING), CAST(1 AS STRING)
    UNION ALL SELECT CAST(1 AS STRING), CAST(0 AS STRING)
    UNION ALL SELECT CAST(1 AS STRING), CAST(1 AS STRING)
) a;

Tabela etrec_test_input resultante:

user

item

0

0

0

1

1

0

1

1

Etapa 2: Execute o comando PAI.

DROP TABLE IF EXISTS etrec_test_result;
PAI -name pai_etrec
    -project algo_public
    -DsimilarityType="wbcosine"
    -Dweight="1"
    -DminUserBehavior="2"
    -Dlifecycle="28"
    -DtopN="2000"
    -Dalpha="0.5"
    -DoutputTableName="etrec_test_result"
    -DmaxUserBehavior="500"
    -DinputTableName="etrec_test_input"
    -DuserColName="user"
    -DitemColName="item";

Etapa 3: Visualize a tabela de saída.

Consulte etrec_test_result. Cada linha representa um item e seus itens mais similares, formatados como pares chave-valor item_id:similarity_score.

itemid

similarity

0

1:1

1

0:1

Os itens 0 e 1 tiveram interação dos mesmos dois usuários. Portanto, cada um apresenta pontuação de similaridade de 1,0 em relação ao outro.