Em cenários de recomendação, use a solução FM-Embedding no Designer para obter vetores de recursos de usuários e itens. No módulo de recall, calcule o produto escalar desses vetores para prever a classificação de um par usuário-item. Este tópico descreve como usar o algoritmo Factorization Machine (FM) e um algoritmo de extração de embedding para gerar rapidamente vetores de recursos de usuários e itens.
Pré-requisitos
Crie um workspace. Para mais informações, consulte Create and manage workspaces.
Associe recursos do MaxCompute ao workspace. Para mais informações, consulte Manage the computing resources of a workspace.
Contexto
Um sistema de recomendação geralmente inclui módulos de recall e ordenação. No módulo de recall, vetores representam usuários e itens (o conteúdo a ser recomendado). O produto escalar entre um vetor de usuário e um vetor de item indica o nível de interesse do usuário no item. Este pipeline baseia-se em dados reais de recomendação e seu fluxo de trabalho completo já vem pré-configurado em um modelo do Designer. Assim, é possível gerar vetores de recursos de usuários e itens apenas arrastando e soltando componentes.
Conjunto de dados
Os dados de source incluem os seguintes campos.
|
Parâmetro |
Tipo |
Descrição |
|
userid |
STRING |
O ID do usuário. |
|
age |
DOUBLE |
A idade do usuário. |
|
gender |
STRING |
O gênero do usuário. |
|
itemid |
STRING |
O ID do item. |
|
price |
DOUBLE |
O preço do item. |
|
size |
DOUBLE |
O tamanho do item. |
|
label |
DOUBLE |
A coluna alvo. Valores válidos:
|
Procedimento
-
Acesse a página do Machine Learning Designer.
Faça login no PAI console.
No painel de navegação à esquerda, clique em Workspaces. Na página Workspaces, clique no nome do workspace que deseja gerenciar.
No painel de navegação à esquerda, escolha .
-
Construa um pipeline.
Na página do Designer, clique na aba Preset Templates.
Na lista de modelos, clique em Create abaixo de Create.
-
Na caixa de diálogo Create Pipeline, configure os parâmetros. Use as configurações padrão para todos os parâmetros.
O parâmetro Data Storage especifica um caminho de bucket do OSS para armazenar dados temporários e modelos gerados durante a execução do pipeline.
-
Clique em Confirm.
A criação do pipeline leva cerca de 10 segundos.
-
O sistema constrói automaticamente o pipeline com base no modelo predefinido, conforme mostra a figura a seguir.

Seção
Descrição
①
Codifica todos os recursos em one-hot. Essa codificação converte dados de string em dados numéricos. Neste pipeline, o componente One-hot Encoding-1 codifica primeiro todo o conjunto de dados e depois passa o modelo gerado para os componentes One-hot Encoding-2 e One-hot Encoding-3.
②
Gera um modelo Factorization Machine (FM). Clique neste componente para visualizar os parâmetros padrão na aba Parameters. O terceiro parâmetro de Dimensions (valor padrão: 1,1,10) especifica a dimensão do embedding gerado, que é 10.
③
Gera a codificação de recursos do usuário. As entradas para o parâmetro Select Binarize Columns são userid, gender e age. A entrada para o parâmetro Appended Columns é userid.
④
Gera a codificação de recursos do item. As entradas para o parâmetro Select Binarize Columns são itemid, price e size. A entrada para o parâmetro Appended Columns é itemid.
⑤
Extrai o embedding do item. Os parâmetros deste componente são:
-
Embedding Vector ID Column: O feature_id do modelo FM treinado.
-
Embedding Vector Column: O feature_weights do modelo FM treinado.
-
Weight Vector Column: A coluna de dados esparsos da codificação one-hot.
-
Output Column Name: O nome do campo para o embedding de saída.
-
-
Execute o pipeline e visualize os resultados.
Clique no botão
na parte superior da tela.Após a conclusão da execução do pipeline, clique com o botão direito no componente Embedding Extraction-1 na tela e escolha para visualizar os vetores de recursos do usuário. A tabela de vetores de recursos do usuário contém três colunas: userid (ID do usuário), kv (recursos chave-valor, por exemplo,
10:1,7:1,37:1) e embedding (um vetor de alta dimensão composto por números de ponto flutuante separados por espaços).Clique com o botão direito no componente Embedding Extraction-2 na tela e escolha para visualizar os vetores de recursos do item. A tabela de vetores de recursos do item contém três colunas: itemid (identificador do item, por exemplo, A a J), kv (codificação de recurso esparso, por exemplo,
31;1,11;1,27:1) e embedding (um vetor multidimensional de ponto flutuante).