Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Snowflakeでキーワード抽出とカテゴリ分類 RTA

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for jewel12 jewel12
November 07, 2025
410

Snowflakeでキーワード抽出とカテゴリ分類 RTA

Avatar for jewel12

jewel12

November 07, 2025
Tweet

Transcript

  1. レギュレーション • 状況 ◦ 広告リクエストの発生しているページのタイトルがある ▪ ユニークなページ数が1日で数百万ページ ◦ Snowflakeにおいてある •

    制約 ◦ 言語設定:日本語 ◦ まあまあのキーワード感 ▪ カテゴリーにして使うことが多いので大雑把でいいはず ◦ カテゴリー ▪ IAB Content Taxonomy 3.1 • インターネット広告業界におけるメディアコンテンツの共通認識の取れた分類 ▪ 分類精度は……Any%(まず様子を見たい) ▪ できれば新しい語にも対応したい • Glitchless(バグ技使用禁止)
  2. レギュレーション • 状況 ◦ 広告リクエストの発生しているページのタイトルがある ▪ ユニークなページ数が1日で数百万ページ ◦ Snowflakeにおいてある •

    制約 ◦ 言語設定:日本語 ◦ キーワード ▪ カテゴリーにして使うことが多いのでキーワード感は大雑把でいい ◦ カテゴリー ▪ IAB Content Taxonomy 3.1 • インターネット広告業界におけるメディアコンテンツの共通認識の取れた分類 ▪ 分類精度は……Any%(まず様子を見たい) ▪ できれば新しい語にも対応したい ◦ シュッと試すレベルのタスクとしては現実的なコスト感であること ←New! • Glitchless(バグ技使用禁止)
  3. 今回構築した攻略チャート • キーワード抽出 ◦ UDF(User Defined Function)で名詞連続をとる ▪ 形態素の取得にSudachiを使う ◦

    ページタイトルによく出る単語は除く ▪ どこにでも出る単語はキーワードではない • カテゴライズ ◦ 学習データ作成 ▪ キーワードを分類して学習データを作成 ◦ 埋め込みベクトルの類似度でカテゴリを出す ▪ 学習データと分類対象にベクトル埋め込みをする ▪ 学習データ各行とのコサイン類似度を取って、類似度が一番高い学習 データのカテゴリを出力する
  4. キーワード抽出 • 1. UDF(User Defined Function)で名詞連続をとる ◦ 形態素の取得にSudachiを使う ▪ Snowflake

    Conda チャネルを使ってインストールできる&辞書も用意しな くてOKなので、ライブラリのアップロード作業が要らない ▪ Vectorized UDFを使う • 辞書ロードのオーバーヘッドを減らしたり • 2. ページタイトルによく出る単語は除く ◦ どこにでも出る単語はキーワードではない ▪ みんなで北海道旅行へ行こう! | ECナビ • みたいにサイト名が入ることが多い ▪ ページURLのドメインごとにDF(Document Frequency)を取り、DF/ペー ジ数でスコア化
  5. カテゴライズ • 1. 学習データ作成 ◦ キーワードを分類して学習データを作成 ▪ SNOWFLAKE.CORTEX.AI_CLASSIFY ▪ 今回は

    IAB Taxonomy Category Tier1 • 2. 埋め込みベクトルの類似度でカテゴリを出す ◦ 学習データと分類対象にベクトル埋め込みをする ▪ SNOWFLAKE.CORTEX.EMBED_TEXT ◦ 学習データ各行とのコサイン類似度を取って、一番高い学習データのカテゴリ を出力する ▪ 最近出てきた単語でも特徴を取れると期待 ▪ SNOWFLAKE.ML.CLASSIFICATIONはVector対応しておらず断念 ▪ 注意:素直に実装するとO(MN)のオーダーになる
  6. keyword category キムタク Entertainment 注意喚起 Sensitive Topics リライブシャツ Style &

    Fashion 急性心筋梗塞 Disasters 命 Entertainment 衝撃展開 Disasters VIVANT Entertainment 婚約 Family and Relationships 青木理 Entertainment オンラインゲーム Video Gaming 徳島市 Travel W決勝進出 Sports 人材確保 Careers 上乗せ額 Business and Finance 天才リベロ Sports クマ出没 Maps & Navigation サッカー部 Sports 重傷 Automotive
  7. まとめ • Snowflake上にあるデータでのキーワード抽出とカテゴライズのRTAをしました ◦ UDFで形態素解析するときは Sudachiが早い ◦ 埋め込みベクトルの類似度を使えばカテゴライズもクエリだけで終わる • 用途やニーズに合わせて作り込んでいきましょう

    ◦ キーワード ▪ 例えば名詞句を認識できないので粒度が細かすぎたりする ◦ カテゴリ ▪ 分類精度Any%だと評価基準がガバガバなのでテストデータを作って評価していきたい ▪ もうちょっと粒度を細かくしたい • IAB Content Taxonomyにはまだ細かいTierがある