1 / 18

広告運用者のための

ベクトル化入門

文章を「座標」に変換して、勝ちCRを数字で見つける

← → キーまたは右下のボタンで進む

まず、課題を整理する

今やってること

勝ちCRを人間の感覚で判断している

「なんかこのフック刺さりそう」
「前に似たのが当たった気がする」

やりたいこと

勝ちCRかどうかを数字で判定したい

「この台本は勝ちパターンから
距離 0.12 → かなり近い」

そのために必要なのが ベクトル化

地図で考える

東京と大阪の「場所」は
2つの数字で表せる

東京 = (35.68, 139.77)
大阪 = (34.70, 135.50)

2つの座標があれば
距離を計算できる

→ 約400km

≈ 400km
経度 →
緯度 →

ベクトル化 = 文章版の「座標化」

"勝ち組の事務職で
年収500万を狙う"
[0.023, -0.156, 0.892,
 0.445, -0.032, 0.671,
 ... 3,072個の数字 ...]
地図ベクトル化
対象場所文章の「意味」
座標の数2個(緯度・経度)3,072個
人間が見える?見える見えない(AIが計算)
距離の計算kmコサイン類似度(0〜1)

3,072個の数字って何?

1つの台本が、こんな数字の列に変換される

↑ 実際のベクトルの一部(3,072個中の最初の60個)

地図が2次元で
「場所」を表すように

3,072次元で
「文章の意味」を表す

人間には想像できないけど、AIは計算できる

どうやって文章が数字になるのか

エンジンの仕組み

Step 1: AIが大量の文章を読んで学習済み

Geminiは数十億の文章を読んで、
「どの言葉がどの言葉の近くに出るか」を学習している

「おはよう」の近くによく出る言葉:
朝、起きる、元気、今日、ございます

「さようなら」の近くによく出る言葉:
帰る、別れ、また、明日、お元気で

Step 2: 3,072個の「意味の軸」で表現

各数字は「意味のある方向」を表す

ある軸: 「朝っぽさ」の強さ
別の軸: 「挨拶っぽさ」の強さ
また別の軸: 「別れっぽさ」の強さ
...×3,072個

※実際の軸は人間には名前をつけられない
抽象的なもの。上はイメージ

つまり各数字は「この文章は、この意味の方向にどれだけ強いか」を表している

「おはよう」と「さようなら」の数値化

3,072個のうち、わかりやすい「軸」をイメージで見る

「おはよう」のベクトル
朝っぽさ
0.92
挨拶っぽさ
0.78
別れっぽさ
0.05
フォーマル度
0.15
転職っぽさ
0.02
「さようなら」のベクトル
朝っぽさ
0.08
挨拶っぽさ 共通!
0.75
別れっぽさ
0.95
フォーマル度
0.45
転職っぽさ
0.01

「挨拶っぽさ」が両方高い → だから類似度 0.74
「朝っぽさ」と「別れっぽさ」が → だから1.0にはならない

※この軸名はイメージ。実際の3,072軸は人間が名前をつけられない抽象的なもの

コサイン類似度の計算方法

前ページの5軸を使って計算してみる

各軸のペアを掛け算する:

朝っぽさ
0.92 × 0.08
= 0.074
挨拶っぽさ
0.78 × 0.75
= 0.585
別れっぽさ
0.05 × 0.95
= 0.048
フォーマル
0.15 × 0.45
= 0.068
転職っぽさ
0.02 × 0.01
= 0.000
全部足す → 0.77 ÷ 1.57 = 0.49

1.57 = おはようの矢印の長さ(1.22) × さようならの矢印の長さ(1.29)

※ 5軸だけの例。3,072軸すべてで計算すると → 0.742

両方高い軸(挨拶っぽさ)の掛け算が大きい
→ 合計を引き上げる → 類似度が高くなる

÷ 矢印の長さ = 0〜1に正規化
→ 文が長くても短くても同じ基準で比較

なぜ「角度」で測るのか

距離じゃなくてコサイン(角度)を使う理由

距離で測ると困ること

「おはよう」と
「おはよう!今日も元気に頑張ろう!おはよう!」

→ 文章の長さが違うだけで
距離が離れてしまう

角度で測ると

意味が同じなら矢印の向きが同じ
文章が長くても短くても、向きは変わらない

→ 「何を言ってるか」だけで判定できる

「おはよう」 (短い文) 「おはよう!今日も…」 (長い文、同じ意味) 「転職したい」 (違う意味) 角度ほぼ0° = cos ≈ 1.0 向きが同じ → 長さが違っても コサイン類似度は高い!

コサインって何?

そう、サイン・コサイン・タンジェント
あのコサイン。

高校で習ったやつ

三角形の辺の比率 → cos θ

ベクトルでの使い方

2本の矢印の「角度」を測る
角度が小さい = 意味が近い

角度 0° → cos = 1.0(完全に同じ)
角度 40° → cos = 0.77(似てる)
角度 90° → cos = 0.0(無関係)

原点 「おはよう」 「おはようございます」 「転職したい」 小さい角度 = 意味が近い 大きい角度 = 意味が遠い cos(小さい角度) = 0.87 cos(大きい角度) = 0.56 ──────────────────

具体例で見てみよう

実際にGemini APIでベクトル化した結果(本物のデータ)

ほぼ同じ意味

「おはよう」vs「おはようございます」 0.866

同じ「挨拶」カテゴリ

「おはよう」vs「さようなら」 0.742
「おはよう」vs「こんにちは」 0.738

同じ「転職」トピック

「転職で年収UP」vs「勝ち組事務職で500万」 0.750

全く違うジャンル

「おはよう」vs「転職で年収UP」 0.564

AIは「意味の距離」を理解している

関係性類似度AIの理解
ほぼ同義 おはよう ↔ おはようございます 0.87 丁寧さが違うだけ
同カテゴリ おはよう ↔ さようなら 0.74 どっちも「挨拶」
同トピック 転職で年収UP ↔ 事務職500万 0.75 どっちも「転職×年収」
無関係 おはよう ↔ 転職したい 0.56 全く関係ない

つまりAIは「おはよう」と「さようなら」が
違う言葉だけど同じカテゴリ(挨拶)であることを
数字だけで理解している

これと同じことが、広告の台本でもできる

コサイン類似度のスケール感

全部の結果を数直線に並べると

0.4

SQL vs 桃太郎(長文)

0.49

0.51

SQL vs 君が代(短文)

桃太郎 vs ハリポタ(あらすじ)

0.59

0.74

おはよう vs さようなら

勝ちCR vs 負けCR

0.78

0.87

おはよう vs おはようございます

1.0

0.5未満 = ジャンル違い+長さの差が大きい 0.5台 = ジャンルが違う 0.7台 = 同カテゴリ 0.8台以上 = ほぼ同じ意味

広告CRでやってみた結果

Gemini Embedding API で実際のCR台本を比較

勝ちCR vs 負けCR 0.782
勝ちCR vs 天気予報 0.555
負けCR vs 天気予報 0.536

おはよう vs さようなら(0.74)と同じ感覚
→ 同じ「転職CR」だけど、中身の違いを検出できている

「勝ちゾーン」を作る

勝ちCRを10本ベクトル化すると
地図上にピンが集まる

勝ちゾーン(緑)

DProの売れてるCR 10本の
ベクトルが集まるエリア

負けゾーン(赤)

不調CRのベクトルが
集まるエリア

未開拓ゾーン(紫)

誰もいないエリア
→ 新規性があるかも?

勝ちゾーン
負けゾーン
未開拓ゾーン?

実際の使い方

📊
DProで
勝ちCR取得
🔢
台本を
ベクトル化
📍
勝ちゾーン
の重心を計算
新台本との
距離を測定

距離が近い = 勝ちパターンに似ている
距離が遠い = 勝ちパターンから外れている

💰

コスト: 数十本で数円

Gemini Embedding API

速度: 1秒以下

リアルタイム判定

🎯

精度: データ量で向上

勝ちCRが増えるほど精度UP

ベクトル化は万能じゃない

使うときに忘れちゃいけない3つのこと

① 時間軸

半年前の勝ちCRは今の勝ちCRじゃない。
直近1〜2ヶ月の勝ちCRに重みをつける必要がある。

② 密集 = 見飽きリスク

勝ちゾーンに密集しすぎると、視聴者が見慣れて見飽きる
→ 競合も同じゾーンに集まってくるから、むしろ少しずらした方が勝てる可能性がある。
→ ピンが全く立ってないエリアに新規性があることも。

③ テキスト以外の要素

台本の文字だけでは判断できない。UGC/ニュース風/実写…動画の「型」も勝敗を分ける。
→ テキストベクトル + フォーマット分類の組み合わせが必要。

まとめ

① ベクトル化 = 文章を数千個の数字(座標)に変換すること

② コサイン類似度 = 2本の矢印の角度で「意味の距離」を測る(三角関数のコサイン)

③ スケール感 = 0.5台(無関係)→ 0.7台(同カテゴリ)→ 0.8以上(ほぼ同じ)

④ 勝ちゾーン = 勝ちCRのベクトルが集まるエリア。新台本との距離を測る

⑤ 注意 = 時間軸・競合コピー・動画フォーマットは別で考慮が必要

次のステップ: DProから勝ちCRを10本集めて「勝ちゾーン」を作る