[Música] Olá pessoal tudo bem sejam bem-vindos novamente a nossa semana 4 da disciplina de PLN Hoje a gente vai falar sobre representação por meio de embebedens bom inicialmente a gente vai fazer uma introdução explicando para vocês as vantagens que a gente tem de utilizar essa representação dos nossos textos né E vamos falar um pouquinho sobre dois algoritmos diferentes para poder fazer esse tipo de representação que é o Word too Vec e o DOC togek né o áudio quando a gente trabalha com ordem ordem né e o DOC quando a gente utiliza um pouco desse conceito
para fazer representação de documento por inteiro né em vez de utilizar para representar palavras né então esse conceito que a gente tem de embadens né ele se refere uma representação e o espaço eleitoral contínuo essa aqui é a grande primeira importância primeira vantagem que a gente tem de utilizar esse meio de ver se a forma de representação como a gente já viu com representação um hot ou Megaforce por exemplo Só que nesse caso especificamente a gente vai tá muito preocupado né em reduzir a dimensionalidade de nossa representação porque quando a gente trabalhou com com hot
ou com Megaforce a gente viu que a gente tinha uma altíssima dimensionalidade para representar os nossos documentos principalmente quanto maior for a nossa coleção quanto maior for o nosso corpos maior ainda né E muito é o crescimento inclusive exponencial do número de palavras que a gente utiliza sendo cada uma delas um atributo do nosso da nossa Matriz né e a gente teria milhares né de atributos representando um documento e fala a questão de ser tudo representações e esparsas matrizes e espaços porque para cada documento a maioria dos atributos e até o valor igual a zero
né Então esse é um problema bem bem complicado né e a gente trabalha com ideias justamente quando o principal vantagem é resolver esse tipo de de problema né além Claro da gente trabalhar com essa representação numérica né que nos facilita para fazer cálculos e etc como a gente já viu disseminar idades aplicar algoritmos de aprendizado de máquina né mas o principal o objetivo que a gente tem aqui quando trabalha com a ideia é a redução de dimensionalidade o que também facilita muito né torna mais rápido né Não só nos nos garante um pouco de de
factibilidade né porque a gente consegue trabalhar com os algoritmos não a gente só em termos de resultado mas também em termos de conseguir rodar né porque Muitos algoritis são a gente acaba não conseguindo nem executar né quando a dimensionalidade é muito alta né também consome menos espaço tá então aqui um exemplinho para mostrar para vocês como é que a gente o que que seria desse né Qual que é a ideia por trás disso a gente teria que por exemplo um conjunto de documentos sendo representado utilizando espaço original aqui é só um exemplinho né com seis
seis documentos só que a gente teria uma matriz né uma matriz representando esses seis documentos com seis atributos uma matriz 6 por 6 né Cada tributo sendo uma palavra vamos dizer né E aqui embaixo a gente teria uma um espaço que a gente chama né seria aqueles mesmos documentos só que em vez de utilizar seis atributos né seis dimensões para representar cada documento a gente tá só duas e qual que é a ideia da gente utilizar em berlins aqui né claro que aqui é só uma forma de exemplificar né A ideia é que a gente
pode manter né utilizando em médias a mesma Matriz de similaridade por exemplo a gente mantém eh a ideia sempre claro a gente não quer reduzir a dimensionalidade as custas de perder informação então A ideia é reduzir a dimensionalidade mas manter né a representatividade de cada uma das cada uma dos documentos e manter essa Matriz de similaridade né Então essa aqui é a ideia principal que a gente tem aqui né Então aqui tem um outro um outro exemplo aqui só para a gente dar uma encontrar o que eu tô falando para vocês um outro espaço original
com uma outra representação e ML e a gente também se a gente for olhar aqui embora os valores sejam diferentes dessa Matriz de similaridade a gente tem aqui que os valores eles são correlacionados né então a distribuição é parecida né tanto é que se a gente for aplicar uma uma função de correlação de piercing entre essas duas matrizes antes e depois da redução de dimensionalidade a gente vai ter uma correlação de 95% acima de 95% né O que nos dá um indicativo aí de Que bom a gente tá reduzindo na dimensionalidade porque porque a gente
não precisa de todos esses atributos para poder é para poder representar o que a gente quer para poder encontrar os padrões né que a gente tá querendo encontrar aqui nos nossos dados tá Então essa ideia que a gente tem aqui nos Rebeldes né então além de fazer essa redução Isso é uma das principais vantagens né mas não é só isso que a gente ganha quando a gente utiliza em banners né a gente pode também por exemplo utilizar o eberis para a gente poder fazer uma representação no espaço vetorial Isso é uma vantagem que a gente
tem não só do ebenis mas de outras formas também de fazer a representação representação vetorial de dados por exemplo que são representados inicialmente por gráficos né então quando a gente traz por espaço vetorial a gente permite que qualquer algoritmo de aprendizado de máquina possa ser aplicado né Para poder trabalhar com esses dados né O que não acontece quando a gente vai morrer uma representação por gráficos né Tem alguns algoritmos específicos para eles mas não são todos eles a maioria dos algoritmos que a gente tem de aprendizado de máquina Ele trabalha com uma entrada sendo uma
tabela tributo valor né como é o caso quando a gente trabalha com esses ml que a gente tá vendo aqui agora né outra coisa interessante que a gente tem aqui é que a gente pode representar palavras né que a gente chama de world'embeddens né e cada palavra é o que a gente consegue fazer aqui é capturar semântica dessas palavras isso aqui é interessante também isso nos ajuda muito para poder entender né os dados e também para o ajuda bastante o nosso algoritmo de posteriormente que a gente vai utilizar de aprendizado de máquina né e permite
também que a gente faça operações Entre esses valores né porque de palavras que são operações que significativas entre essas palavras então aqui só para ilustrar para vocês um exemplo a gente poderia criar os apps por exemplo essas quatro palavras que a gente tem aqui ó King Queen Princess e Boy né que seria rei é rainha princesa e menino né garoto e aqui a gente tem algumas outras palavras que a gente tá tentando encontrar é isso aqui é só uma analogia é claro né a gente tá tentando encontrar as relações né semântica Entre esses caras aqui
então se a gente tem aqui por exemplo meio né que é masculino a gente tem aqui que tem uma relação de 99 0,99 com King que é rei 0.02 é bem baixa com Queen que a rainha porque a rainha do sexo feminino né princesa também 0.01 porque princesa também de sexo feminino e com boias 0.98 Então se a gente for ver né quando a gente tem essas palavras que a gente chama desembeddens é um grupo um conjunto reduzido de palavras que a gente pode inclusive utilizá-las para poder ter essa representação de outras palavras em função
dessas ideias que a gente tá fazendo aqui então a gente não precisa ter esses caras aqui que a gente tá vendo esses atributos que estão aqui essas palavras a gente não precisa ter eles como atributos a gente pode representar eles por meio dessas outras variáveis que a gente tá criando aqui esses nossos que a gente tá criando aqui né por meio dessas dessa representação que a gente tá vendo aqui né Então a partir daí a gente consegue fazer algumas operações também interessantes como por exemplo né o f de King menos o f de Queen ele
é similar é parecido com f de Man menos o f de o ímã né porque porque a gente consegue a gente consegue verificar que essas operações elas fazem um pouco de sentido né porque a gente tem aqui o rei tirando a diferença entre um rei a rainha é basicamente a mesma entre um ano e uma mulher né a gente consegue manter essa criar esse tipo de relação aqui com os nossos com as nossas variáveis né que mais que a gente tem aqui então pessoal outra coisa a gente também permite que um mesmo exemplo que eu
falei para vocês anteriormente né como a gente consegue representar no espaço vetorial aquelas operações que eu mostrei para vocês ali a gente pode ver também aqui ó por meio desses vetores né Então aqui tem o King Queen é basicamente aquela mesma função então a distância que a gente tem aqui que a gente viu Ela é bem parecida uma para outra então aqui a gente tem a nossa representação por meio do vetor para ilustrar O que foi colocado naquela naquele slides anterior nem aqui a gente poderia ser a mesma coisa né com outras palavras também né
outros exemplos para ilustrar esse essa esse potencial né que a gente acaba conseguindo né partir por meio de utilização então aqui um processo um procedimento um processo geral aqui da da utilização da embeldes né Então a partir de um texto uma sequência de palavras né a partir de um documento a gente passa por uma etapa de representação aprendizado da representação que pode ser por meio de de higiene e gramas por exemplo um aprendizado porque ou por exemplo também aqui que a gente está colocando que é uma rede neural porque porque esses documentos que a gente
tá esses métodos que a gente vai trabalhar hoje que é o World toveck Mais especificamente ele utiliza uma rede neural que a gente vai trabalhar um pouco mais aí aprender um pouco mais sobre rede neural a partir da próxima semana tá mas a ideia que utilizar essa rede neural para construir esses imbeldes então a gente viu as vantagens que a gente tem né viu alguns exemplos mas o que a gente precisa fazer aqui é sair de um texto e chegar nessa representação como que isso é feito é feito por meio de várias várias técnicas diferentes
vários algoritmos diferentes e esses que a gente vai ver hoje aqui utilizam redes neurais para poder fazer isso né então mais algumas explicações aqui né algumas vantagens que a gente tem quando a gente trabalha com Word embeldens Por exemplo então A ideia é que a gente utiliza as palavras né para poder fazer essa representação E aí a gente tem aqui nas nossas colunas por exemplo que são as nossas mblins essas palavras que a gente está utilizando o número bem reduzido né em relação a todas as palavras que a gente tem no vocabulário e aqui a
gente utiliza é outras palavras em vez de utilizar o documento inteiro outras palavras como que a gente representaria essas outras palavras em função das embebedens aqui ó basicamente essa ideia né da representação de Word em Bene estão aqui a gente tem asbenberries aqui a gente tem as palavras ó nas linhas né e a gente Claro naturalmente a gente acaba tendo essa redução de dimensionalidade né porque a gente tá trabalhando com esse com várias palavras que a gente pode colocar nas linhas aqui mas o número de dimensões vai ser só essas que a gente tá usando
como embediência né então acaba sendo uma dimensão fixa e a gente resolve aquele problema é a gente vai ter representações vetoriais densas ou seja não vai ser mais espaço como era anteriormente quando a gente trabalhava com um rock com com um mega Ford né Então aqui tem outros exemplos né que nem mencionei para vocês né dessas funções que a gente pode criar né além daquela que que a gente já viu anteriormente né do King do Man da woman e da da Cunha a gente pode ver também aqui algumas outras funções que são bem parecidas né
para que a gente e a representação geométrica disso né o porquê que a gente consegue fazer essa diferença né desses vetores quando somos vetores com outro quando diminui o vetor do outro etc tá bom o que que é o algoritmo então Word togeco World to Vec é uma abordagem é uma das mais populares para poder fazer essa geração de Word and baddens né que são os remédios de palavras né e Ela utiliza dessa técnica utiliza redes neurais para isso claro que hoje a gente não vai entrar em detalhes do comercial algoritmo funciona até porque a
gente não aprendeu redes neurais ainda mas nós vamos aprender a partir da próxima semana daí vocês podem estudar melhor e entender mais profundidade se for de interesse de vocês como que é feito essa implementação né como que isso é realizado de forma detalhada né nessa nesse tipo de representação né mas basicamente a gente tem duas abordagens duas variações dessa abordagem de Word que o Vec né que é o cebolal e o escape Grand né qual a diferença básica entre Essas duas aí né a diferença básica é a seguinte o cebol a gente utiliza como utiliza
para poder a gente fazer uma uma representação de poder fazer uma uma predição né uma utilização de uma palavra seguinte a gente utiliza todo o contexto que a gente tem na volta dela né que a gente chama de contexto que são o que são as palavras em volta dessa palavra então a gente utiliza as palavras que estão no entorno dela para poder estimar qual que vai ser a próxima né já o skipgram é o contrário a gente utiliza uma palavra pode dar prever vou tentar projetar Qual é o contexto Quais são as palavras no entorno
então a gente utiliza o contexto as palavras não entorno para projetar aquela palavra ou a gente utiliza uma palavra específica para projetar a o que o projetar o contexto ou seja as palavras que estão no entorno dessa palavra basicamente isso que diferencia abordagem sebosa abordagem tá algumas questões importantes aqui né o número de dimensões é uma questão importante esse mas que a gente tem aqui nesse tipo de representação porque ao mesmo tempo que a gente quer uma uma dimensionalidade pequena a gente também precisa ter né não adianta a gente querer usar um número muito reduzido
senão a gente acaba não conseguindo representar tudo que a gente quer né então aumentar essa representação ela vai aumentar o poder discriminativo né então quanto mais variáveis a gente tem a gente tem mais potencial para encontrar relações entre essas entre essas variáveis né encontrar padrões né Se a gente for eliminando muito a gente vai acabar perdendo um pouco disso então ao mesmo tempo que a gente precisa de um poder mais discriminativo né com a medida que a gente aumenta o número de dimensões são problemas da da maldição da dimensionalidade né a gente precisa de muito
mais linhas né se a gente aumenta muito o número de colunas a gente precisa de muito mais linhas para que a gente tenha o maior número possível de combinações de todas Não não nunca vai chegar todas as combinações possíveis né mas quanto maior o número de dimensões mais linhas a gente precisa para que a gente tenha uma boa representatividade desses dados né então ele tem que tomar um cuidado com isso também mas em geral esse número de dimensões ele acaba variando em cerca de centenas vamos dizer por exemplo 300 é 300 dimensões né o tamanho
do contexto que a gente viu ali né que isso aí também é um parâmetro do algoritmo que a gente vai quando a gente vai realizar tipicamente vai variar entre 5 e 10 né então a gente também tem o efeito de palavras frequentes e pouco discriminativas como por exemplo a palavra dubl inglês né ou algumas coisas do tipo o a quando é em português né então esses caras podem interferir nos resultados né então às vezes a gente pode a gente pode muitas vezes remover ou adotar um esquema de amostragem inversamente proporcional a frequência dessas palavras porque
elas não vão ter tanto peso porque normalmente elas vão aparecer em todos os documentos né então não adianta né não é são essas variáveis comuns que vão fazer que vão fazer a gente encontrar padrões nos documentos né e também é interessante a gente identificar a frases né pra geração de ideias como por exemplo o Apple Store Então essas palavras vem juntas né a gente tem também aqui só pra critério de informação né uma extensão né do do da abordagens keep Gran que é o conhecido Fest festa e teste é outro algoritmo para geração de Ambev
né Então em vez de utilizar palavras como entradas ela considera a sequência de caracteres né Diene caracteres por exemplo é um n entre três e seis tá bom tudo que a gente viu até agora para representar palavras né mas na verdade na verdade quando a gente quer trabalhar com representação de Ambev principalmente qualquer tipo de problema que a gente vai resolver de PLN a gente vai acabar trabalhando com texto inteiro com documento né então o que que a gente precisa fazer né representar o documento não só uma palavra como que a gente vai pegar essas
transformações e de suas representações de palavras mas encontrar uma forma de representar um documento a partir disso né e é esqueci doct houve que faz né é um algoritmo então que utiliza faz uso do das wordenberries né que já foram que foram criadas para poder fazer uma representação de um documento como um todo e não só de palavras né então aqui a gente tem algumas os nomes diferentes né como também conhecido como parágrafo vectors ou Doctor Vec né e ele tem duas abordagens aqui pessoal basicamente né esse cara utiliza o advec e implementa duas abordagens
básicas que é pvdeni o PV de Ball para poder fazer essa representação né e eu vou mostrar de novo para vocês aqui resumidamente vocês já leram já sabe né o PV DM pessoal então ele considera como entradas vetores vão Hot né de cada parágrafo e das palavras do contexto a gente pode dizer que é uma analogia né ao ser bom né porque Com Adição dessa utilização dos vetores dos vetores vão Hot dos parágrafos né E porque a entrada é similar né então A ideia é justamente é similar ao nosso cebola já o PV de Ball
ele tem como o objetivo prever as palavras do contexto dado parágrafo de entrada certo então a gente teria essa outra abordagem que tá aqui né e a gente também pode fazer essa analogia ao skip então só para ter essa ideia né dessas analogias que a gente pode fazer com óleo de Shrek em relação ao wordie Band tá então a gente consegue fazer essas representações utilizar as ordens para representar o documento por completo né e existem outras abordagens também né que são dois exemplos que a gente tá vendo aqui tá bom pessoal nós vamos ver isso
na prática Vamos fazer uma aula prática nossa próxima vídeo aula e a gente vai trabalhar com essas diferentes tipos de representação né então tô colocando para vocês aqui o que que a gente vai acabar trabalhando na prática quem que vai ser interessante né então a gente vai gerar tanto ódio como documentos né Vamos utilizar a biblioteca gensen tá aqui o link para você já ir dando uma olhadinha claro que eu vou passar isso de novo a gente já viu isso nas primeiras aulas né E algumas bibliotecas auxiliares aí para nós para nos ajudar para o
orçamento Então a gente vai aprender a geração de ordens né para uma base e também utilização dessa de ordem Bad já treinadas algoritmos já treinados né porque já treinado significa o quê que a gente já tem uma construção já rodo rede neural que a gente falou para vocês que essa nossa representação é baseada no algoritmo de rede neural tal e precisa de um processo de Treinamento a partir de um corpos A partir de um conjunto de documentos para poder fazer esse tipo de de representação Então a gente vai ver as duas coisas aprender a construir
e vai aprender a utilizar nessa aula de hoje então uma introdução sobre nbenes e vemos os dois principais as duas principais abordagens que a gente tem né para representação de de palavras né que são as winders e os documentos né que é representação de documentos né Na próxima vídeo aula então a gente vai ver uma aula prática trabalhar com esses ml que a gente aprendeu na aula de hoje tá bom então aqui tem umas referências né sobre foram utilizadas para preparação dessa aula e até a próxima pessoal um abraço [Música] [Música]