SlideShare ist ein Scribd-Unternehmen logo
1 von 45
Downloaden Sie, um offline zu lesen
id:skozawa
Hatena Enginner Seminar #4
はてなブックマークの新機能における
自然言語処理の活用
~はてなブックマークのトピックページの裏側~
自己紹介
id:skozawa skozawa.info
2007-2012
大学院で自然言語処理の研究に従事
2012
株式会社はてな入社
アプリケーションエンジニア
・ブックマークチーム
・プラットフォームチーム(アドテク)
2
  はてなブックマーク
3
  はてなブックマーク
4
βリリースから10年
トピックページを2月5日にリリース
トピックページ
● 関連性の高い話題の記事をまとめたページ
● ブックマークに蓄積された過去10年の記事を対象
に適用
http://bookmark.hatenastaff.com/entry/2015/02/05/190331
5
トピックリストページ (http://b.hatena.ne.jp/topiclist)
6
トピックページ
7
開発の経緯
● トピック機能の要望は前々からあった
○ インターネットで盛り上がってる話題を知りたい
○ ホットエントリでの同じ話題のエントリ重複を避けたい
8
この機能は、これまでも多くのエンジニアが挑戦しながら、さまざま
な要因により実現できていませんでした。
ref. http://bookmark.hatenastaff.com/entry/2015/02/05/190331
実現できなかった要因
● トピック生成
○ クラスタリング精度が低い
● トピックのタイトル
○ トピックを表すちゃんとしたタイトル生成が困難
9
実現できなかった要因
● トピック生成
○ クラスタリング精度が低い
重要語抽出ベースのアプローチへの変更
検索技術(Elasticsearch)の導入
 ref. タイトル未定 by id:yanbe @第8回Elasticsearch勉強会 (2/13)
● トピックのタイトル
○ トピックを表すちゃんとしたタイトル生成が困難
自然言語処理技術の導入
10
トピック生成の流れ
1. トピック生成
1. トピックを作る
2. トピックに属するエントリを収集
3. トピックのマージ
2. トピックタイトル生成
1. 重要語抽出
2. 重要文抽出
3. 文圧縮
11
トピック生成
トピックとは
トピック
キーワードの集合から形成
トピックモデル
PLSI (Probabilistic Latent Semantic Indexing)
LDA (Latent Dirichlet Allocation)
*今回は使ってない
盛り上がっている話題を捉えるものではない
テレ朝、アイドル、ヘリウム、搬送、救急
ヨルダン、リシャウィ、死刑、執行、報復
13
Elasticsearchによるトピック生成
Elasticsearch
全文検索システム
Significant Terms Aggreagtion
重要語を取得できる機能
期間を区切って記事のタイトルや本文を対象に実行
An aggregation that returns interesting or unusual
occurrences of terms in a set.
14
≒ 盛り上がっている話題
Significant Terms Aggregation
"aggregations": {
"sample": {
"buckets": [
{
"key": "ようじ", "doc_count": 16,
"score": 11.906, "bg_count": 114
},
{
"key": "スイスフラン", "doc_count": 3,
"score": 7.955, "bg_count": 6
},
{
"key": "origa", "doc_count": 24,
"score": 6.005, "bg_count": 508
},
…
]
} }
{
“aggs”: {
“sample”: {
“significant_terms” : {
“field”: “title”,
“size”: 10
}
}
}
}
15
Request Response
Elasticsearchは何を計算してる?
● スコア計算方法は現在4種類
○ jlh score
○ mutual information
○ chi square
■ 1.4.0.Beta1 ~
○ google normalized distance
■ 1.4.0.Beta1 ~
16
JLH
全体の出現割合と最近の出現割合を利用
JLH = 絶対割合変化 × 相対割合変化
絶対割合変化 = 最近の出現割合 - 全体の出現割合
相対割合変化 = 最近の出現割合 / 全体の出現割合
例:1年(全体)で30,000文書、直近1日(最近)で100文書の文書集合利用
  「ようじ」という単語が全体で100回、最近は10回出現した場合
絶対割合変化 = 10/100 - 100/30000 = 29/300
相対割合変化 = 10/100 / 100/30000 = 30
JLH = 29/300 * 30 = 2.9
17
JLH
全体の出現割合と最近の出現割合を利用
JLH = 絶対割合変化 × 相対割合変化
絶対割合変化 = 最近の出現割合 - 全体の出現割合
相対割合変化 = 最近の出現割合 / 全体の出現割合
18
最近よく現れる単語のスコアが高くなる
"aggregations": { "sample": {
"buckets": [
{
"key": "ようじ", "score": 11.906,
"sample2": {
"buckets": [
{ "key": "ようじ", "score": 245898.78 },
{ "key": "つま", "score": 74554.22 },
{ "key": "混入", "score": 74554.22 },
...
]}
}, {
"key": "スイスフラン", "score": 7.955,
"sample2": {
"buckets": [
{ "key": "スイスフラン", "score": 1905242.33 },
{ "key": "急騰", "score": 156594.34 },
{ "key": "打撃", "score": 156594.34 },
…
] }
},
…
{ “aggs”: {
“sample”: {
“significant_terms” : {
“field”: “title”,
“size”: 10
},
“aggs”: {
“sample2”: {
“significant_terms”: {
“field”: “title”,
“size”: 5,
} } }
}
} }
19
Request Response
トピック
トピックの例
20
57577、短歌、偶然、bot
ようじ、つま、混入、取調べ、身柄
origa、攻殻、主題歌、主題、機動
スイスフラン、急騰、打撃、業者、損失
クソリプ、パクツイ、国語、試験、センタ
トピックに属するエントリ
トピックのキーワードのどれかが含まれる?
単に含まれるだけだと関係ないエントリも取得してしまう
重要なキーワードが含まれることが大切
キーワードのスコアを利用
キーワードのスコアの合計8割以上と
なるエントリを取得
21
スイスフラン、急騰、打撃、業者、損失
"buckets": [
{ "key": "スイスフラン",
"score": 1905242.33 },
{ "key": "急騰",
"score": 156594.34 },
{ "key": "打撃",
"score": 156594.34 },
…
] }
トピックのマージ
既に同じ内容のトピックがある場合は新しく作るので
はなくマージしたい
以下を考慮してトピックを統合
トピックのキーワードのスコア重複率
トピックのエントリの重複率
22
23
トピックタイトル生成
タイトル生成とは
自然言語処理におけるタイトル生成
要約技術の一種
実際には人間でも、複数記事のタイトルと
本文からトピックタイトルを作ることは難しい
要約に重要な部分とは?
記事のタイトルと本文1文目
25
トピックタイトルの生成
26
● スイス中銀、スイスフラン高抑制の無制限介入終了 :主要金融ニュース :マーケッ
ト :日本経済新聞
● スイスフラン、対ユーロで一時30%上昇 フラン上限廃止で | マネーニュース | 株式
市場 | Reuters
● スイスフラン突然の大暴騰!取引が成立しない状況に - Togetterまとめ
● スイスフラン騒動で大儲けした人と大損した人の阿鼻叫喚の叫びまとめ #fx -
NAVER まとめ
● スイス中銀がフラン上限撤廃・中銀預金金利一段のマイナス:識者はこうみる |
Reuters
● スイスフラン上限撤廃、通貨急騰で波紋 時計大手首脳が批判  :日本経済新聞
● スイスフランショックで大儲けした人と大損した人。ファイナンススタジアムより抜粋。
- マネー報道 MoneyReport
● スイスフラン急騰、FX業者の経営に打撃  :日本経済新聞
● 投資家に巨額の損失 スイスフラン急騰の打撃 日本のFX業者らにも (産経新
聞) - Yahoo!ニュース
● スイスフランの介入停止問題に関するまとめ - 株式、FXのまとめ解説ブログ
トピックタイトルの生成
27
● スイス中銀、スイスフラン高抑制の無制限介入終了 :主要金融ニュース :マーケッ
ト :日本経済新聞
● スイスフラン、対ユーロで一時30%上昇 フラン上限廃止で | マネーニュース | 株式
市場 | Reuters
● スイスフラン突然の大暴騰!取引が成立しない状況に - Togetterまとめ
● スイスフラン騒動で大儲けした人と大損した人の阿鼻叫喚の叫びまとめ #fx -
NAVER まとめ
● スイス中銀がフラン上限撤廃・中銀預金金利一段のマイナス:識者はこうみる |
Reuters
● スイスフラン上限撤廃、通貨急騰で波紋 時計大手首脳が批判  :日本経済新聞
● スイスフランショックで大儲けした人と大損した人。ファイナンススタジアムより抜粋。
- マネー報道 MoneyReport
● スイスフラン急騰、FX業者の経営に打撃  :日本経済新聞
● 投資家に巨額の損失 スイスフラン急騰の打撃 日本のFX業者らにも (産経新
聞) - Yahoo!ニュース
● スイスフランの介入停止問題に関するまとめ - 株式、FXのまとめ解説ブログ
トピックタイトルどうやって作る?
タイトルはキーワードの羅列でいい?
キーワードをいい感じに並び替え?
並び替え考えるのも意外と大変
28
フラン、撤廃、上限、急騰、スイス
トピックタイトルどうやって作る?
前提
・ トピックに含まれる記事は同じ話題
・ 各記事のタイトルはある程度しっかりしている
・ いずれかの記事を使うとうまくいく可能性が高い
29
● スイス中銀、スイスフラン高抑制の無制限介入終了 :主要金融ニュース :マーケッ
ト :日本経済新聞
● スイスフラン突然の大暴騰!取引が成立しない状況に - Togetterまとめ
● スイスフラン上限撤廃、通貨急騰で波紋 時計大手首脳が批判  :日本経済新聞
● スイス中銀がフラン上限撤廃・中銀預金金利一段のマイナス:識者はこうみる |
Reuters
● スイスフラン急騰、FX業者の経営に打撃  :日本経済新聞
● スイスフランショックで大儲けした人と大損した人。ファイナンススタジアムより抜粋。
- マネー報道 MoneyReport
トピックタイトルどうやって作る?
前提
・ トピックに含まれる記事は同じ話題
・ 各記事のタイトルはある程度しっかりしている
・ いずれかの記事を使うとうまくいく可能性が高い
30
● スイス中銀、スイスフラン高抑制の無制限介入終了 :主要金融ニュース :マーケッ
ト :日本経済新聞
● スイスフラン突然の大暴騰!取引が成立しない状況に - Togetterまとめ
● スイスフラン上限撤廃、通貨急騰で波紋 時計大手首脳が批判  :日本経済新聞
● スイス中銀がフラン上限撤廃・中銀預金金利一段のマイナス:識者はこうみる |
Reuters
● スイスフラン急騰、FX業者の経営に打撃  :日本経済新聞
● スイスフランショックで大儲けした人と大損した人。ファイナンススタジアムより抜粋。
- マネー報道 MoneyReport
重要文(タイトル)を利用
トピックタイトルどうやって作る?
問題点
・ 媒体名などの不要な部分は省きたい
媒体名の辞書作るのはコストが高い
31
● スイス中銀、スイスフラン高抑制の無制限介入終了 :主要金融ニュース :マーケッ
ト :日本経済新聞
● スイスフラン突然の大暴騰!取引が成立しない状況に - Togetterまとめ
● スイスフラン上限撤廃、通貨急騰で波紋 時計大手首脳が批判  :日本経済新聞
● スイス中銀がフラン上限撤廃・中銀預金金利一段のマイナス:識者はこうみる |
Reuters
● スイスフラン急騰、FX業者の経営に打撃  :日本経済新聞
● スイスフランショックで大儲けした人と大損した人。ファイナンススタジアムより抜粋。
- マネー報道 MoneyReport
トピックタイトルどうやって作る?
問題点
・ 媒体名などの不要な部分は省きたい
媒体名の辞書作るのはコストが高い
32
● スイス中銀、スイスフラン高抑制の無制限介入終了 :主要金融ニュース :マーケッ
ト :日本経済新聞
● スイスフラン突然の大暴騰!取引が成立しない状況に - Togetterまとめ
● スイスフラン上限撤廃、通貨急騰で波紋 時計大手首脳が批判  :日本経済新聞
● スイス中銀がフラン上限撤廃・中銀預金金利一段のマイナス:識者はこうみる |
Reuters
● スイスフラン急騰、FX業者の経営に打撃  :日本経済新聞
● スイスフランショックで大儲けした人と大損した人。ファイナンススタジアムより抜粋。
- マネー報道 MoneyReport
重要な部分だけ取り出せば自然と媒体名はなくなる
トピックタイトル生成の流れ
1. 重要語を抽出
2. 重要文を選択
3. 文圧縮によるタイトル生成
*実際には2種類のタイトル(文字数制限あり、なし)を生成しているが、
  今回の発表では文字数制限なしの例
33
重要語抽出
タイトル生成に必要な単語を取得
Elasticsearch Significant Terms Aggregation
トピックに属するエントリのタイトルを対象
TopicSum
重要語抽出時にTopicSumの概念も利用
Exploring content models for multi-document summarization
単語を一般語、トピック固有語、文書固有語に分類する
トピックモデル
34
重要語抽出
タイトル生成に必要な単語を取得
Elasticsearch Significant Terms Aggregation
トピックに属するエントリのタイトルを対象
35
● スイス中銀、スイスフラン高抑制の無制限介入終了 :主要金融ニュース :マー
ケット :日本経済新聞
● スイスフラン突然の大暴騰!取引が成立しない状況に - Togetterまとめ
● スイスフラン上限撤廃、通貨急騰で波紋 時計大手首脳が批判  :日本経済新
聞
● スイス中銀がフラン上限撤廃・中銀預金金利一段のマイナス:識者はこうみる |
Reuters
● スイスフラン急騰、FX業者の経営に打撃  :日本経済新聞
● スイスフランショックで大儲けした人と大損した人。ファイナンススタジアムより抜粋。
- マネー報道 MoneyReport
スイスフラン、急騰、上限、撤廃
重要文抽出
重要語を利用して重要文を選択
● 各記事のタイトルのスコアを計算
○ 含まれる重要語のスコアの合計
● スコアが最大の記事のタイトルを取得
○ スコアが同じ場合は短い方
36
● スイスフラン突然の大暴騰!取引が成立しない状況に - Togetterまとめ
● スイスフラン上限撤廃、通貨急騰で波紋 時計大手首脳が批判  :日本経済新
聞
● スイスフラン急騰、FX業者の経営に打撃  :日本経済新聞
文圧縮
取得したタイトルの必要な部分のみを取得
どうやって?
先頭の単語から末尾の単語まで?
意味的な保証がしづらい 37
スイスフラン上限撤廃、通貨急騰で波紋 時計大手首脳が
批判  :日本経済新聞
スイスフラン上限撤廃、通貨急騰
スイスフラン上限撤廃、通貨急騰で波紋
係り受け関係に基づく文圧縮
係り受け解析を利用
係り受け関係:文節間の修飾関係
重要語を含む先頭文節から末尾の文節まで
非文を避けるためヒューリスティクなルールを用意
文節末尾が「助詞-格助詞-一般」なら係り先を取得など
38
スイスフラン上限撤廃、 / 通貨急騰で / 波紋
時計大手首脳が / 批判 / :日本経済新聞
前処理
記事のタイトルは普通の文章と異なるため、
前処理(タイトルの整形)が必要
39
スイスフラン上限撤廃、通貨急騰で波紋 時計大手首脳が
批判  :日本経済新聞
媒体名 文境界相当
前処理
記事のタイトルは普通の文章と異なるため、
前処理(タイトルの整形)が必要
前処理しないと
40
スイスフラン上限撤廃、 / 通貨急騰で /
波紋 時計大手首脳が / 批判  :日本経済新聞
スイスフラン上限撤廃、通貨急騰で波紋 時計大手首脳が
批判  :日本経済新聞
媒体名 文境界相当
前処理
記事のタイトルは普通の文章と異なるため、
前処理(タイトルの整形)が必要
「 」や「:」で強制的に文節を区切る
41
スイスフラン上限撤廃、 / 通貨急騰で / 波紋
時計大手首脳が / 批判 / :日本経済新聞
スイスフラン上限撤廃、通貨急騰で波紋 時計大手首脳が
批判  :日本経済新聞
媒体名 文境界相当
42
まとめ
まとめ
ブックマークに蓄積された過去10年のデータを
用いてトピック機能を実装
検索技術(Elasticsearch)と
自然言語処理技術の導入により実現
44
はてなブログに感想を書いて
「Hatena Engineer Seminar #4」
トピックを作ろう!
45

Weitere ähnliche Inhalte

Ähnlich wie はてなブックマークの新機能における自然言語処理の活用

4つの自作自然言語処理ツール
4つの自作自然言語処理ツール4つの自作自然言語処理ツール
4つの自作自然言語処理ツール
genroku
 
Ruby会議08 倉貫発表資料
Ruby会議08 倉貫発表資料Ruby会議08 倉貫発表資料
Ruby会議08 倉貫発表資料
Yoshihito Kuranuki
 

Ähnlich wie はてなブックマークの新機能における自然言語処理の活用 (9)

Grand Strategy For Presentation
Grand Strategy For PresentationGrand Strategy For Presentation
Grand Strategy For Presentation
 
20180601 OWASP Top 10 2017の読み方
20180601 OWASP Top 10 2017の読み方20180601 OWASP Top 10 2017の読み方
20180601 OWASP Top 10 2017の読み方
 
concrete5 テーマ作成ハンズオン (Ver5.6 まで)
concrete5 テーマ作成ハンズオン (Ver5.6 まで)concrete5 テーマ作成ハンズオン (Ver5.6 まで)
concrete5 テーマ作成ハンズオン (Ver5.6 まで)
 
実録 情熱と苦悩のテーマ・プラグインビジネス
実録 情熱と苦悩のテーマ・プラグインビジネス実録 情熱と苦悩のテーマ・プラグインビジネス
実録 情熱と苦悩のテーマ・プラグインビジネス
 
4つの自作自然言語処理ツール
4つの自作自然言語処理ツール4つの自作自然言語処理ツール
4つの自作自然言語処理ツール
 
WordPressをこれから始める人のためのテーマ講座
WordPressをこれから始める人のためのテーマ講座WordPressをこれから始める人のためのテーマ講座
WordPressをこれから始める人のためのテーマ講座
 
RStudioでRをはじめよう(R for Beginner using RStudio)
RStudioでRをはじめよう(R for Beginner using RStudio)RStudioでRをはじめよう(R for Beginner using RStudio)
RStudioでRをはじめよう(R for Beginner using RStudio)
 
Ruby会議08 倉貫発表資料
Ruby会議08 倉貫発表資料Ruby会議08 倉貫発表資料
Ruby会議08 倉貫発表資料
 
cvpaper.challenge チームラボ講演
cvpaper.challenge チームラボ講演cvpaper.challenge チームラボ講演
cvpaper.challenge チームラボ講演
 

Mehr von Shunsuke Kozawa

Mehr von Shunsuke Kozawa (8)

Gunosyにおけるパーソナライズシステム
GunosyにおけるパーソナライズシステムGunosyにおけるパーソナライズシステム
Gunosyにおけるパーソナライズシステム
 
Gunosyにおける仮説検証とABテスト
Gunosyにおける仮説検証とABテストGunosyにおける仮説検証とABテスト
Gunosyにおける仮説検証とABテスト
 
Elasticsearch in hatena bookmark
Elasticsearch in hatena bookmarkElasticsearch in hatena bookmark
Elasticsearch in hatena bookmark
 
はてなブックマークに基づく関連記事レコメンドエンジンの開発
はてなブックマークに基づく関連記事レコメンドエンジンの開発はてなブックマークに基づく関連記事レコメンドエンジンの開発
はてなブックマークに基づく関連記事レコメンドエンジンの開発
 
Heady news headline abstraction through event pattern clustering
Heady  news headline abstraction through event pattern clusteringHeady  news headline abstraction through event pattern clustering
Heady news headline abstraction through event pattern clustering
 
Active learning with efficient feature weighting methods for improving data q...
Active learning with efficient feature weighting methods for improving data q...Active learning with efficient feature weighting methods for improving data q...
Active learning with efficient feature weighting methods for improving data q...
 
Joint inference of named entity recognition and normalization for tweets
Joint inference of named entity recognition and normalization for tweetsJoint inference of named entity recognition and normalization for tweets
Joint inference of named entity recognition and normalization for tweets
 
Topical keyphrase extraction from twitter
Topical keyphrase extraction from twitterTopical keyphrase extraction from twitter
Topical keyphrase extraction from twitter
 

Kürzlich hochgeladen

Kürzlich hochgeladen (12)

新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 

はてなブックマークの新機能における自然言語処理の活用