Skip to content

Projeto que prevê o sucesso ou o insucesso do seu vídeo no YouTube.

License

Notifications You must be signed in to change notification settings

deeplearningunb/VaiDarLike

Repository files navigation

VaiDarLike

  • Repositório dedicado a introduzir conhecimentos de Deep Learning aplicados à DataSets disponibilizados pela plataforma Youtube

logo

"Vai Dar Like?"

Mas o que é o YouTube?

  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.

Sobre o Vai Dar Like

  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.

logo


Gerando títulos por LSTM

   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.

Italian Trulli


   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.

Adicionamos três camadas no modelo:

Camada de Entrada:

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.

Camada de Droupout:

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.

Camada opcional - Camada de Saída:

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.

Como executar

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

About

Projeto que prevê o sucesso ou o insucesso do seu vídeo no YouTube.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published