SocialDict – 英文Webページのスマート な注釈・辞書引きシステム SBM 研究会 2009/9/13 www.socialdict.com (「補足」と題したページは発表中に説明できなかった部分の補足です.) 東京大学情報理工学系研究科 博士1年 江原 遥 www.socialdict.com
SocialDict –英文Webページのスマートな注釈・辞書引きシステムSBM 研究会 2009/9/13
www.socialdict.com(「補足」と題したページは発表中に説明できなかった部分の補足です.)
東京大学情報理工学系研究科
博士1年 江原 遥
www.socialdict.com
自己紹介 niam
• 東京大学情報理工学系研究科 中川研究室
というところで,
• 自然言語処理
• 機械学習
の研究をしています.
Twitterやってます.はてなブックマーク,ダイアリーもやってます.Follow大歓迎!:
niam
mainの逆綴りの人.
www.socialdict.com
今日の発表
発想の原点:「英単語を推薦したらどうなるか?」
SBMにおける推薦:みんなが自分の気に入ったWebページをブックマーク
自分の興味のありそうなWebページを推薦してくれる
Webページ→(Webページ中の)英単語にみんなが自分の知らない英単語をチェック
自分の知らなさそうな英単語を予測してくれる
www.socialdict.com
真の狙い
•英語って面倒だよね!
• 集合知で何とかできない?
• 「英語学習」の教材はたくさんあるが,今この場で読解を支援してくれるシステムを作りたかった.
SocialDict名前はnokunoさんのSocial IMEをインスパイヤしました.
www.socialdict.com
補足1 (1/2)
SBMとの関連がよく分からないという意見がありましたので,こういう狙いがあるよ,というものを1つ挙げます:
データを取るための手法としてみた場合:• SBMはユーザの「Webページに対する興味」を計測する手法• しかし,SBMでのブックマーク数が,必ずしもWebページの内容に対する興味を表していない場合もある.例えば,日本語のSBMでは英語のWebページのブックマーク数は少ない.
• 仮説:読めないページはブックマークされないWebページのブクマ数=ユーザのWebページに対する興味*ユーザのWebページに対する読解力
そこで,ユーザの「Webページに対する読解力」を計測する手法として,SocialDictを提案.
補足1 (2/2)
ブクマ数=Webページに対する興味 * Webページに対する読解力
• 通常,Webアプリケーションから各ユーザのWebページに対する読解力を取得することは難しいです.
• しかし,SocialDictを使えば,Webページ中の全単語について,各ユーザがそれらを知っている確率を計算できます.これを読解力の近似値として用いることが考えられます.
• ただ,このような目的(ブクマ数のモデル化)のためにSocialDictが役立つと主張するためには,学問的にはデータを溜めて,多くのユーザに関して上記の確率値を計算し,ブクマ数と実際につき合わせる必要があり,道は長いです.
語義注釈システム
Webページ中の分からない単語を辞書で引くことが可能な,読解支援システムの一種
www.socialdict.com
既存の語義注釈システムpop辞書 (2001)
pop-upで表示する
popIn (程, 2008)なぞって選択した文字列に対して訳を埋め込む
www.socialdict.com
提案予測機能を追加する:クリックしたときに注釈を埋め込むのに加え,テキスト中のユーザが知らなさそうな単語(非既知語)を予測し,予め注釈をつける
黄色:ユーザが知っていると判定された語赤色:ユーザが知らないと判定された語
www.socialdict.com
利点
• クリックが不可能/難しい場合
印刷時(不可能) PDAなど(難しい)
www.socialdict.com
システムの概要
英語Web
ページの
Webサーバ
判別器ユーザuが単語tを知っているか否か?
単語頻度
単語難易度
辞書引きログ
辞書
辞書API
(1) (2)
(3)(4)
(5)
(6)
(7)(8)
提案:辞書引きログを訓練データとしてユーザの語彙力を推定し,ユーザが知らなさそうな語彙を予め辞書で引いておく.
SocialDict@Google App Engine
ユーザuブラウザ
www.socialdict.com
補足2
• 要するに,このシステムの構成で言いたかったのは,SBMでブックマークするときに,
http://b.hatena.ne.jp/URL
のようにしてブックマークできるのと同様に,
http://www.socialdict.com/URL
で英文の注釈&予測が付けられるようにしましたよ,ということです.
他のSBMサービスと連携させて,同時にブックマークさせることも考えられます.
BBCニュース記事で比較自分(3000語訓練)新規利用者
黄色背景:既知
ピンク背景:非既知
ピンク背景は色が濃いほど知らない確率が高い
www.socialdict.com
デモhttp://www.socialdict.com/
+見たいWebページのURL
辞書にはGENE95を使用
www.socialdict.com
補足3 (1/2)
「知らないと判定された語をひっくり返せるのか(知っていることにできるのか)」という質問がありましたが,可能です.
上の例で,知らないと判定されたconcessionsを知っている場合,concessionsをクリックして語義注釈を引っ込めればOKです.
補足3 (2/2)要するに,予測をクリックでひっくり返すと学習されます.
• 知っていると予測された単語(黄色)をクリック→実は知らなかったと学習される
• 知らないと予測された単語(赤色)をクリック→実は知っていたと学習される
Google App Engine (GAE)
• Webアプリケーション用クラウド環境.
• スケーラビリティを確保
–ユーザが多数になっても対応可能
• ユーザ登録をGoogleアカウントで代用.
• Googleが2008年4月に提供を開始した
今はPythonで作ってます.
www.socialdict.com
モデル
www.socialdict.com
Item response theory (IRT)IRT(項目反応理論):
TOEFLなどの既存の言語テストで利用されているモデ
ルの総称.テスト結果から,ユーザの能力と項目(設問)の難易度を推定する.
Raschモデル:IRTのうち最も基本的なモデル.蓄積される辞書引きログ(yn,un,tn)から,次のパラメータを計算する.θu:ユーザuの語彙力,dt:単語tの難しさ
ユーザu∈U, 単語t∈T, y∈{0,1}y=1:単語を知っている, y=0:単語を知らない蓄積されるログ:
(y1, u1, t1), (y2, u2, t2), …, (yN,uN, tN)www.socialdict.com
Raschモデル
( 1| , ) ( )n n n u tP y u dt
入力:(y1, u1, t1), (y2, u2, t2), …, (yN,uN, tN)
出力:θu:ユーザuの語彙力dt:単語tの難しさ
計算方法:
1( )
1 exp( )x
x
ただし, とする.
1
arg max ( | , )N
n n n
n
P y u t
θ,d
θ d,
1 | |
1 | |
( , , , , )
( , , , , )
u U
t Td d d
θ
d
www.socialdict.com
シグモイド関数1( )
1 exp( )x
x
x
任意の実数 を(0,1)区間に写像して
確率値とみなせるようにする
x
( )x
www.socialdict.com
Raschモデルの強化単純にRaschモデルを最尤推定で解く方法を強化し,本システムにあった方法を用いた.
• 予測性能の向上
「dt:単語tの難しさ」を補強する素性を追加
• Online学習
Batch手法では,クリックごとにパラメータ推定をやり直
さなければならず,逐次的にデータが蓄積される本システムには適さない.
www.socialdict.com
素性を追加
T T, ( , )rasch rasch u tu t w θ d φ e e とすると,
(0, ,1,0 ,0)u e
|U|
u
(0, ,1,0 ,0)t e
|T|
t
1 | | 1 | |( , , , , ), ( , , , , )u U t Td d d θ d
T
( 1| , )
( ( , ))
n n n u t
rasch rasch
P y u t d
u t
w φ と表せる
www.socialdict.com
素性を追加
Rasch:
T
T( , ) ( )
LOGRES a
LOGRES u t au t
w θ d w
φ e e φ
LOGRES:(強化版)
T
T( , )
rasch
rasch u tu t
w θ d
φ e e
φaに素性を追加することが可能.追加した素性:•Google 1-gram
約1兆ページのWebページ中の英単語の頻度.•SVL12000人手で基本的な単語12,000語に対し,難易度を12段階でつけたもの.
www.socialdict.com
Online学習を使用
Raschモデルの最尤推定の計算手法:• Batch学習(L-BFGS, Nocealdal+, 89), (Trust region Newton
method, Lin+, 08)
最適解が得られる全データを何度も見て更新
• Online 学習(Stochastic Gradient Descent, SGD, Duda+, 2000)
最適解を求めることは犠牲にする訓練データから逐次的に学習することが可能.→辞書引きログが逐次的に追加されていく今回のような実システムに適する。今回使用。
www.socialdict.com
補足4 (1/2):2値を1本の式で表現
T T
1T T
1T T
( 1| , ; )
( 0 | ; ) 1 1
( | ; ) 1
y
n
y
n
yy
P y u t
P y u
P y
w w φ w φ
w w φ w φ
φ w w φ w φ
より、
と表せる。
www.socialdict.com
補足4 (2/2):対数尤度関数を定義結局、N本のデータを考え、次の対数尤度関数
E(w)をwに関して最小化する問題に落とせる
1
1
1T T
1
T T
1
( ) log ( | ; )
log ( | ; )
log 1
log 1 log 1
nn
N
n n
n
N
n n
n
N yy
n n
n
N
n n n n
n
E P y
P y
y y
w φ w
φ w
w φ w φ
w φ w φ
www.socialdict.com
SGD
1
1
arg max ( | , ; ) arg min ( )
( ) log ( | , ; )
N
n n n
n
N
n n n
n
P y u t E
E P y u t
w w
w w w
w w
( 1) ( )
( 1) ( ) ( )
1
( )
( )
( )
Nk
k k k
n
k k
n
n
k E
E
w
w
w
w
w
w
1
, ( ) ( )N
n
n
E E
w w
最急降下法:(比較)ηは定数
SGD:
λ, k0は定数(ハイパーパラメータ)
0
1
( )k
k k
www.socialdict.com
評価本研究の評価には語彙力の正解データが必要。
• 16人の被験者(東大修士院生)に対し
• 1人12000語について
語彙力を測定した。
www.socialdict.com
語彙力測定方法
Dale (1965) Paribakht+ (1993) 今回の設定
I never saw it before. I have never seen this
word.
見たこともない
見たことがある気がする
I’ve heard of it, but I
don’t know what it
means.
I have seen this word
before, but I don’t know
what it means.
確実に見たことはあるが意味は知らない/
覚えたことがあるが意味を忘れている
I recognize it in
context.
I have seen this word
before, and I think it
means xxx.
意味を知っている気がする/意味が推測できる
I know it. I know this word. It means
xxx.意味を確実に知っている
I can use this word in a
sentence.
自己申告式 自己申告式折衷式
www.socialdict.com
実験設定実験目的:どの程度システムを使い込むと,どの程度の精度で予測可能なのかを測定する.
• 辞書引きログがN0個蓄積されたところにユーザが1人新規にシステムを使い始め,N1個の単語の既知/非既知が得られたと想定.
• この時,そのユーザのTestに含まれる単語のうち何%について既知/非既知を正解できたかを1人の精度とした.
• 12000語を
に分割し、16人の精度の平均値を計算。
• ログは,辞書引きログの代わりに,同じ(yn,un,tn)の形式のログが残るsmart.fm(旧iKnow)というシステムのログで代用
ログ(N0)+10~600語(N1) Training
1400語 Development
9999語 Test
www.socialdict.com
実験1:素性追加の効果精度(%)
訓練データ量N1(個)www.socialdict.com
実験2:各手法の比較
訓練データ量N1(個)
精度(%)
www.socialdict.com
まとめ
目的:Webページ中の知らない英単語を予測(推薦)するシステムを作ってみた
結論:80%の精度で当たる推薦アルゴリズムと数学的に同様な手法が,TOEFLなどの言語テストでも使われている.
(情報処理技術者試験でも使われているという噂)– Log-linearモデル(対数線形モデル)– ロジスティック回帰– Raschモデル in 項目反応理論
• 学生の卒論,修論でこの手のサービスを作るなら,Google App Engineを使うのがベスト
www.socialdict.com
TODO
ちょっとプリミティブすぎる・・・
• 優先的にやりたいこと:iKnowと連携
–知らない単語一覧をiKnowにインポート
• RSSフィード中のWebページの難易度を全部計算して,難易度順にソート
9月~10月中にはやりたい.
• PDFへの対応は,pdftotextなどを使えば楽だが,そうではないと難しい
www.socialdict.com
データが溜まれば・・・
• データが溜まれば,面白いことが出来る– 例えば,ユーザのトピック(政治,スポーツなど)ごとの語彙力を表示したりだとか・・・
ので,みなさん使っていただければ幸いです.
研究としてやっているので,後2~3年はサポートします.特に,この冬の卒論・修論に向けて英語の文献をたくさん読む人の間で流行らせたいなぁ・・
www.socialdict.com
ご清聴ありがとうございました
www.socialdict.com