Slide 1

Slide 1 text

ニュース配信における ⾃然⾔語処理の取り組み

Slide 2

Slide 2 text

Sansan Builders Box - 名刺とニュース - 配信システムの全体像 - 配信のための⾃然⾔語処理技術 - 開発との連携 Contents

Slide 3

Slide 3 text

⾼橋 寛治(Kanji Takahashi) 2017年 3⽉ ⻑岡技術科学⼤学⼤学院 修了 2017年 4⽉ Sansan株式会社 ⼊社 現在 ⾃然⾔語処理とスマブラ担当 kanji250tr kanjirz50 DSOC(Data Strategy & Operation Center) R&Dグループ 研究員

Slide 4

Slide 4 text

名刺とニュース

Slide 5

Slide 5 text

Sansan Builders Box 名刺とニュース これらの情報から何を提供できるのか? ⽇々取り込まれる名刺 ⽇々発信されるニュース ⽇々Sansanをご利⽤ いただいているユーザさま

Slide 6

Slide 6 text

Sansan Builders Box 現在SansanやEightで配信しているニュース - ⼈事異動情報の通知 - 社内の共通⼈脈通知 - 企業の最新ニュース通知 - 同業他社の最新動向の通知

Slide 7

Slide 7 text

Sansan Builders Box 現在SansanやEightで配信しているニュース 名刺とWeb記事 ⾃社内の名刺と名刺 ⾃分の所有名刺 Aさんの所有名刺 ネット上の記事 ⾃社情報とWeb記事 ⾃社の 情報 - ⼈事異動情報の通知 - 社内の共通⼈脈通知 - 企業の最新ニュース通知 - 同業他社の最新動向の通知 ⾃分の所有名刺 ネット上の 記事

Slide 8

Slide 8 text

Sansan Builders Box 現在SansanやEightで配信しているニュース 名刺とWeb記事 ⾃社内名刺と名刺 ⾃分の所有名刺 Aさんの所有名刺 ネット上の記事 ⾃社情報とWeb記事 ⾃社の 情報 - ⼈事異動情報の通知 - 社内の共通⼈脈通知 - 企業の最新ニュース通知 - 同業他社の最新動向の通知 ⾃分の所有名刺 ネット上の 記事 今回紹介するニュース

Slide 9

Slide 9 text

Sansan Builders Box 企業の最新ニュース通知

Slide 10

Slide 10 text

Sansan Builders Box 同業他社の最新動向

Slide 11

Slide 11 text

配信システムの全体像 企業の最新ニュースの配信について今回は紹介

Slide 12

Slide 12 text

Sansan Builders Box - DSOC >ニュースと付加情報を各事業部へ配信 - Sansan事業部 >Sansanユーザの所有名刺と付加情報に基づき、ユーザに配信 - Eight事業部 >Eightユーザの情報と付加情報に基づき、ユーザに配信 Sansanの企業ニュース配信を⽀える基盤の事業部ごとの役割

Slide 13

Slide 13 text

Sansan Builders Box SQSとコンテナで構成されるマイクロサービスでニュース記事を解析 Sansanの企業ニュース配信を⽀えるDSOCの基盤 組織名拡張器 ニュース記事 受信コンテナ Queue(記事) AWS Cloud 組織名抽出 ワーカ コンテナ ルールベース 組織名抽出器 深層学習ベース 組織名抽出器 ニュース記事 配信コンテナ Queue (情報が付与された記事) ジャンル判定 コンテナ ・・・ SansanやEightの サーバーサイド 外部提携先から ニュースを受け取り

Slide 14

Slide 14 text

ニュース配信のために どういった技術が必要か? 壮⼤な前振り

Slide 15

Slide 15 text

Sansan Builders Box 配信のための⾃然⾔語処理技術 - 固有表現抽出 - 重複記事判定 - 記事⾔語判定 - その他たくさん

Slide 16

Slide 16 text

Sansan Builders Box ⾃然⾔語で記述されたテキスト中に含まれている組織名や⼈名、 ⽇付け表現など、定義に従ったチャンクのこと 固有表現抽出 Sansan株式会社 の ⾼橋寛治 が 2019年10⽉23⽇ に本発表を⾏います。 組織名 ⼈名 ⽇付 固有表現抽出とは、 これら固有表現をテキスト中から抽出すること

Slide 17

Slide 17 text

Sansan Builders Box ルールと深層学習による⽅式の組み合わせ - 各⽅式の特徴 - ルール > 確実に企業名と思われる⽂字列を抽出 - 深層学習 > ⽂脈から企業名らしいものを抽出 ハイブリッド⽅式による固有表現抽出

Slide 18

Slide 18 text

Sansan Builders Box 確実に企業名と思われる⽂字列を抽出するために、辞書作りを⼯夫 - ⽅法 1. 全組織名をリストに持つ 2. 名刺交換枚数が⼀定以上の組織の正式組織名を辞書に追加 • スコアは⽂字数に応じて変更 3. 再現率をあげるために、組織名から法⼈格を削除し、 次の条件に合致するものを辞書に追加 • 3⽂字以上 • 数字だけで構成されない • 形態素解析辞書の⼀般名詞と同じ⽂字列ではない ルールベースの組織名抽出器

Slide 19

Slide 19 text

Sansan Builders Box 少し前のState-of-the-Artな⼿法である Bidirectional LSTM-CNNs-CRF (Ma et al. 2016) を利⽤ 各単語に対して、{B:固有表現の始まり、I:固有表現中、O:固有表現ではない} の3つのラベルを予測する問題を解く 深層学習による組織名抽出 ⼊⼒ 名刺 管理 サービス の Sansan 株式会社 が 出⼒ O O O O B I O 学習データに存在しない企業に対して評価したところF値で0.82

Slide 20

Slide 20 text

Sansan Builders Box Sansan株式会社は、法⼈向けのクラウド名刺管理サービス「Sansan」のユー ザーカンファレンス「Sansan Innovation Summit 2019」を10⽉30⽇に開催する。 重複記事判定 ほぼ同じ内容の記事はいずれか⼀つを選んで配信したい クラウド名刺管理サービス「Sansan」 を提供するSansan株式会社は、10⽉30⽇ にユーザーカンファレンス「Sansan Innovation Summit 2019」を開催する。

Slide 21

Slide 21 text

Sansan Builders Box ある⽇に配信対象となるニュース記事の組み合わせで類似度を計算 ⾼速な類似度計算を⾏う 記事A 記事B 記事C 記事D 記事A 1.0 0.6 0.1 0.3 記事B - 1.0 0.4 0.2 記事C - - 1.0 0.8 記事D - - - 1.0 B-bit Minwise Hashing(Li et al. 2010)で⾼速にJaccard係数*の近似値を推定 *共通要素の占める割合

Slide 22

Slide 22 text

Sansan Builders Box ⽂書に含まれる単語をいくつかのハッシュ関数でハッシュ化し、 最⼩ハッシュ同⼠を⽐較するとJaccard係数に近似する結果が得られる さらに⾼速にするために、ハッシュの最下位ビットだけを⽤いたり、 ビット演算を多⽤する さらに論⽂より実験から計算を簡略化 B-bit Minwise Hashingの実装 float bBitMinHash::estimate(uint64_t x, uint64_t y) const { return this->calc_hamming_distance(x, y) / float(this->k); } C++とPyBind11で、超⾼速かつPythonからも呼び出せる

Slide 23

Slide 23 text

Sansan Builders Box OSS の language-detection は99%以上の精度で⾔語判定可能 このニュース配信では、記事の全⽂ではなくタイトルと ⼀部本⽂しか利⽤できないため、報告通りの精度は出ない 例: Amazon Web Service(AWS)、 Apache Software Foundationのプラチナスポンサーに 記事⾔語判定

Slide 24

Slide 24 text

Sansan Builders Box 3種類の⾔語判定の結果からルールにより⾔語を判定 疑似コード if “⽇本語” in [language-detectionの結果, fasttextの結果, langidの結果]: return “⽇本語” return language-detectionの結果 結果、language-detection単体だと間違えるうちの半分以上を救済 記事⾔語判定の改良

Slide 25

Slide 25 text

Sansan Builders Box 最適なビジネスニュースを届ける 今後(絶賛開発中) 気になるトピックに関する気づきを提供 気になっている機械学習に関して、 取引先の会社が新しい取り組みをやっている! たとえば、「機械学習」関連の記事をよく読んでいるなら、 優先して記事を通知する(クリックログによる最適化)

Slide 26

Slide 26 text

開発との連携

Slide 27

Slide 27 text

Sansan Builders Box - APIの仕様を決める >レビューにより認識に齟齬が無いか確認できる - Dockerコンテナを作成する >R&Dは好き放題ライブラリを⼊れることができ、 開発側は⾛らせるだけ! - デプロイ >ECSのタスクを更新するだけ コンテナによる連携

Slide 28

Slide 28 text

Sansan Builders Box Dockerコンテナでアルゴリズムを開発するために研究員に求められるもの - Linuxで環境構築できること - WebAPIとしてアルゴリズムのエンドポイントを設計・開発できること 開発チームの歩み寄り - API設計をリードすること - コンテナを良い感じにデプロイできる仕組みをつくること - ログ基盤をしっかり作ること - 監視も作ること - アルゴリズムに関⼼を持つこと だがしかし、開発チームとR&Dチームの歩み寄りが必要 現在のチームではお互いの歩み寄りでこれらがうまく機能している

Slide 29

Slide 29 text

Sansan Builders Box ニュース配信における⾃然⾔語処理の取り組みについて紹介 • 名刺とニュース • 配信システムの全体像 • 配信のための⾃然⾔語処理技術 • 開発との連携 まとめ そして最適化されたニュース配信へ・・・

Slide 30

Slide 30 text

No content