-
Notifications
You must be signed in to change notification settings - Fork 0
Home
- Repositório dedicado a introduzir conhecimentos de Deep Learning aplicados à DataSets disponibilizados pela plataforma Youtube
"Vai Dar Like?"
Youtube é uma plataforma de compartilhamento de vídeos onde qualquer usuário pode assistir, compartilhar, dar like, comentar e dar upload dos seus próprios vídeos. Os serviços do Youtube podem ser acessados de qualquer plataforma que possua suporte para o Youtube.
Criado desde 2005 por três ex-funcionários do PayPal - Chad Hurley, Steve Chen e Jawed Karim, a plataforma ajuda milhões de pessoas a se interagirem em volta de conteúdos que elas têm em comum.
Os milhares de vídeos que são enviados para o Youtube diariamente possuem inúmeras maneiras de interação entre o produtor de conteúdo e o seu público, como likes, comentários e o compartilhamento de vídeo.
Nosso algoritmo auxilia criadores de conteúdo do YouTube a criarem títulos para obter um maior engajamento em seus vídeos. Utilizamos para tal, um dataset com dados sobre vídeos que fizeram sucesso no YouTube. Processamos esses dados utilizando uma Rede Neural Long Short Term Memory que será explicada logo a seguir.
A Modelagem de Linguagem é o principal problema para várias tarefas de processamento de linguagem natural, como falas para texto, sistema de conversação e resumo de texto. Um modelo de linguagem treinado aprende a probabilidade de ocorrência de uma palavra com base na sequência anterior de palavras usadas no texto. Os modelos de idiomas podem ser operados em nível de caractere, nível de sentença ou mesmo a nível de parágrafo. Neste projeto utilizamos um modelo de linguagem para gerar texto em linguagem natural implementando e treinando a Rede Neural Recorrente (RNN) de última geração. Fonte
A modelagem de linguagem requer dados de entrada de sequência, pois, dada uma sequência (de palavras/tokens), o objetivo é prever a próxima palavra.
Diferentemente das redes neurais feed-forward nas quais as saídas de ativação são propagadas apenas em uma direção, as saídas de ativação dos neurônios se propagam em ambas as direções (das entradas às saídas e das saídas às entradas) nas redes neurais recorrentes. Isso cria loops na arquitetura da rede neural, que atua como um "estado de memória" dos neurônios. Este estado permite que os neurônios se lembrem do que foi aprendido durante a execução.
O estado da memória nas RNNs oferece uma vantagem sobre as redes neurais tradicionais, mas um problema chamado Vanishing Gradient está associado a elas. Nesse problema, ao aprender com um grande número de camadas, fica muito difícil para a rede aprender e ajustar os parâmetros das camadas anteriores. Para resolver esse problema, um novo tipo de RNNs, chamado Modelos LSTMs (Long Short Term Memory), foi desenvolvido.
Os LSTMs têm um estado adicional chamado "estado da célula" através do qual a rede faz ajustes no fluxo de informações. A vantagem desse estado é que o modelo pode lembrar ou esquecer as inclinações mais seletivamente.
Obtém a sequência de palavras como entrada "Camada LSTM": Calcula a saída usando unidades LSTM. Adicionamos 100 unidades na camada, mas esse número pode ser ajustado posteriormente.
Uma camada de regularização que desliga aleatoriamente as ativações de alguns neurônios na camada LSTM. Ajuda na prevenção do excesso de encaixe.
Calcula a probabilidade da melhor palavra possível como saída. Deve-se executar este modelo para um total de 50 épocas, porém, pode-se aumentar o número de épocas.
Pré-requisitos: Docker.
- Primeiro passo: Inicie o container (Isso pode demorar um pouco). Pode necessitar de permissões de administrador para executar este comando.
$ docker-compose up
ou
$ sudo docker-compose up
- Segundo passo: Após inicialização do container, uma mensagem de log aparecerá.
-
Terceiro passo: Copie a mensagem de log similar a destacada na imagem e cole-a em seu navegador de preferência. Esse link em específico é necessário devido ao token que o jupyter notebook requere em sua inicialização
-
Quarto passo: Acesse o arquivo
.ipynb
no jupyter notebook dashboard. -
Quinto passo: Navegue até a opção cell e escolha a opção "Run All". O computador pode demorar um pouco para executar todos os algoritmos
Caso queira parar o container, apenas pressione Ctrl + C e espere.
Aluno | Matrícula | GitHub |
---|---|---|
Bruno Alves Félix | 16/0114705 | Bruno-Felix |
Caio Vinícius Fernandes de Araújo | 17/0138798 | caiovfernandes |
Felipe Dias Soares Lima | 16/0006163 | filypsdias |
Guilherme Mendes Pereira | 17/0129411 | guilherme-mendes |
Lucas Dutra Ferreira do Nascimento | 17/0050939 | lucasdutraf |
Lucas Fellipe Carvalho Moreira | 16/0133394 | lucasfcm9 |