Sistemas de recomendação e biologia, onde os dados são inerentemente estruturados de maneira gráfica. Então, como funcionam as redes neurais do Graph? Por que nós precisamos deles?
A premissa da aprendizagem profunda
Nas tarefas de aprendizado de máquina que envolvem dados gráficos, geralmente queremos descrever cada nó no gráfico de uma maneira que permita alimentá-lo em algum algoritmo de aprendizado de máquina. Sem o DL, seria necessário extrair recursos manualmente, como o número de vizinhos que um nó possui. Mas este é um trabalho trabalhoso.
É aqui que o DL brilha. Ele explora automaticamente a estrutura do gráfico para extrair recursos para cada nó. Esses recursos são chamados de incorporações.
O interessante é que, mesmo que você não tenha absolutamente nenhuma informação sobre os nós, ainda poderá usar o DL para extrair embeddings. A estrutura do gráfico, ou seja, os padrões de conectividade, mantém informações viáveis.
Então, como podemos usar a estrutura para extrair informações? O contexto de cada nó no gráfico pode realmente nos ajudar?
Aprendendo com o contexto
Um algoritmo bem conhecido que extrai informações sobre entidades usando apenas o contexto é o word2vec . A entrada para word2vec é um conjunto de frases e a saída é uma incorporação para cada palavra. Da mesma forma que o texto descreve o contexto de cada palavra por meio das palavras que o cercam, os gráficos descrevem o contexto de cada nó por nós vizinhos.
Enquanto no texto as palavras aparecem em ordem linear, nos gráficos não é o caso. Não há ordem natural entre os nós vizinhos. Portanto, não podemos usar o word2vec ... ou podemos?
Redução como um matemático badass
Podemos aplicar a redução da estrutura gráfica de nossos dados em uma estrutura linear, para que as informações codificadas na estrutura gráfica não sejam perdidas. Com isso, poderemos usar o bom e velho word2vec.
O ponto principal é realizar passeios aleatórios no gráfico. Cada caminhada começa em um nó aleatório e executa uma série de etapas, onde cada etapa vai para um vizinho aleatório. Cada caminhada aleatória forma uma frase que pode ser inserida no word2vec. Esse algoritmo é chamado node2vec
Estudo de caso
O sistema de feed do Avance Network reúne muitos dados, alguns dos quais podem ser representados de maneira gráfica. Vamos inspecionar um tipo de dados como um estudo de caso para usar o node2vec.
Cada artigo nomeou entidades - as entidades descritas pelo título. Por exemplo, o item "os cães mais fofos do planeta" contém as entidades "cachorro" e "planeta". Cada entidade nomeada pode aparecer em muitos itens diferentes.
Podemos descrever esse relacionamento usando um gráfico da seguinte maneira: cada nó será uma entidade nomeada e haverá uma borda entre dois nós se as duas entidades nomeadas aparecerem no mesmo item:
Agora que podemos descrever nossos dados de maneira gráfica, vamos executar o node2vec para ver quais insights podemos aprender com os dados.
Após aprender a incorporação de nós, podemos usá-los como recursos para uma tarefa a jusante, por exemplo, previsão de CTR (Taxa de cliques). Embora possa beneficiar o modelo, será difícil entender as qualidades aprendidas pelo node2vec.
Outra opção seria agrupar combinações semelhantes e colorir os nós de acordo com o cluster associado:
Legal! Os clusters capturados pelo node2vec parecem ser homogêneos. Em outras palavras, os nós que estão próximos um do outro no gráfico também estão próximos no espaço de incorporação. Tomemos, por exemplo, o cluster laranja - todas as suas entidades nomeadas estão relacionadas ao basquete.
Você pode se perguntar qual é o benefício de usar o node2vec sobre os algoritmos gráficos clássicos, como algoritmos de detecção da comunidade (por exemplo, o algoritmo Girvan-Newman ). A captura da comunidade à qual cada nó pertence pode definitivamente ser feita usando esses algoritmos, não há nada de errado com ele. Na verdade, isso é exatamente a engenharia de recursos. E já sabemos que o DL pode poupar o tempo de criar cuidadosamente esses recursos. Então, por que não aproveitar esse benefício? Também devemos ter em mente que o node2vec aprende incorporações de alta dimensão. Esses casamentos são muito mais ricos do que meramente pertencer à comunidade.
Adotando outra abordagem
Usar o node2vec nesse caso de uso pode não ser a primeira ideia que vem à mente. Pode-se sugerir simplesmente usar o word2vec, em que cada sentença é a sequência de entidades nomeadas dentro de um único item. Nesta abordagem, não tratamos os dados como tendo uma estrutura gráfica. Então, qual é a diferença entre essa abordagem - que é válida e node2vec?
Se pensarmos sobre isso, cada frase que geramos na abordagem word2vec é um passeio no gráfico que definimos anteriormente. O node2vec também define passeios no mesmo gráfico. Então eles são iguais, certo? Vamos dar uma olhada nos clusters que obtemos pela abordagem word2vec:
Agora, o cluster de "basquete" é menos homogêneo - contém nós laranja e azul. A entidade nomeada "Basketball", por exemplo, era de cor laranja, enquanto os jogadores de basquete eram de azul!
Mas por que isso aconteceu?
Nesta abordagem, cada caminhada no gráfico é composta apenas por entidades nomeadas que aparecem juntas em um único item. Isso significa que estamos limitados a passeios que não vão além da distância 1 do nó inicial. No node2vec, não temos esse limite.
Como cada abordagem usa um tipo diferente de caminhada, os embeddings aprendidos capturam um tipo diferente de informação.
Para torná-lo mais concreto, considere o seguinte exemplo: digamos que temos dois itens - um com entidades nomeadas A, B, C e outro com D, B, E. Esses itens induzem o seguinte gráfico:
Na abordagem simples word2vec, geraremos as seguintes frases: [A, B, C] e [D, B, E]. Na abordagem node2vec, também podemos obter frases como [A, B, E]. Se buscarmos este último no processo de treinamento, aprenderemos que E e C são intercambiáveis: o prefixo [A, B] será capaz de prever C e E. Portanto, C e E receberão embocamentos semelhantes e terão ser agrupados.
Takeway
É importante usar a estrutura de dados correta para representar seus dados. Cada estrutura de dados implica em um algoritmo de aprendizado diferente, ou seja, introduz um viés indutivo diferente.
Identificar seus dados tem uma certa estrutura; portanto, você pode usar a ferramenta certa para o trabalho, pode ser um desafio.
Como muitos conjuntos de dados do mundo real são naturalmente representados como gráficos, achamos que as Redes Neurais do Gráfico são um item indispensável em nossa caixa de ferramentas como cientistas de dados.