■イベント Sansan Builders Box 2019 https://jp.corp-sansan.com/sbb2019/
■登壇概要 タイトル:ニュース配信における自然言語処理の取り組み
登壇者: DSOC R&Dグループ 研究員 高橋寛治
▼Sansan Builders Box https://buildersbox.corp-sansan.com/
ニュース配信における⾃然⾔語処理の取り組み
View Slide
Sansan Builders Box- 名刺とニュース- 配信システムの全体像- 配信のための⾃然⾔語処理技術- 開発との連携Contents
⾼橋 寛治(Kanji Takahashi)2017年 3⽉ ⻑岡技術科学⼤学⼤学院 修了2017年 4⽉ Sansan株式会社 ⼊社現在 ⾃然⾔語処理とスマブラ担当kanji250trkanjirz50DSOC(Data Strategy & Operation Center)R&Dグループ 研究員
名刺とニュース
Sansan Builders Box名刺とニュースこれらの情報から何を提供できるのか?⽇々取り込まれる名刺 ⽇々発信されるニュース⽇々Sansanをご利⽤いただいているユーザさま
Sansan Builders Box現在SansanやEightで配信しているニュース- ⼈事異動情報の通知- 社内の共通⼈脈通知- 企業の最新ニュース通知- 同業他社の最新動向の通知
Sansan Builders Box現在SansanやEightで配信しているニュース名刺とWeb記事⾃社内の名刺と名刺⾃分の所有名刺 Aさんの所有名刺ネット上の記事⾃社情報とWeb記事⾃社の情報- ⼈事異動情報の通知- 社内の共通⼈脈通知- 企業の最新ニュース通知- 同業他社の最新動向の通知⾃分の所有名刺ネット上の記事
Sansan Builders Box現在SansanやEightで配信しているニュース名刺とWeb記事⾃社内名刺と名刺⾃分の所有名刺 Aさんの所有名刺ネット上の記事⾃社情報とWeb記事⾃社の情報- ⼈事異動情報の通知- 社内の共通⼈脈通知- 企業の最新ニュース通知- 同業他社の最新動向の通知⾃分の所有名刺ネット上の記事今回紹介するニュース
Sansan Builders Box企業の最新ニュース通知
Sansan Builders Box同業他社の最新動向
配信システムの全体像企業の最新ニュースの配信について今回は紹介
Sansan Builders Box- DSOC>ニュースと付加情報を各事業部へ配信- Sansan事業部>Sansanユーザの所有名刺と付加情報に基づき、ユーザに配信- Eight事業部>Eightユーザの情報と付加情報に基づき、ユーザに配信Sansanの企業ニュース配信を⽀える基盤の事業部ごとの役割
Sansan Builders BoxSQSとコンテナで構成されるマイクロサービスでニュース記事を解析Sansanの企業ニュース配信を⽀えるDSOCの基盤組織名拡張器ニュース記事受信コンテナQueue(記事)AWS Cloud組織名抽出ワーカコンテナルールベース組織名抽出器深層学習ベース組織名抽出器ニュース記事配信コンテナQueue(情報が付与された記事)ジャンル判定コンテナ・・・SansanやEightのサーバーサイド外部提携先からニュースを受け取り
ニュース配信のためにどういった技術が必要か?壮⼤な前振り
Sansan Builders Box配信のための⾃然⾔語処理技術- 固有表現抽出- 重複記事判定- 記事⾔語判定- その他たくさん
Sansan Builders Box⾃然⾔語で記述されたテキスト中に含まれている組織名や⼈名、⽇付け表現など、定義に従ったチャンクのこと固有表現抽出Sansan株式会社 の ⾼橋寛治 が 2019年10⽉23⽇ に本発表を⾏います。組織名 ⼈名 ⽇付固有表現抽出とは、これら固有表現をテキスト中から抽出すること
Sansan Builders Boxルールと深層学習による⽅式の組み合わせ- 各⽅式の特徴- ルール> 確実に企業名と思われる⽂字列を抽出- 深層学習> ⽂脈から企業名らしいものを抽出ハイブリッド⽅式による固有表現抽出
Sansan Builders Box確実に企業名と思われる⽂字列を抽出するために、辞書作りを⼯夫- ⽅法1. 全組織名をリストに持つ2. 名刺交換枚数が⼀定以上の組織の正式組織名を辞書に追加• スコアは⽂字数に応じて変更3. 再現率をあげるために、組織名から法⼈格を削除し、次の条件に合致するものを辞書に追加• 3⽂字以上• 数字だけで構成されない• 形態素解析辞書の⼀般名詞と同じ⽂字列ではないルールベースの組織名抽出器
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
Sansan Builders BoxSansan株式会社は、法⼈向けのクラウド名刺管理サービス「Sansan」のユーザーカンファレンス「Sansan Innovation Summit 2019」を10⽉30⽇に開催する。重複記事判定ほぼ同じ内容の記事はいずれか⼀つを選んで配信したいクラウド名刺管理サービス「Sansan」 を提供するSansan株式会社は、10⽉30⽇にユーザーカンファレンス「Sansan Innovation Summit 2019」を開催する。
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.0B-bit Minwise Hashing(Li et al. 2010)で⾼速にJaccard係数*の近似値を推定*共通要素の占める割合
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からも呼び出せる
Sansan Builders BoxOSS の language-detection は99%以上の精度で⾔語判定可能このニュース配信では、記事の全⽂ではなくタイトルと⼀部本⽂しか利⽤できないため、報告通りの精度は出ない例: Amazon Web Service(AWS)、Apache Software Foundationのプラチナスポンサーに記事⾔語判定
Sansan Builders Box3種類の⾔語判定の結果からルールにより⾔語を判定疑似コードif “⽇本語” in [language-detectionの結果, fasttextの結果, langidの結果]:return “⽇本語”return language-detectionの結果結果、language-detection単体だと間違えるうちの半分以上を救済記事⾔語判定の改良
Sansan Builders Box最適なビジネスニュースを届ける今後(絶賛開発中)気になるトピックに関する気づきを提供気になっている機械学習に関して、取引先の会社が新しい取り組みをやっている!たとえば、「機械学習」関連の記事をよく読んでいるなら、優先して記事を通知する(クリックログによる最適化)
開発との連携
Sansan Builders Box- APIの仕様を決める>レビューにより認識に齟齬が無いか確認できる- Dockerコンテナを作成する>R&Dは好き放題ライブラリを⼊れることができ、開発側は⾛らせるだけ!- デプロイ>ECSのタスクを更新するだけコンテナによる連携
Sansan Builders BoxDockerコンテナでアルゴリズムを開発するために研究員に求められるもの- Linuxで環境構築できること- WebAPIとしてアルゴリズムのエンドポイントを設計・開発できること開発チームの歩み寄り- API設計をリードすること- コンテナを良い感じにデプロイできる仕組みをつくること- ログ基盤をしっかり作ること- 監視も作ること- アルゴリズムに関⼼を持つことだがしかし、開発チームとR&Dチームの歩み寄りが必要現在のチームではお互いの歩み寄りでこれらがうまく機能している
Sansan Builders Boxニュース配信における⾃然⾔語処理の取り組みについて紹介• 名刺とニュース• 配信システムの全体像• 配信のための⾃然⾔語処理技術• 開発との連携まとめそして最適化されたニュース配信へ・・・