2019/09/20
MLPP #4 & ML@Loft #6
@kaeru_nantoka
社内で XX に詳しい人を知りたい
Self Introduction
MLエンジニア@Stockmark 株式会社
2017年 証券会社に営業職として新卒入社
2018年 金融系の中小受託会社で PG・SE
2019年 4月~ 現職
2
@kaeru_nantoka
@kaerururu
Yuya Osujo
❌ 株とか証券とか関係ありません。(※ NLP やっている会社です。)
⭕️ toB 向けに ニュース及びナレッジ共有プラットフォーム など
3プロダクトを提供しています。
⭕️ BERT や ELMo の日本語モデルの配布などもやっています。
Company Introduction
3
Product Introduction ( Anews )
・ビジネスニュースの配信
・チームの人が読んだ/関心がある記事
も読める
・記事に関するチームメンバーのコメ
ントも読める
→ チームの共通知のアップデート
4
Today’s Summary
Stockmark 社の自社サービス 「 Anews 」刷新にあたり、
「 特定のキーワード 」や 「 ニュース 」で検索した時に
その分野に詳しい社内人物を推薦するエンジンを
( ほぼ ) 0 → 1 で実装したお話です。
5
解決したいビジネス課題
6
解決したいビジネス課題
「 Who Knows What ? の可視化 」
7
・ 社員数がとにかく多い
・ 誰が何に詳しいか体系化されていない
・ わからないことがあっても誰に聞けば良い
のかわからない
大企業
8
・ 社員数がとにかく多い
・ 誰が何に詳しいか体系化されていない
・ わからないことがあっても誰に聞けば
良いのかわからない
ここをスムーズに
大企業
9
Today’s Contents
・Anews で利用できるデータ
・推薦アルゴリズム
・機械学習インフラ
・課題
10
Today’s Contents
・Anews で利用できるデータ
・推薦アルゴリズム
・機械学習インフラ
・課題
11
Anews で利用できるデータ ( Raw )
・ 記事の本文データ
・ 記事のタイトル文データ
・ 記事の URL データ
・ 記事のメタデータ
・ ユーザー情報データ
・ ユーザーアクションのログデータ
Text
Table
12
Anews で利用できるデータ ( Preprocessed )
・ 記事ベクトルデータ ( fastText )
・ ユーザーベクトルデータ
Data
13
Today’s Contents
・Anews で利用できるデータ
・推薦アルゴリズム
・機械学習インフラ
・課題
14
推薦アルゴリズム
・ 協調フィルタリング
・ ユーザー集団のアイテムに対する評価を元にレコメンド ( Amazon や Netflix など )
・ コンテンツベース
・ アイテムの特徴ベクトルで類似度計算をしてレコメンドに使用
15
推薦アルゴリズム
・ 協調フィルタリング
❌ コンテンツの推薦ではなくユーザーの推薦なので、今回有効ではなかった
・ コンテンツベース
⭕️ 別用途で使用していたユーザーベクトルを保持していた
→ ユーザーベクトルと記事ベクトルの cos類似度ベースのスコアを使用
16
ユーザーベクトル
・ 過去 N 日間に読んだ記事を
・球面 k-means でクラスタリングして
・記事数が最も多いクラスタの
・セントロイドをユーザーベクトルと定義
・ オフライン処理 → DynamoDB に格納
17
記事ベクトル
・ 各記事のタイトルと最初の導入の名詞数単語を
・ ビジネスニュースで学習したストックマーク社独自の fastText でベクト
ル化 (100次元)
・ オフライン処理 → Elasticsearch DB に格納
18
Today’s Contents
・Anews で利用できるデータ
・推薦アルゴリズム
・機械学習インフラ
・課題
19
Today’s Contents
・Anews で利用できるデータ
・推薦アルゴリズム
・機械学習インフラ
・バッチ処理
・オンライン処理
・課題
20
Amazon
Elasticsearch
Service
Amazon
DynamoDB
Amazon RDSWeb App
機械学習API
機械学習バッチ
アプリケーション
オンライン処理
バッチ処理
Amazon ECS
AWS Elastic
Beanstalk
21
Amazon
Elasticsearch
Service
Amazon
DynamoDB
Amazon RDSWeb App
機械学習API
機械学習バッチ
アプリケーション
オンライン処理
バッチ処理
Amazon ECS
AWS Elastic
Beanstalk
キーワード
22
Today’s Contents
・Anews で利用できるデータ
・推薦アルゴリズム
・機械学習インフラ
・課題
23
課題
・ユーザーベクトルの定義
→ 初版は記事配信に使用していたものを流用
→ ある程度はワークするも・・
・記事を読んでいないユーザーは?
・他にも取れるデータで有効なものは?
・評価指標の定義
A / B テストやオンラインテストなど検討中
24
課題
・ユーザーベクトルの定義
→ 初版は記事配信に使用していたものを流用
→ ある程度はワークするも・・
・記事を読んでいないユーザーは?
・他にも取れるデータで有効なものは?
・評価指標の定義
A / B テストやオンラインテストなど検討中
・ディスカッションの時間や懇親会などで色々お聞きしたいです!
25
Thank you for Listening !
26

Mlpp #4 & mlloft #6