(Exercício elaborado com auxílio do Google Gemini com adaptações) Em Inteligência Artificial, especialmente em Processamento de Linguagem Natural (PLN), podemos representar palavras como vetores em um espaço vetorial de alta dimensão (como
\mathbb{R}^{50}, \mathbb{R}^{100} ou mais…). Essa representação é chamada de Word Embedding. A ideia principal é que palavras com significados semelhantes terão vetores que apontam para direções “próxima” neste espaço. A “proximidade” e “direção” são medidas usando os conceitos de Álgebra
Linear que você está estudando! O produto interno é a ferramenta matemática fundamental para medir essa similaridade. Neste exercício, vamos trabalhar com um modelo simplificado, usando vetores no
\mathbb{R}^{3} , para analisar o sentimento de palavras relacionadas a críticas de filmes. Usaremos o produto interno usual (ou produto escalar) de
\mathbb{R}^{3} .
Lembre-se da relação entre o produto interno e o ângulo
\theta entre dois vetores
u e
v :
\langle u, v\rangle=\|u\|\|v\| \cos (\theta)
A partir disso, a similaridade de cosseno, que varia de -1 (opostos) a 1 (mesma direção), é definida como:
\cos (\theta)=\frac{\langle u, v\rangle}{\|u\|\|v\|}
Um valor próximo de 1 significa alta similaridade, próximo de 0 significa baixa similaridade (ortogonais), e próximo de -1 significa que têm significados opostos.
Problema:
Um engenheiro de Machine Learning treinou um modelo simples e obteve os seguintes vetores (embeddings) para algumas palavras:
v_{1}= ótimo
=(2,2,1)
v_{2}= bom
=(1,2,1)
v_{3}= ruim
=(-1,-1,-2)
v_{4}= filme
=(0,1,-1)
Use o produto interno usual de
\mathbb{R}^{3},\left\langle\left(x_{1}, y_{1}, z_{1}\right),\left(x_{2}, y_{2}, z_{2}\right)\right\rangle=x_{1} x_{2}+y_{1} y_{2}+z_{1} z_{2} , para resolver as seguintes questões:
a) Análise de “Força” da Palavra (Norma): A norma de um vetor pode ser interpretada como a “força” ou “magnitude” do conceito que ele representa. Calcule a norma dos vetores para as palavras “ótimo” (
v_{1} ) e “bom” (
v_{2} ). Qual palavra tem maior magnitude no nosso modelo? Isso faz sentido intuitivamente?
b) Medindo a Similaridade (Similaridade de Cosseno):
(a) “ótimo” (
v_{1} ) e “bom” (
v_{2} )
(b) “bom”
\left(v_{2}\right) e “ruim”
\left(v_{3}\right)
(c) “bom” (
v_{2} ) e “filme” (
v_{4} )
c) Componente de Sentimento (Projeção Ortogonal): Suponha que o vetor “bom” (
v_{2} ) define a direção do “sentimento positivo”. Queremos saber o quão “positiva” a palavra “ótimo” (
v_{1} ) é em relação a “bom”. Para isso, calcule a projeção ortogonal de
v_{1} sobre
v_{2} .
d) Em Busca da Neutralidade (Ortogonalidade): Um conceito “neutro” em relação a sentimento seria ortogonal tanto à palavra “bom” quanto à “ruim”. Encontre um vetor
w=(x, y, z) não-nulo que represente uma palavra hipotética (“neutra”) que seja ortogonal a
v_{2}=(1,2,1) e a
v_{3}=(-1,-1,-2) simultaneamente.
e) Desafio - Classificando uma Frase Simples: Uma forma simples de representar uma frase é somar os vetores de suas palavras. Considere a frase “filme bom”. O vetor para essa frase seria
v_{\text {frase }}=v_{4}+v_{2} . Qual sentimento predomina nessa frase? Para descobrir, verifique se
v_{\text {frase }} está mais “próximo” (menor ângulo / maior similaridade de cosseno) do vetor “ótimo” (
v_{1} ) ou do vetor “ruim” (
v_{3} ).