- 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.
Com o aumento exponencial de upload de vídeos, é necessário que haja títulos e thumbnails que sejam chamativos o suficiente para que o público se interesse pelo seu conteúdo. Pensando nisso, desenvolvemos um algoritmo que 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: Virtualenv.
- Primeiro passo: Vá até a pasta raíz do projeto e crie um ambiente virtual.
$ virtualenv -p python3 venv
- Segundo passo: Após criação do ambiente, basta acessá-lo.
$ source venv/bin/activate
- Terceiro passo: Instale as dependências do projeto.
$ pip3 install -r requirements.txt
- Quarto passo: Execute o jupyter-notebook
$ jupyter-notebook
- 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 ambiente virtual, apenas digite deactivate
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 |