Recomendação para item

Os sistemas de recomendação com Collaborative Filtering (Filtragem Colaborativa) ajudam a sugerir itens relevantes analisando o comportamento de diferentes itens.

Por exemplo, imagine que você gostou de um filme em uma plataforma de streaming. Com o método método item-item, é possível sugerir um filme com base no que você acabou de assistir.

Esse método funciona como uma espécie de "rede de amigos invisível", ajudando você a descobrir coisas novas que têm tudo a ver com o item.

EXEMPLO DE USO

Para gerar o arquivo com todas as configurações necessárias para utilizar posteriormente:

uses
  UEasyAI;
  
procedure TrainModel;
var
  vEasyAIClass: TEasyAIRecommendationFromItem;
begin
  vEasyAIClass := TEasyAIRecommendationFromItem.Create(10);
  try
    vEasyAIClass.LoadDataset('C:\DelphAI\DelphAI\Datasets\MovieLens-100k\user_item_matrix.csv', False);
    vEasyAIClass.FindBestModel('C:\Example\trainedFile-rec-item');
  finally
    vEasyAIClass.Free;
  end;
end;

Ao concluir a procedure "FindBestModel", será criado o arquivo no diretório passado por parâmetro.

Para utilizar o modelo a partir do arquivo gerado:

uses
  UEasyAI;
  
procedure RecommendItemsFromItem;
var
  vEasyAIClass: TEasyAIRecommendationFromItem;
begin
  vEasyAIClass := TEasyAIRecommendationFromItem.Create(10);
  try
    vEasyAIClass.LoadDataset('C:\DelphAI\DelphAI\Datasets\MovieLens-100k\user_item_matrix.csv', False);
    vEasyAIClass.FindBestModel('C:\Example\trainedFile-rec-item');
  finally
    vEasyAIClass.Free;
  end;
end;

A estrutura da base de dados pode ser encontrado aqui.

GUIA DE CLASSES E MÉTODOS

TEasyAIRecommendationFromItem

  • constructor Create(aItemsToRecommendCount : Integer); : cria o objeto com a base que será usada para treinamento.

    • aItemsToRecommendCount : quantidade máxima de itens que serão recomendados.

  • procedure LoadDataset(aDataSet : String; aHasHeader : Boolean = True); : carrega a base de dados para treinamento ou uso nos modelos que necessitam.

    • aDataSet : caminho do arquivo CSV.

    • aHasHeader : indica se tem cabeçalho no arquivo.

  • procedure LoadDataset(aDataSet : TDataSet); : carrega a base de dados para treinamento ou uso nos modelos que necessitam.

    • aDataSet : objeto TDataSet que contém os dados que serão usados para treinamento.

  • procedure FindBestModel(aPathResultFile: String; aMode : TEasyTestingMode = tmStandard; aMaxThreads : Integer = 0; aCsvResultModels : String = ''; aLogFile : String = ''); : testa várias opções de modelos para encontrar e preparar o melhor dentre eles para ser usado nas predições.

    • aPathResultFile : caminho onde salva as configurações do modelo encontrado, antes do uso basta usá-lo para preparar todo o objeto para predições.

    • aMode : modo de pesquisa que será realizada, tendo 3 opções:

      • tmFast : testa somente os prováveis melhores modelos. É o modo mais rápido;

      • tmStandard : testa os prováveis melhores modelos, além de explorar parâmetros mais extremos;

      • tmExtensive : testa um grande número de modelos, incluindo o dos outros métodos. É o modo mais demorado.

    • aMaxThreads : opcional, máximo de threads que serão utilizadas simultaneamente. Caso for 0, irá usar a quantidade de threads disponíveis no CPU.

    • aCsvResultModels : opcional, caminho onde irá gerar um arquivo CSV contendo cada método testado, junto aos seus resultados.

    • aLogFile : opcional, caminho do arquivo de log.

  • procedure LoadFromFile(aPath : String); : carrega o arquivo gerado no "FindBestModel" para criar e preparar o uso do melhor modelo encontrado.

  • function RecommendItem(aFromItemSample : TArray<Double>) : TArray; : retorna X itens recomendados a partir de um item que não estava no dataset.

    • aFromItemSample : dados do item que receberá a recomendação, cada posição X do array representa a nota desse item para o usuário no índice X.

  • function RecommendItem(aFromItemID : Integer) : TArray; : retorna X itens recomendados a partir de um item que já está no dataset.

    • aFromItemID : ID do item que receberá a recomendação.

Last updated