Slide 1

Slide 1 text

電通国際情報サービス(ISID) X(クロス)イノベーション本部 AIテクノロジー部 AIトランスフォーメーションセンター ファイサル ハディプトラ 検索システムにAIを搭載する際の考え方 ― 基礎から展望まで

Slide 2

Slide 2 text

本⽇の狙い ▷ 話すこと ○ 検索システムに活⽤できるAI技術の紹介 ○ 各AI技術で達成できること ▷ 話さないこと ○ 細かな処理やコードなど 2

Slide 3

Slide 3 text

⾃⼰紹介 所属: 電通国際情報サービス(ISID) X(クロス)イノベーション本部 AI トランスフォーメーションセンター 経歴: 2014年10月:大学卒業(院 2015年4月 : ISIDへ新卒入社 現在は、最先端AI技術の研究開発と並行してAIを使った自社製品の開発に尽力中。 得意技術: 自然言語処理、クラウド技術(主にAzure) Twiter : @faisal_putra 趣味: 写真撮影、バドミントン、サイクリング(最近) 3 ファイサル ハディプトラ

Slide 4

Slide 4 text

4 アジェンダ ① AI搭載検索システムの概要 ② AI搭載検索システムの要素技術 ③ AI搭載検索システムを実現するためのロードマップ ④ まとめ

Slide 5

Slide 5 text

AI搭載検索システムの概要 5

Slide 6

Slide 6 text

検索といえば、Google検索 6 昔(2003年) 今(2022 年) Google検索はただのキーワード検索から、AIを利⽤することでかなり進化した。

Slide 7

Slide 7 text

今の検索システムに求められるもの ドメイン理解 (Domain-aware) クエリ内の単語が指定する概念 を理解し、自動的にその概念に カテゴリや属性などを付与する 。 例: 「ISID」は「会社」という概 念として認識するので、「本社 の所在地」や「従業員数」を理 解する。 文脈とユーザー理解 (Contextual and Personalized) ユーザーの好み・プロフィール をもとに検索結果が出す。 例: エンジニアが「python」と検 索すると蛇ではなくプログラミ ング言語 対話型 (Conversational) 自然言語を理解し、前に検索し たものも考慮する。 例: コロナ検索した後、次に modernaを検索するとワクチン 情報が出てくる。 マルチモーダル テキストに限らず、音声や画像 や映像などにも対応する。 知能的 (Intelligent) 誤字や自動補完機能などデータ が溜まっていけばいくほど自己 改善する。 支援型 (Assistive) 検索以上に自動的に適切なアク ションを実行する。 例: 映画名を検索すると、検索結 果で「予約ボタン」を表示する。 これらの機能を実現するためにAI技術が必要 → AI搭載検索システム 7

Slide 8

Slide 8 text

AI 機械学習 深層学習 検索 AI搭載検索システムとは 8

Slide 9

Slide 9 text

9 AI 機械学習 深層学習 検索 AI搭載検索システムとは • 質問応答システム • バーチャルアシスタント • チャットボット • ルールベース関連度調整 • など。。。 • 協調フィルタリング • ランキング学習 (Learning-to-Rank) • セマンティック検索 • パーソナライズド検索 • クラスターリング • NLP/エンティティリンキング • テキスト分類 • シグナルブースティング • など。。。 • ニューラル検索 • Embeddings (ベクトル検索) • 画像/音声検索(マルチモーダル) • など。。

Slide 10

Slide 10 text

10 様々な技術があるけど。。。

Slide 11

Slide 11 text

11 どうやって検索に適切に活⽤できるか?

Slide 12

Slide 12 text

AI搭載検索システムの要素技術 12

Slide 13

Slide 13 text

13 検索のゴール: ユーザーの意図を理解する ユーザー 意図 コンテンツを理解 ユーザーを理解 ドメインを理解

Slide 14

Slide 14 text

14 コンテンツを理解 ユーザー 意図 コンテンツを理解 ユーザーを理解 ドメインを理解 キーワード 検索

Slide 15

Slide 15 text

15 キーワード検索(検索エンジン) キーワード検索では、検索対象⽂書を処理して転置インデックスに変換する。 検索する際は、2つの処理を⾏う: ①クエリに該当する⽂書フィルターリング、②クエリと⽂書の関連度を計算。 単語 ⽂書 (d) … … りんご doc1, doc3, doc4, doc5 … … オレンジ doc2, doc4, doc6 … … ジュース doc1, doc3, doc4, doc7, doc8 クエリ(q) = りんごジュース りんご りんご ジュース ジュース doc3 doc4 doc1 doc7 doc8 doc5 転置インデックス ①フィルターリング ②関連度計算(BM25)

Slide 16

Slide 16 text

16 キーワードだけで求められる結果が得られない 「iPad」を検索したいのに、ほぼiPadのアクセサリーが出てきちゃった。

Slide 17

Slide 17 text

17 ユーザーを理解 ユーザー 意図 コンテンツを理解 ユーザーを理解 ドメインを理解 キーワード 検索 協調 フィルターリング (推薦)

Slide 18

Slide 18 text

18 推薦システム(Recommender System) ユーザーは特定のクエリを⼊⼒せずに、システムはユーザーが探しそうなものを推薦してくれる。

Slide 19

Slide 19 text

19 協調フィルターリング ユーザーの操作ログを収集し、ユーザーの挙動から ユーザーの好みを定量化する。 ユーザーが 検索 ユーザーが 結果を⾒る ユーザーが アクションを実⾏ システム改善 ipad ユーザー クエリ 加藤 ipad ゆい プリンター 茂雄 ipad … … ユーザー アクション アイテム 加藤 click doc22 ゆい click doc17 茂雄 click doc12 加藤 purchase doc22 茂雄 click doc22 茂雄 purchase doc12 ゆい click doc2 … … … ユーザー アイテム 重み(関連度) 加藤 doc22 1.0 加藤 doc12 0.4 … … … 茂雄 doc12 0.9 茂雄 doc22 0.6 … … … 加藤さん向けのおすすめ商品 • doc22: iPad Pro • doc12: Kindle Fire … ⾏列の分解 (Matrix Factorization) ユーザー⾏動を考慮して アイテムを推薦する。 操作ログ クエリログ

Slide 20

Slide 20 text

20 推薦モード(ユーザー・アイテム、アイテム・アイテム、クエリ・アイテム) ユーザー アイテム 重み(関連度) 加藤 doc22 1.0 加藤 doc12 0.4 … … … 茂雄 doc12 0.9 茂雄 doc22 0.6 … … … ⾏列の分解 (Matrix Factorization) アイテム アイテム 重み(関連度) doc22 doc21 0.96 doc22 doc12 0.85 … … … doc12 doc11 0.9 doc12 doc22 0.8 … … … クエリ アイテム 重み(関連度) ipad doc22 0.98 ipad doc12 0.6 … … … kindle doc12 0.96 apple doc22 0.90 … … … 加藤さん向けのおすすめ商品 • doc22: iPad Pro • doc12: Kindle Fire … アイテムdoc22の関連商品 • doc21: iPad Mini • doc12: Kindle Fire … クエリ「ipad」に該当する商品 • doc22: iPad Pro • doc12: Kindle Fire … ⾏列の分解を⽤いることで、操作ログから、3種類の推薦モードが計算できる。

Slide 21

Slide 21 text

21 コンテンツ理解とユーザー理解 ユーザー 意図 コンテンツを理解 ユーザーを理解 ドメインを理解 キーワード 検索 協調 フィルターリング (推薦) パーソナ ライズド 検索

Slide 22

Slide 22 text

22 パーソナライズド検索はユーザーの操作ログを利⽤する ユーザーが⼊⼒したクエリとクリック情報を継続的に記録する。 この⼈が「Samsung」や「ステンレススチール製」に興味を持っている。

Slide 23

Slide 23 text

23 ユーザークリック情報を集計する 。。。そして、その情報を集計して、ユーザーの好みを定量化する。

Slide 24

Slide 24 text

24 ユーザーの好みを考慮した検索 次にユーザーが検索すると、⼊⼒したクエリへの関連度以外にユーザーの好みも考慮する。 ⽣のキーワード検索の結果 パーソナライズ検索の結果

Slide 25

Slide 25 text

25 全てのクエリに適⽤しすぎると 。。。「IPhone」を探すのに、「Samsung」のスピーカーが返ってくる。→ ドメイン知識が必要。

Slide 26

Slide 26 text

26 ドメインを理解 ユーザー 意図 コンテンツを理解 ユーザーを理解 ドメインを理解 キーワード 検索 協調 フィルターリング (推薦) ナレッジグラフ パーソナ ライズド 検索

Slide 27

Slide 27 text

27 ナレッジグラフとは? vs. Ontology vs Taxonomy vs Synonyms、など…

Slide 28

Slide 28 text

28 検索システム向けのナレッジグラフの定義 Alternative Labels Synonyms Taxonomy Ontology Knowledge Graph ナレッジモデルの種類 Alternative Labels(言い換え)完全に同一意味を表現する単語 例: チョコレート => チョコ; 国際連合 => 国連 Synonyms List(同義語・類義語)近い意味を表現する単語 例: 人間 => 人、人類; 食べ物 => 食材、食料、フード、食品 Taxonomy (分類体系)ものを階層的なカテゴリに分類する。 例: 加藤–(IS_A)→人間; 人間–(IS_A)→哺乳類; 哺乳類 –(IS_A)→ 動物 Ontology(オントロジー)ものの種類同士の関連性を表現する。 例: 動物–(食べる)→食べ物; 人間 –(IS_A)→動物 Knowledge Graph(ナレッジグラフ)オントロジーをインスタンス化 したもの。 例: 加藤–(IS_A)→人間; 加藤–(食べる)→食べ物 → ナレッジグラフは他のナレッジモデルを囲む。

Slide 29

Slide 29 text

29 ナレッジグラフを使うとStringsではなくThingsで検索する 「⽇本」で検索すると、国として認識し、⾸都や⼈⼝の情報などが返ってくる。。。

Slide 30

Slide 30 text

30 ナレッジグラフを使うとStringsではなくThingsで検索する 。。。検索結果から、そのまま深掘りできる。例: ⾸都の東京都をクリックする。

Slide 31

Slide 31 text

31 ユーザー理解とドメイン理解 ユーザー 意図 コンテンツを理解 ユーザーを理解 ドメインを理解 キーワード 検索 協調 フィルターリング (推薦) ナレッジグラフ パーソナ ライズド 検索 マルチ モーダル 推薦

Slide 32

Slide 32 text

32 マルチモーダル推薦 ナレッジグラフデータとユーザー操作ログを跨いで推薦するシステム。 例: ユーザーが所属した部⾨によって、推薦するものが異なる。 技術部⾨→GitHub通知、営業部⾨→Tweets情報 技術部の推薦結果 営業部の推薦結果

Slide 33

Slide 33 text

33 コンテンツ理解とドメイン理解 ユーザー 意図 コンテンツを理解 ユーザーを理解 ドメインを理解 キーワード 検索 協調 フィルターリング (推薦) ナレッジグラフ パーソナ ライズド 検索 マルチ モーダル 推薦 セマン ティック 検索

Slide 34

Slide 34 text

34 セマンティック検索 クエリの単語からエンティティ(Entity)と関係(Relation)を認識して検索する。 ナレッジグラフ クエリ: ISID 近くの 中華 会社 距離 中華レストラン 該当する記事 対象エンティティのクラス: 中華レストラン 絞り込み条件: 距離: 条件: 5km以内(近い) 原点: 京王品川ビル(ISID本社) クエリの解析結果のイメージ

Slide 35

Slide 35 text

35 3つの要素を適切に組み合わせるのが⼤事 ユーザー 意図 コンテンツを理解 ユーザーを理解 ドメインを理解 キーワード 検索 協調 フィルターリング (推薦) ナレッジグラフ パーソナ ライズド 検索 マルチ モーダル 推薦 セマン ティック 検索

Slide 36

Slide 36 text

36 そして、最近話題になった 「ベクトル検索」は?

Slide 37

Slide 37 text

37 ベクトル検索 BERTなど事前学習⾔語モデル(エンコーダー)を利⽤して、 クエリと⽂書をベクトル空間(Embeddings)に変換する。 そして検索するときに、ベクトルの類似度を (コサイン類似度等で) 計算する。 ベクトル検索では、キーワード検索とナレッジグラフとは違い、⽂脈で潜在的な意味が取得できる。 クエリ ⽂書 ベクトル化器 (エンコーダー) BERTなど Embeddings (ベクトル) クエリベクトル ⽂書ベクトル [0.12, 5.04, 0.02, 0.0, …, 2.34] [1.02, 0.54, 0.12, 0.08, …, 1.34] [0.02, 0.04, 1.12, 0.18, …, 1.76] [0.16, 0.74, 1.82, 1.00, …, 1.42] cos_similarity(クエリベクトル、⽂書ベクトル)

Slide 38

Slide 38 text

38 キーワード検索 vs ベクトル検索 キーワード検索は完全⼀致に、ベクトル検索は曖昧表現に、それぞれの強みがある。 クエリ分類 キーワード検索 ベクトル検索 期待される結果 ⾃然⽂: - アーム動作が不安定になった原因は? 成功した可能性があるが、 ほとんど失敗 成功 その現象の原因 に関する⽂書 曖昧クエリ: - フランスの有名な塔 ほとんど失敗 成功 エッフェル塔に関する⽂書 キーワードの組み合わせ: (りんご OR オレンジ) AND ジュース 成功 失敗 りんごジュースもしくは オレンジジュースが 書かれた⽂書 特定の商品番号/ID: - PROD1243 - 012-1211-211 成功 おそらく失敗 (学習データに依存する) その商品番号が 書かれた⽂書

Slide 39

Slide 39 text

39 ベクトル検索は新しい要素というより、代替⼿法 ユーザー 意図 コンテンツを理解 ユーザーを理解 ドメインを理解 キーワード 検索 協調 フィルターリング (推薦) ナレッジグラフ パーソナ ライズド 検索 マルチ モーダル 推薦 セマン ティック 検索 手法: • 転置インデックス • 埋め込み表現(Embeddings) • ハイブリッド 文書ベクトル ユーザーベクトル エンティティベクトル

Slide 40

Slide 40 text

40 検索対象データによって組み合わせ⽅が変わる • ニュース検索: ⼈気度と新規性が重要。 • レストラン検索: 位置情報や予算(価格帯)を考慮する。 • E-コマース: 購⼊頻度を重視する。 • 映画検索: 基本的に⼈気度が⼤きい影響を与える。 • 転職サイト: 職業のカテゴリ、給与情報、位置情報を考慮する。

Slide 41

Slide 41 text

41 コンテンツ + ドメイン + ユーザーの理解を組み合わせる例 各要素の関連度を組み合わせ、最終的なスコアを計算する。 各関連度の重みは試⾏錯誤で決めるのが多いですが、⼤量なデータから学習もできる。 → Learning-to-rank (LTR) 試行錯誤で決めるか、 大量なデータから学習する

Slide 42

Slide 42 text

42 Learning-to-Rank ユーザー操作ログから、学習データを作り 教師あり設定でランキング学習を実施。 ユーザーが 検索 ユーザーが 結果を⾒る ユーザーが アクションを実⾏ システム改善 42 ipad ユーザー クエリ 加藤 ipad ゆい プリンター 茂雄 ipad … … ユーザー アクション アイテム 加藤 click doc22 ゆい click doc17 茂雄 click doc12 加藤 purchase doc22 茂雄 click doc22 茂雄 purchase doc12 ゆい click doc2 … … … 特徴量 重み bm25_score 0.26 popularity 0.40 geo_distance 0.31 freshness 0.19 cosine_similarity 0.10 … … 分類器/回帰器を学習 (Build Classifier/Regressor) 操作ログ 初期結果 1. doc1 2. doc2 3. doc3 最終結果 1. doc3 2. doc1 3. doc2 クエリログ

Slide 43

Slide 43 text

AI搭載検索システムを実現するための ロードマップ(例) 43

Slide 44

Slide 44 text

44 AI搭載検索システムのロードマップ • 検索システム向けのAI技術が⾊々あるが、いきなり全 てを実現するのが難しいので、検索システムを徐々に 進化させた⽅が良い。 • まず、キーワード検索(全⽂検索)機能をきちんと 固める。 • ナレッジグラフ(同義語、Taxonomyなど)を段階 的に導⼊し、検索機能を強化する。 • クエリの種類(複数キーワード、⾃然⽂クエリ) を判別し、それぞれの適切な処理(ベクトル検索 または キーワード検索)を実⾏できるように。 • 最終的に、ユーザーフィードバックを収集し、そ のデータを活⽤することで、継続的に⾃⼰改善( 協調フィルタリング、Learning-to-Rank)できる 仕組みを実現。 検索システム進化

Slide 45

Slide 45 text

45 AI搭載検索システムのロードマップ ステップ1: キーワード検索機能をきちんと固める(データを整える)

Slide 46

Slide 46 text

46 AI搭載検索システムのロードマップ ステップ2: ドメイン知識(ナレッジグラフ)を活⽤して機能強化

Slide 47

Slide 47 text

47 AI搭載検索システムのロードマップ ステップ3: クエリを分類して、それぞれ適切なパイプラインに渡す

Slide 48

Slide 48 text

48 AI搭載検索システムのロードマップ ステップ4: ユーザーの操作ログを収集し、そのログを活⽤して⾃⼰改善システムになる

Slide 49

Slide 49 text

まとめ 49

Slide 50

Slide 50 text

50 まとめ • AI搭載検索システム • 検索に適⽤できるAI技術は最近話題になっているベクトル検索に限らない。 • AI搭載検索システムの要素技術 • 検索ゴール: ユーザーの意図を理解 • コンテンツ理解 → キーワード検索 • ユーザー理解 → 協調フィルターリング • ドメイン理解 → ナレッジグラフ • 検索対象データやビジネスドメインによって、要素の適切な組み合わせ⽅は違うの で、きちんと設計する必要がある。 • AI搭載検索システムを実現するためのロードマップを紹介した

Slide 51

Slide 51 text

51 https://isid-ai.jp/products/texa.html ⽂章⾃動分類 (教師あり分類) 意味的類似検索 ⽂章要約 (教師なし分類×要約) 文書活用AIソリューション:テクサインテリジェンス

Slide 52

Slide 52 text

52 ISID AIトランスフォーメーションセンターでは新しい仲間を募集しています 少しでも興味がある⽅は、「 [email protected]」までカジュアル⾯談のお問い合わせを頂くか、 「ISID 採⽤ページへ」や以下のQRとリンクから応募をお願いします! 製品開発系 コンサルティング系 AIコンサルタント https://groupcareers.isid.co.jp /pgisid/u/job.phtml?job_code =591&company_code=1 AIビジネスプロジェクトマネージャー https://groupcareers.isid.co.jp /pgisid/u/sp/job.phtml?job_co de=532 AIエンジニア(製品開発) https://groupcareers.isid.co.j p/pgisid/u/job.phtml?job_co de=647&company_code=1 AIプロダクトマネージャー https://groupcareers.isid.co.jp/ pgisid/u/job.phtml?job_code=6 93&company_code=1

Slide 53

Slide 53 text

新卒採⽤もやってます ISIDでは、「データサイエンス職」という新卒応募枠をご⽤意しています。データサイエンス枠で合格された⽅は、AIトラ ンスフォーメーションセンターへの配属が確約されます。興味がある⽅、是⾮ご応募ください。 問い合わせ先: 株式会社 電通国際情報サービス ⼈事部 新卒採⽤・インターンシップ担当 [email protected]

Slide 54

Slide 54 text

54 ご清聴ありがとうございます。