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

ニュース配信における自然言語処理の取り組み / Natural Language Processing in the News Delivery Service

Sansan
October 23, 2019

ニュース配信における自然言語処理の取り組み / Natural Language Processing in the News Delivery Service

■イベント
Sansan Builders Box 2019
https://jp.corp-sansan.com/sbb2019/

■登壇概要
タイトル:ニュース配信における自然言語処理の取り組み

登壇者:
DSOC R&Dグループ 研究員 高橋寛治

▼Sansan Builders Box
https://buildersbox.corp-sansan.com/

Sansan

October 23, 2019
Tweet

More Decks by Sansan

Other Decks in Technology

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

  4. 名刺とニュース

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  19. 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

    View Slide

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

    View Slide

  21. 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係数*の近似値を推定
    *共通要素の占める割合

    View Slide

  22. 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からも呼び出せる

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  26. 開発との連携

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  30. View Slide