Este modelo identifica aspectos, opiniões e polaridades em reviews.
Foi treinado com 10k reviews de pessoas que registraram um ou mais comentários num site de e-commerce.
Nesse contexto aspectos estão relacionados a um ou mais produtos ou serviços, opiniões esta relacionado a caracteristica destacada e polaridade a satisfação com o respectivo produto ou serviço.
No dataset usado os reviews pertencem a 10 dominios: Restaurants, Electronics, Home, Laptop, Fashion, Beauty, Toy, Grocery, Pet e Book.
O modelo foi treinado com um review especifico para cada dominio, esse review foi reescrito para tornar mais claro e consistente o processo de identificar os produtos ou serviços, a opinião expressa e a polaridade do review.
O modelo pré-treinado google/flan-t5-base foi usado como modelo base e o LORA foi configurado para usar apenas uma pequena parte dos parametros treinaveis e assim conseguir usar todos registros no dataset sem esgotar a memória da VM na GCP.
Durante o treinamento o modelo foi instruído para seguir o exemplo dado e retornar uma sentença no mesmo formato do exemplo.
How to use
Carregar o modelo:
from transformers import AutoModelForSeq2SeqLM, AutoTokenizer
A partir da saída formatada são extraídos os termos aspectos, opiniões e polaridades identificados no review.
Training
O modelo foi treinado com um dataset que separado em 3 partes, sendo 80% para treinamento, 10% para validação e 10% para teste.
O modelo pré-treinado escolhido foi o google/flan-t5-base que possue 248 M de parametros, que foi treinado com diversos corpus para diversas tarefas.
Durante o treinamento foi acompanhado os valores de rouge1 e rouge2 para avaliar a capacidade de aprendizado do modelo.
O modelo final foi avaliado com os dados de testes. A avaliação foi feita por dominio.
O critério de avaliação definido foi que os termos aspectos, opiniões e polaridades presentes na parafrase gerada pelo modelo, devem ser iguais aos termos usados na construção da parafrase fornecida durante o treinamento.
O prompt usado na tokenização dos dados de treinamento, apresenta uma instrução que o modelo deve seguir. Um exemplo de review / sentence de cada dominio e a parafrase gerada é apresentada ao modelo, seguida de uma nova sentence que o modelo deverá gerar, seguindo o formato do exemplo apresentado.
prefix_fs = "Follow the example, rewrite the sentence and answer in the same format of example.\n"
- Restaurant_sentence: 'Excellent atmosphere , delicious dishes good and friendly service.'
- Restaurant_target : "atmosphere is great because atmosphere is Excellent , dishes is great because dishes is delicious , service is great because service is good , service is great because service is friendly "
Reviews do mesmo dominio do exemplo usado são apresentados para o que o modelo gera um nova review no mesmo formato.
Triples
As reviews geradas pelo modelo são compostas pelos aspectos, opiniões e polaridades que ao final do treinamento são extraidas e avaliadas se cada conjunto de aspecto/opinião/polaridade estão presentes no mesmo conjunto usado na construção da parafrase de treinamento.
Exemplo:
Parafrase gerada pelo modelo:
"atmosphere is great because atmosphere is Excellent , dishes is great because dishes is amazing , service is great because service is good , location is bad because location is danger"
A triple ou o conjunto aspecto/opiniao/polaridade é extraida da parafrase:
As triples extraídas da parafrase gerada pelo modelo devem ser iguais as triples correspondentes no review de entrada.
A review apresentada ao modelo para que seja feita a parafrase, tem um conjunto que corresponde a parafrase correta relacionada a review apresentada ao modelo.
Métricas: Precision, Recall e F1-score
True Positive (TP)) corresponde a triple extraida da parafrase gerada pelo modelo que é exatamente igual a triple de entrada.
False Positive (FP) corresponde a triple extraída que não se encontra na triple de entrada.
A Quantidade de FN é a quantidade de triples de entrada menos quantidade de triples encontrados na saida.
A partir desses valores é calculada a Precisão, o Recall e F1-score do modelo.