나뭇잎 교과서

n차원 벡터의 내적

평면과 공간에서 내적은 \(a_1b_1 + a_2b_2 + a_3b_3\)처럼 같은 자리의 성분을 곱해 더했습니다. 이 계산은 성분이 몇 개든 그대로 할 수 있고, 그 결과로 n차원 벡터 사이의 "각"도 정할 수 있습니다. 이 절에서는 영화 장르별 별점을 벡터로 보고 코사인 유사도로 취향이 비슷한 사람을 찾는 추천의 원리를 체험하고, 내적의 크기에 한계가 있다는 코시-슈바르츠 부등식을 확인합니다.

본문

n차원 벡터의 내적

본문

뉴스 사이트는 기사 아래에 비슷한 기사를 추천한다. 기사마다 "선거", "후보", "투표", "경기"라는 네 단어가 몇 번 나오는지 세어 보니, 기사 A는 \((3, 0, 2, 1)\), 기사 B는 \((1, 1, 2, 0)\), 기사 C는 \((0, 4, 0, 1)\)이었다. 기사 A와 더 비슷한 것은 B일까, C일까? 단어 수를 4차원 벡터로 보면 두 벡터가 얼마나 같은 방향을 향하는지를 각으로 잴 수 있다고 한다. 4차원에서 각이란 무엇일까?

기사선거후보투표경기A와의 코사인 A30211 B11200.764 C04010.065 코사인이 1에 가까울수록 두 기사의 단어 구성이 비슷하다.
그림 1. 단어 수 벡터 사이의 각의 코사인으로 기사의 비슷한 정도를 잰다.
먼저 알아야 할 것벡터의 내적과 수직 조건, 벡터의 성분, \(n\)차원 벡터(n차원 벡터).

1.6.1성분끼리 곱해 더하다

평면과 공간의 내적은 성분끼리 곱해 더한 값이었고, 그 값은 두 벡터의 크기와 사잇각의 코사인의 곱과 같았다. \(n\)차원 벡터에서도 내적을 성분끼리 곱해 더한 \(\vec a\cdot\vec b = a_1b_1 + \cdots + a_nb_n\)으로 정한다. 벡터의 크기는 자기 자신과의 내적의 제곱근 \(|\vec a| = \sqrt{\vec a\cdot\vec a}\)로 정한다. 그러면 4차원 이상에서는 각을 그림으로 잴 수 없어도, 내적과 크기로 각을 거꾸로 정의할 수 있다.

정리 1.6.1 코시–슈바르츠 부등식과 사잇각

\(\mathbb{R}^n\)의 벡터 \(\vec a\), \(\vec b\)에 대해 \[|\vec a\cdot\vec b| \le |\vec a||\vec b|\]이고, 등호는 한 벡터가 다른 벡터의 실수배일 때 성립한다. 그래서 영벡터가 아닌 두 벡터의 사잇각 \(\theta\)를 \(\cos\theta = \dfrac{\vec a\cdot\vec b}{|\vec a||\vec b|}\)로 정할 수 있다.

각을 코사인으로 정하려면 그 값이 \(-1\)과 1 사이에 있어야 하는데, 코시–슈바르츠 부등식이 이를 보장한다. 증명은 \(|\vec a - t\vec b|^2 \ge 0\)을 \(t\)의 이차식으로 전개해, 이 이차식이 늘 0 이상이므로 판별식이 0 이하라는 데서 나온다. 그래서 어떤 차원에서든 내적이 0이면 두 벡터가 수직이라 하고, 코사인이 1에 가까우면 거의 같은 방향이라 한다.1

1.6.2길이가 아니라 방향을 비교하다

긴 기사는 모든 단어가 많이 나와 단어 수 벡터가 길다. 내적만으로 비교하면 길이가 긴 기사가 늘 비슷하다고 나오므로, 내적을 두 크기의 곱으로 나눈 코사인으로 비교한다. 그러면 기사의 길이와 상관없이 단어의 비율, 곧 벡터의 방향만 비교하게 된다. 같은 기사를 두 번 이어 붙여 모든 단어 수가 두 배인 벡터는 원래 기사와 코사인이 1로, 완전히 같은 방향이다. 단어 수는 음수가 아니므로 코사인은 0에서 1 사이에 있다.

양A와 BA와 C 내적3 + 0 + 4 + 0 = 70 + 0 + 0 + 1 = 1 크기의 곱√14 × √6 ≈ 9.17√14 × √17 ≈ 15.43 코사인0.764 (약 40°)0.065 (약 86°)
그림 2. A와 C는 거의 수직이어서 겹치는 단어가 거의 없다.

같은 생각으로 통계의 상관계수도 읽을 수 있다. 학생 네 명의 수학 점수가 \((1, 2, 3, 4)\), 영어 점수가 \((2, 1, 4, 3)\)이라 하자(단위는 10점). 각 점수에서 평균 2.5를 빼면 \(\vec x = (-1.5, -0.5, 0.5, 1.5)\), \(\vec y = (-0.5, -1.5, 1.5, 0.5)\)가 되는데, 이 두 4차원 벡터의 코사인 \(\dfrac{\vec x \cdot \vec y}{|\vec x||\vec y|} = \dfrac{3}{\sqrt5\sqrt5} = 0.6\)이 바로 두 과목 점수의 상관계수이다. 평균을 빼는 까닭은 점수가 모두 높거나 낮은 것과 상관없이, 평균보다 높은지 낮은지가 함께 움직이는지만 보려는 것이다. 그래서 상관계수가 언제나 \(-1\)과 1 사이에 있는 것도 코시–슈바르츠 부등식 덕분이고, 상관계수 0은 평균을 뺀 두 자료 벡터가 서로 수직이라는 뜻이다.

1.6.3예제 풀이

예제 1.6.2

처음 질문의 기사 A와 B, A와 C의 코사인 유사도와 사잇각을 구하여라. 기사 D는 \((6, 0, 4, 2)\)이다. A와 D의 코사인은 얼마이며, 코시–슈바르츠 부등식의 등호가 성립하는가?

\(|\vec A| = \sqrt{9 + 0 + 4 + 1} = \sqrt{14}\), \(|\vec B| = \sqrt{6}\), \(|\vec C| = \sqrt{17}\)이다. \(\cos\theta_{AB} = \dfrac{7}{\sqrt{14}\sqrt6} \approx 0.764\)이므로 약 40°이고, \(\cos\theta_{AC} = \dfrac{1}{\sqrt{14}\sqrt{17}} \approx 0.065\)이므로 약 86°이다. 그래서 A와 비슷한 기사는 B이다. 실제로 A와 B는 선거와 투표를 다루고, C는 경기를 다룬다.

\(\vec D = 2\vec A\)이므로 \(\vec A\cdot\vec D = 2\times14 = 28\), \(|\vec A||\vec D| = \sqrt{14}\times2\sqrt{14} = 28\)이어서 코사인이 1이고 부등식의 등호가 성립한다. 기사 D는 A와 단어 비율이 똑같은, 길이만 두 배인 기사이다. 즉 \(n\)차원 벡터의 내적은 성분끼리 곱해 더해 정하고, 코시–슈바르츠 부등식 덕분에 그림으로 그릴 수 없는 차원에서도 사잇각을 정의할 수 있으며, 코사인은 크기와 상관없이 방향이 비슷한 정도를 잰다.

아래 탐구 카드에서 여러 기사의 단어 수 벡터로 코사인 유사도를 계산해 비슷한 기사를 골라 보고, 코시–슈바르츠 부등식이 언제 등호가 되는지 확인해 보자.

  1. 이 부등식은 1821년 프랑스의 코시가 합의 꼴로, 1888년 독일의 슈바르츠가 적분의 꼴로 증명했다. 그사이 1859년 러시아의 부냐콥스키도 적분의 꼴을 발표해 세 사람의 이름을 함께 붙이기도 한다.
마무리

\(n\)차원 벡터의 내적은 성분끼리 곱해 더한 값이고, 크기는 자기 자신과의 내적의 제곱근이며, 코시–슈바르츠 부등식 \(|\vec a\cdot\vec b| \le |\vec a||\vec b|\) 덕분에 \(\cos\theta = \vec a\cdot\vec b/(|\vec a||\vec b|)\)로 사잇각을 정의한다. 코사인은 벡터의 길이와 상관없이 방향이 비슷한 정도를 재므로 자료의 비슷함을 비교하는 데 쓴다. 처음 질문에서 기사 A와의 코사인은 B가 약 0.76, C가 약 0.07이어서 B가 더 비슷하다.

탐구 1

컴퓨터는 어떻게 비슷한 기사를 골라낼까?

내적과 코사인 유사도 · 예측→확인

가상 기사 제목이다. 단어 [경기, 골, 감독, 금리, 주가]가 나온 횟수를 벡터로 적었다.

먼저 기준 기사와 가장 비슷한 기사 하나를 누르자. 그 뒤에 내적과 코사인 유사도가 나타난다.

  1. 질문뉴스 앱은 방금 읽은 기사와 "비슷한" 기사를 추천한다. 문장을 이해하지 못하는 컴퓨터가 두 글이 비슷한지를 어떻게 수 하나로 판단할까?
  2. 복원평면벡터에서 \(\vec{a}\cdot\vec{b} = |\vec{a}||\vec{b}|\cos\theta\)였다. 두 벡터의 방향이 같으면 \(\cos\theta = 1\), 수직이면 0이다.
  3. 설명\(\mathbb{R}^n\)에서도 내적을 \(\vec{a}\cdot\vec{b} = a_1b_1 + \cdots + a_nb_n\), 크기를 \(|\vec{a}| = \sqrt{\vec{a}\cdot\vec{a}}\)로 정한다. 그러면 \(\cos\theta = (\vec{a}\cdot\vec{b}) / (|\vec{a}||\vec{b}|)\)로 두 벡터 사이의 각을 정의할 수 있다(이 값이 \(-1\)과 1 사이라는 것은 다음 카드의 코시-슈바르츠 부등식이 보장한다). 내적이 0이면 두 벡터는 수직(직교)이다.
  4. 연결글을 단어 횟수 벡터로 바꾸고 \(\cos\theta\)를 재는 것을 코사인 유사도라고 한다. 검색 엔진, 추천 시스템, 인공지능의 단어 임베딩이 모두 이 계산을 쓴다.
  5. 적용기준 기사를 바꿔 가며 가장 비슷한 기사를 예측해 보자. 그다음 "두 번 이어 붙이기"를 눌러 기사 길이만 두 배로 만들면 내적과 코사인 유사도가 각각 어떻게 되는지 보자.
  6. 판단내적은 글이 길수록 커진다. 그래서 내적만 비교하면 긴 글이 무조건 "비슷한" 글이 된다. 크기로 나누어 방향만 비교해야 공정하다. 또 "경기"처럼 뜻이 둘인 단어는 횟수만으로 구분되지 않는다.

확인조건이 달라지면

\(\vec{a} = (1, 2, 2)\), \(\vec{b} = (2, 0, -1)\)일 때 옳은 것은?

탐구 2

내적은 두 크기의 곱보다 커질 수 있을까?

코시-슈바르츠 부등식 · 조작
\(|\vec{a}\cdot\vec{b}|\)
—
\(|\vec{a}||\vec{b}|\)
—
\(|\vec{a}+\vec{b}|\) vs \(|\vec{a}|+|\vec{b}|\)
—
\(f(t)\)의 최솟값
—

보라색은 \(\vec{a} + t\vec{b}\)이다. 오른쪽 그래프는 그 크기의 제곱이다. 끝점은 0.5 간격으로 맞춰진다.

  1. 질문평면에서는 \(\vec{a}\cdot\vec{b} = |\vec{a}||\vec{b}|\cos\theta\)이므로 \(|\vec{a}\cdot\vec{b}| \le |\vec{a}||\vec{b}|\)가 당연하다. 그런데 각을 그릴 수 없는 \(\mathbb{R}^5\)에서는 각을 내적으로 정의했다. 그 정의가 말이 되려면 무엇이 먼저 보장되어야 할까?
  2. 복원이차함수 \(f(t) = pt^2 + qt + r\) \((p > 0)\)이 모든 \(t\)에서 \(f(t) \ge 0\)이면 판별식 \(q^2 - 4pr \le 0\)이다.
  3. 설명\(f(t) = |\vec{a} + t\vec{b}|^2\)은 크기의 제곱이라 늘 0 이상이다. 전개하면 \(f(t) = |\vec{b}|^2t^2 + 2(\vec{a}\cdot\vec{b})t + |\vec{a}|^2\)이므로 판별식에서 \(4(\vec{a}\cdot\vec{b})^2 - 4|\vec{a}|^2|\vec{b}|^2 \le 0\), 곧 코시-슈바르츠 부등식 \(|\vec{a}\cdot\vec{b}| \le |\vec{a}||\vec{b}|\)을 얻는다. 등호는 포물선이 \(t\)축에 닿을 때, 곧 \(\vec{a} + t\vec{b} = \vec{0}\)인 \(t\)가 있어 두 벡터가 평행할 때이다. 이 증명은 차원과 상관없이 성립하므로 \(\mathbb{R}^n\)의 \(\cos\theta\)가 \(-1\)과 1 사이에 들어온다.
  4. 연결이 부등식에서 삼각부등식 \(|\vec{a}+\vec{b}| \le |\vec{a}| + |\vec{b}|\)이 나온다. 통계의 상관계수가 \(-1\)과 1 사이인 이유도 같은 부등식이다.
  5. 적용\(t\)를 움직여 보라 벡터가 가장 짧아지는 곳을 찾자. 그때 보라 벡터와 \(\vec{b}\)는 어떤 관계인가? 이어서 \(\vec{a}\)와 \(\vec{b}\)를 평행하게 만들면 포물선은 어떻게 되는가?
  6. 판단\(\vec{b} = \vec{0}\)이면 \(f\)는 이차함수가 아니어서 판별식을 쓸 수 없다. 이때는 양변이 모두 0이라 따로 확인한다. 증명에서 나누거나 판별식을 쓰기 전에는 늘 이런 경우를 먼저 빼야 한다.

확인조건이 달라지면

\(|\vec{a}| = 3\), \(|\vec{b}| = 4\)일 때 \(\vec{a}\cdot\vec{b}\)가 가질 수 있는 값의 범위는?

AI 출제 문항연습문제 풀어보기12문항
Esc

↑↓ 고르기Enter 열기