Open yoheikikuta opened 3 weeks ago
以下の仮説を実験的に示したという論文。
the proportion of words common to the contexts of word A and to the contexts of word B is a function of the degree to which A and B are similar in meaning.
単語Aの文脈に共通する単語と単語Bの文脈に共通する単語の割合がAとBが意味的にどれだけ類似しているかの関数、ということで単語A,Bが現れる文脈に同じ単語が頻度高く出てくるのであれば単語A,Bは似ている単語であることを意味している。
ここではまだ文脈とは何かということは明確ではないが、これは複数個定義をして実験結果を調べることになる。
関数形がどういうものかに関しても論文の中で解説されるが、似ている単語のペアを検出する基準としてのみ文脈の類似度が信頼できるものになることを示している、と書いてある。これは文章だけ読んでもちょっとよく分からないので中身を見て理解していこう。
関数形がどうこう、という部分は単語の同義度合いを横軸にして単語の重複測定値を縦軸にして 3 次曲線で fitting しているという話。この時、単語の同義度合いが大きい(類似度が高い)領域でのみ重複測定値が強く機能している、すなわち重複が多い場合に単語の類似度が高いと自信を持って言える、ということを言っている。逆に言えば、重複があまり多くない場合には定量的に明確な主張はしづらい、とも言っている。
この論文で興味があるのは文脈の同義性や意味の同義性に関してである。 より具体的には、単語Aを含む文脈と単語Bを含む文脈に共通する単語の割合が、AとBがどれほど意味的に類似しているかにどのように関連しているかを調べた、と述べている。
ここでいきなり specific な問題になるが、先行研究として、共通する単語の割合に関して正の関係性が存在するということが情報検索における統計的関連手法の基本的な前提となっているからという繋がりになっている。
この先行研究というのが Proceedings of the Symposium on Statistical Association Methods for Mechanized Documentation https://nvlpubs.nist.gov/nistpubs/Legacy/MP/nbsmiscellaneouspub269.pdf である。
これは symposium なので色々な研究内容が紹介されているが、この中の The Interpretation of Word Associations は特に共起性と同義性の関係性について論じているものであるように見受けられた。
The Interpretation of Word Associations を眺めてみると、同義語の概念は広く受け入れられているがその定義は明確でなく、そこに一定の定式化を与えたというものになっている。
十分に大きなコーパスでは、多くの同義語が互換的に使用されており、適切な条件下で、二つの単語がどの程度同義であるかは、それら二つの単語がさまざまな文脈で互換的に使用されている程度を観察することで測定できる、という仮説に基づいている。
ポイントだけ抜き出すと、単語a,bが互換であるとは、単語iとの共起数をあるスライディングウィンドウ(この文献では順序も考慮している)で区切って数え上げていき、以下のような割合が高いときに互換度合いが高いと定義している。
$$ \frac{N{a,i} N{b,i}}{N_i} $$
例えば以下のような例文を考える。スライディングウィンドウを 2 とすると、例えば Army
との共起を考えると次に来る単語として launches
と flies
があり、これらは互換性が高いということになる。
The U.S. Army launches rocket missiles while the U.S. Navy launches jet missiles; however, although the Navy flies jet planes, strangely it is not the case that the Army flies rocket planes.
これは文脈をスライディングウィンドウで区切った順序付きの単語列と考えて、分布仮説とかなり密接な関係性があるものである。 ただし実験結果は付与されていない。
前提になっている、多くの文脈を共有する単語のペアが意味的に密接に関連している、というのが実際のデータにおいて本当にそうなっているのか、を明らかにしようというのが目的である。
具体的に検証するのは、「意味がより類似している2つの単語ほど、共通の一次的な関連(これは文脈を文とするならば同じ文に登場するという意味)を持つ単語の数が多くなる」というものである。
このような考え方自体は全く新しいものではなく過去の研究で言及されているが、ちゃんと実験的に示したという意味でこの論文が代表的な結果として引用されているということだろう。
方法としては、特定の少数の単語(テーマ単語と呼ぶ)のために生成された文のコーパスの文脈と、人間によるこれらのテーマ単語のペア間の同義度合いの判断と、を比較する。
具体的な実験手順が後から紹介されてそれを見ないとちょっと想像がつきにくいところがあるが、まずテーマ単語のペアがあってその類似度は人間がう〜んこれくらい!とスコアをつける(言語は人間固有のものなので基本的にはこのように判定するしかない)、そしてテーマ単語ごとに文章を作成(これはスコアをつけた人とは別の人が作文して作る)して類似度の高いテーマ単語のペアそれぞれで作成された文章に同じ単語がたくさん出現してますか?を調べようというものである。
こういう実験設定面白いね。 いまならアノテーションを大規模に使うとかウェブ上の情報とかで大規模に色々調べたりとかで規模の大きいものへと拡張することもできそうだけど、この時代にそういうものはないので仮説に基づいて実験参加者を集めてやっていて、でも内容的にめちゃくちゃ金をかけなくても仮説を検証できる程度の実験はできる。
文脈、という言葉を未定義で使ってきたが、この論文では以下の 4 つを定義し、それぞれの定義で文脈的分布の類似度を評価する。
テーマ単語ペアとして65組の単語ペア(高度に同義的なペアから意味的に無関係なペアまで)を使用し、各文脈の定義に基づく意味の類似性と重複の度合いの関係を見ていく。
実験設定については以下。途中で単語ペアを変えたのかちょっとややこしいことが書いてあるけど、やりたいことは素直に評価してもらうことだと思われる。
2つのグループの大学生が被験者として参加し、報酬が支払った。 グループIは15名の被験者で構成され、2週間の間隔を置いて2回のセッションに参加。 最初のセッションでは、最終的に研究に選ばれた48組のテーマペア(そのうち36組は最終的に選ばれた65組のペアの中に含まれる)に対して同義性の判断を実施。 2回目のセッションでは、最終的に選ばれた65組全体に対して同義性の判断を実施。 したがって、36組のテーマペアが両方のセッションで使用されたので、この36組のペアを使用して、同義性の判断における被験者内信頼性を計算した。 各被験者について、最初と2回目の36組に対する判断間で積率相関係数が計算し、これらのペアが2回のセッションで異なるペアに混ぜられていたにもかかわらず、相関は非常に高く15人の被験者全体の平均は r = 0.85 だった。
第2グループの36人の被験者(グループII)は、グループIと同じ一般集団から選ばれ、2回目のセッションのみに参加。 65組すべてのペアに対して判断を実施。 したがって、2回目のセッションで両グループの被験者が判断した65組の単語ペアごとに、グループIとグループIIのそれぞれ独立して平均判断が評価された。 これら2つの平均値セット間の相関はr = 0.99となり、両グループの判断を統合するのは妥当だと考えられる。
2回目の実験セッションで2つのグループ(合計51人の被験者)から収集された判断の平均を以降の議論では使用する。
具体的には以下の表。論文から引用。
cord
(細長くて柔軟な繊維や糸を束ねたもの) と smile
は似ていないとか、gem
と jewel
は似ている(これは昨今においては ruby の gem とかも想起するのでプログラマ的には少しだけ違和感があるが)とか、妥当なものに思える。
同じ単語が複数回登場していることに注意。例えば automobile
は 2 回出ていて、 cushion
とは似ていないけど car
とは似ている、とか。
65組のテーマペアのそれぞれ異なる単語に対して書かれた100の文から構成する。テーマペアには、以下の表に示される48の異なる名詞が含まれている。これは論文から引用。上の同義度合い判断の時は、テーマペアは常に列Aから1つの単語列Bから1つの単語が含まれる用にしていた。
50人の学部生に報酬が支払われ、それぞれが列Aのテーマ単語を使って2つの文を書き、別の50人の学部生が列Bのテーマ単語を使って文を書いた(これらの被験者は同義性の判断には参加していない)。 被験者には、テーマ単語は名詞としてのみ使用し、各文は少なくとも10語以上でなければならないと指示された。 実際の平均文長は約13.5語だった。
このようにして、48のテーマそれぞれに対して100の文を生成。
コーパスの生成に、学生を使って作文をさせるというのが時代を感じさせるステップだ。 実験に変にバイアスが入らないための工夫も記載されている。
各列のテーマについて、異なる被験者に文を書かせることで、テーマペアの両方のメンバーの文が同じ被験者によって書かれた場合に生じる可能性のある不自然に高い重複を回避した。 また、被験者が生成する文にテーマの順序が体系的な影響を及ぼすのを避けるため、各被験者には異なる順序でテーマを提示し、文を書く冊子の各ページには1つのテーマ単語だけを配置。 さらに、各被験者が各セットに対して2つの文しか提供しなかったため、特定の被験者の個性が結果に与える影響はごくわずかで、無視できる程度だった。
以下の計算式で重複を測定する。
$$ M_x = \frac{ N (A_x, B_x) }{ \text{Min} \left[ N (A_x), N (B_x), \right] } $$
それぞれの意味は以下の通り。
S_A
$ : テーマ単語Aについて書かれた文章で使われた単語全ての集合(重複は排除しない)A_x
$ : $S_A
$ の部分集合で、何かしらの条件 $x
$ で条件づけられた部分集合を表すN
$ については頻度をカウントするが、これは部分集合がどのように条件づけられるかが本質的であり、これは具体例を見た方が分かりやすい分母に関して以下のような記述がある。
これはパッと見で何を言っているかよく分からなかったが、$N (A_x)
$ と $N (B_x)
$ の小さい方を取るので、$A_x, B_x
$ 両方で共有しうる要素の最大数になるということなので、$M_x
$ の最大値が 1 になることを表現している。極端な例として $A_x
$ が $B_x
$ の部分集合であれば 1.0 になる(重複ありの場合なので正確に言えば部分多重集合ということだが)。
This denominator is the maximum number of items that could be shared under condition x.
なお、分母として $N (A_x) + N (B_x) - N (A_x \cap B_x )
$ も考えられると言っているけど、定量的な結果は同じようなものだったと脚注に書いてある。
この論文では条件づけの方法として 2 通りの方法を考えている。 それが type 条件と token 条件である。
type 条件とは $S_A
$ に現れる単語を重複なしにした部分集合 $A_y
$ を使うものである。これは頻度は重要ではないという仮定に基づくものである。
token 条件とは $S_A
$ に現れる単語を重複ありにした部分集合 $A_k
$ を使うものである。こちらは頻度が重要な情報だという過程に基づくものである。これは頻度分布を反映している。
具体的な計算に関しては以下の表を参考にするといい。これは論文から引っ張ってきたもの。
type 条件の $M_y
$ に関しては重複を排除した集合を考えてカウントしており、この場合 gem に登場する(重複排除した)単語集合は jewely に登場する(重複排除した)単語の部分集合なので、重複は 1.0 で最大値となっている。
token 条件の $M_k
$ は重複を考慮しているので、部分(多重)集合にはなっていないので 1.0 よりも小さい値になっている。
ここからが実験結果。
文脈として、ある文に出現するすべての単語(内容語と機能語の両方)として定義するものを採用する。
以下の図は、この文脈の定義に基づく重複と判断された意味の類似性を示している。
下の曲線はタイプ測定値($M_y
$)で構成されており、上の曲線はトークン測定値($M_k
$)で構成されている。
この図や後の図に示される fitting curve は、値の傾向を特徴づけるために示された三次最小二乗法によるもの。
これは明確に「単語が意味的に類似しているほど、その文脈的な分布も類似している」という仮説を支持している。 これこそが分布仮説の実験的にサポートする結果であろう。
特に同義度合いが 3.0 以上の場合に顕著に表れているが、同義度合いが低い場合でも一定の信頼がおける。 論文では同義度合いの判断を真に比率尺度で表現できるかどうかは不明だが、被験者の判断は一貫性があると述べている。
この結果は登場する単語をそのまま使っているものだが、例えば動詞はすべて原形にするなどの前処理をした場合でも同じような結果であったと述べている。まあそれはそうだろうという期待はある。 これは以下の図であり、全体的に上にシフトさせるような効果があることが見て取れる。
どちらの結果でも、重複を考慮する token 条件の方が同義度合いが 3.0 以上の場合の傾きが大きく、同義性が高いペアでは共起する単語の出現頻度が多くなることが示唆されている。これは直感的にはそうであることが期待されていると思うが、実験的にもそれが示されたということになる。
分布仮説的にはここまでがメインという感じだが、この論文では情報検索を念頭に置いているので、情報検索における連想法にとって重要な問題について深掘りをしている。
それは「単語ペア間の同義度合いを、文脈的な重複からどの程度推測できるか」ということ。 図1と図2から明らかなように、重複に基づいて広範な区別をすることは可能であり、具体的には、同義度合いが3.0未満のテーマペアと3.0以上のテーマペアを区別できると期待できる。
この観察を定量化してみていく。
まず、重複測定値は、ある単語ペアが3.0未満の同義度合いを持つ(中程度または低い同義性のペア)、という帰無仮説を検証するための統計量として使う。この 3.0 は上の観測から、これ未満とこれ以上で重複測定値の傾きが顕著に変わるので、ここが一つの基準だろうということで設定している。
なので、片側検定で、第一種の過誤(すなわち帰無仮説が正しいにも関わらずそれを棄却してしまう)確率を 1% or 5% で固定して、特定の重複測定値を超える低同義性ペアの割合を考えることで検定棄却点を求める。
そして、この検定棄却点を超える既知の高同義性ペアの割合を計算し、この割合を仮説が誤りであるときにそれを棄却する確率の推定値とする。これがすなわち検出力である。
この研究では以下が得られている:
以下の表が各文脈の定義で正しく検出できる割合を示したものである。
一番上の Unrestricted(これは文脈とは文であるというもの)で、CW & FW の場合を見てみる。
論文には FW が Functional Word (機能語: 接続詞・冠詞・助動詞・前置詞・代名詞など) である説明があるので、CW は説明がないが Content Word (内容語: 名詞・動詞・形容詞・副詞) である。
unleveled は前処理なしで、leveled は原形にするなどの前処理をしているもの。
$M_y
$ の 1% のところは、75% の割合で正しく検出(つまり、20組の高同義性ペアのうち15組が重複測定値に基づいて正しく高同義であると検出できていて、556組の低同義性ペアのうち 5.56組 つまり 6 組は重複測定値に基づいて誤って高同義であると判断される)している。括弧内の数字は 1% の棄却点における重複測定値の値を書いていて、これは論文に明確には記載されていないが、0 ~ 1 の値域をとるので百分率として扱うように 100 倍したものを扱っていそう。具体的な数字としては 34 で以前の結果の図を眺めて 0.34 の線を考えれば妥当そう(ただし、以前の結果の図は 511 組のデータはプロットされないので完全に対応はしてないので注意)。
データ数はそこまで多くはないが、全体的な傾向として検出力は一定水準以上あり、定量的にも重複測定値が高同義性の単語を検出する力があることが見て取れる。 文脈としては、より人間の知識を活用した以下の 2 ケースの方が検出力が高いことも見て取れる。これは詳細は置いておくとして、いまのデータ数からすると人間の知識を活かすことでより目的を達しやすくなるということは妥当だろう。
単語の出現頻度が高い場合さまざまな状況で広く使用される結果であると考えられるので、その単語の出現が特定の単語の出現に依存する可能性は低くなると考えられて今回の結果に影響を及ぼしている可能性があるので、Lorgc Frequency の場合は単語の出現頻度を bin に分けてその中で分析をしている。これは期待通り出現頻度が多い単語は様々な場面で登場するので特定の状況だけでよく現れるということが生じにくく、検出力が下がっている。
頻度毎の重複測定値、人間が判断した同義度合いのデータが以下の図。 上の結果の表でも示されているが、面白いのは機能語に関しては type 条件では傾きがほぼゼロだが、token 条件では有意に傾きがあること。これは論文中ではうまく説明できる要因を見つけられなかったと言っている。こういう分析を現代のデータでやり直してみたりするのは面白いかも。
ここからは Grammatical と Assosication の場合に具体的にどうやっているかとその定量的な評価をより詳しくやっている。 ここにはそこまで強い興味がないので流し見した程度だけど、基本的には人間の知識を入れて文脈の識別力の高さに反映することでより高い検出力を達成したということで、まあそれは自然だと思う。
Association では「テーマと最も密接に関連していると判断されたすべての単語を取り出す」ということを人間の手を介してしないといけないが、それには著者の妻が駆り出されたりしていて笑ってしまった。実験の予算か時間の都合なんだろうか。
最後に、関連性が高い単語はテーマ単語の近くに出現する傾向があるのではないかという仮説を検証し、これは下の図のように特にテーマ単語の直前に出現する内容語の25%、およびテーマ単語の直後に出現する内容語の20%が、テーマ単語に対して高い関連性があると判断された単語のセット(これが上述の人間の手を介して準備したもの)に属していることが示された。
一番明らかにしたかった「単語のペア間に存在する同義性(意味的類似性)の度合いと、その文脈がどれほど類似しているかの度合いには正の関係があること」がデータから示された。
より具体的には、文脈において比較的大きな重複が見られる場合、その単語ペアは高度に同義であると推測してよい。 しかし、重複が少ない場合の同義性の度合いを推測することは不確実性が高く、低いまたは中程度の同義性を持つ単語は、重複の点で比較的少ししか違いがなかった。
ということで論文の内容は終了。
かなり昔の論文で紙の論文をコピーした pdf なのでちょっと読みづらさはあったが、内容は面白くて分布仮説のオリジナルの論文を腰を据えて読むということができてよかった。
現代のデータとか日本語で試してみたりしたら結構面白いのではないかと思う。
論文リンク
https://dl.acm.org/doi/10.1145/365628.365657
公開日(yyyy/mm/dd)
1965/10/01
概要
単語の意味はその単語の周囲の単語(コンテキスト)によって形成されるという分布仮説 distributional hypothesis を示したオリジナル論文。 「単語のペア間に存在する同義性(意味的類似性)の度合いと、その文脈がどれほど類似しているかの度合いには正の関係があること」を実験的に示した。特に、文脈において比較的大きな重複が見られる場合、その単語ペアは高度に同義であると自信を持って言ってよいという結果が得られた。 時代的に大規模なデータとかクラウドソーシングとかもないので、単語のペアを人間に同義度合いをアノテーションしてもらう、単語に対して人間に文章を書いてもらってコーパスを生成する、という手順でデータを作ってそれを分析している。