Obey Your MATHEMATICS.

機械学習関連の純粋数学や実験など

コサイン類似度&L^2ノルムの変動を用いた特徴語抽出

こんにちは

Twitter就活コンサルタントと巷で噂のマスタケです

学生の頃みたいなクソみたいな記事は書いてはイケないと言うプレッシャーがあり、しばらくご無沙汰してましたが、書きます。(今回の記事がクソ記事ではないと言う意味ではありません。クソ記事です)

§1. はじめに

今日のブログネタは次の2つの論文

[1]抽出型文書要約における分散表現の学習 —文書と要約の距離最小化—

[2]Summarization Based on Embedding Distributions


を読んで思いついた事の実験の報告と言った感じです。

これらの論文では、(word2vecなどの)単語の分散表現{\mathcal{M}: \{ \mbox{単語}\} \rightarrow \mathbb{R}^d } を用いて次のように文章ベクトルを定義し*1

{ \mathcal{F}:\{\mbox{文章}\} \rightarrow \mathbb{R}^d   , \ \  \mathcal{D} \mapsto \dfrac{1}{|\mathcal{D}| }\sum_{w \in \mathcal{D}} \mbox{tf-idf}(w) \mathcal{M}(w)   }

コサイン類似度を用いて2つの文章間の類似度を測り、それをベースに自動要約のアルゴリズムを提案しています*2:

f:id:mathetake:20170504175842p:plain


この文章ベクトルの良いところは、tf-idfベースの類似度算出の欠点である、互いに出現しない単語の類似度が考慮される点にあります。



これらの論文を見つける前に、最近仕事でこんな感じの似たようなベクトルを作って要約とは別の目的で使っていたのですが、なにかこの路線でおもしろい事が出来ないかなあと考えていて

特徴語抽出にこのベクトルを使えるのでは??

とアイデアを思いついたのでその定式化と実験を報告します。

§2. 提案手法

今回のアイデアはいたってシンプルで

特徴語 = その単語を除いた文章のベクトルと、元の文章のベクトルの類似度の乖離が大きい

と考える事です。より正確に、次の2つの関数

{ \mathcal{G}_{L^2}: \mathcal{D} \mapsto \mbox{argmax}_{w \in \mathcal{D}} \| \mathcal{F}(\mathcal{D}) - \mathcal{F}(\mathcal{D} \backslash \{w\} ) \|_2 }

{ \mathcal{G}_{cosine}: \mathcal{D} \mapsto \mbox{argmin}_{w \in \mathcal{D}} \mbox{cosinesim} \biggl(\mathcal{F}(\mathcal{D}), \mathcal{F}(\mathcal{D} \backslash \{w\} ) \biggr) }


が最も特徴的な単語を抽出するであろうと考えます。1つ目の式ではL^2距離の乖離が激しい単語こそ特徴語であると考え、2つ目の式ではコサイン類似度の乖離が激しい単語こそ特徴語であると考えています。

§3. データセットと分散表現モデル

今回実験のために使ったデータセットはKaggleのAmazon Fine Food Reviewsです:

Amazon Fine Food Reviews | Kaggle


また、分散表現モデルにはGoogleが公開している学習済みのword2vecのモデルを使いました:

Google's trained Word2Vec model in Python · Chris McCormick


§4. 実験結果

実験では、それぞれの手法に対してトップ5の特徴語候補を抽出してみました。

トキトウに選んだいくつかの文章に対する結果は以下のとおりです:

元の文章: If you are looking for the secret ingredient in Robitussin I believe I have found it. I got this in addition to the Root Beer Extract I ordered (which was good) and made some cherry soda. The flavor is very medicinal.

TOP1 TOP2 TOP3 TOP4 TOP5
コサイン類似度 medicinal secret cherry soda ingredient
L^2ノルム medicinal secret cherry soda ingredient


元の文章: Good oatmeal. I like the apple cinnamon the best. Though I wouldn't follow the directions on the package since it always comes out too soupy for my taste. That could just be me since I like my oatmeal really thick to add some milk on top of.

TOP1 TOP2 TOP3 TOP4 TOP5
コサイン類似度 soupy directions cinnamon apple follow
L^2ノルム soupy cinnamon directions oatmeal oatmeal


元の文章: My English Bulldog had skin allergies the summer we got him at age 3. The vet recommended we wean him off the food his previous owner gave him (Iams Lamb and Rice) and onto a new kind. This was the second one we tried, and it has been working ever since. It's for dogs that need a limited diet who can be sensitive to additives and proteins commonly found in commercial dog food (like chicken or beef).

TOP1 TOP2 TOP3 TOP4 TOP5
コサイン類似度 wean proteins commonly additives allergies
L^2ノルム wean proteins additives commonly allergies


元の文章: To me, these are nothing like the regular Altoids and are not breath mints. They are pleasant-tasting little candies in a cute convenient tin, and that's as far as it goes. The mintiness is just not strong, and the wintergreens are definitely weaker than the peppermint minis. I'm not a dragon-breath person, but still, one of these mints is too small to have any effect on my breath. Four or five will freshen my breath for a short while - maybe 15 minutes. At this point, I think the Icebreakers Frost mints are the best as sugar free breath mints.

TOP1 TOP2 TOP3 TOP4 TOP5
コサイン類似度 freshen dragon minis weaker peppermint
L^2ノルム freshen dragon minis mints mints


元の文章: i cannot live without this citron falksalt, it is wonderful on watermelon, fish, almost any food requiring salt and in my world it all does. just try it on red juicy watermelon, wonderful experience.

TOP1 TOP2 TOP3 TOP4 TOP5
コサイン類似度 citron requiring juicy watermelon watermelon
L^2ノルム citron watermelon watermelon requiring juicy


元の文章: Kettle Brand chips used to be so good...oily, crunchy, flavorful. I suspect the company has been bought out and the recipe has been changed for the worse. Now they're no better than any other big name brand chip. Try the Good Health Kettle Style Olive Oil chips instead. They are as good as the Kettle Brand once was. R.I.P., Kettle Brand chips. :(

TOP1 TOP2 TOP3 TOP4 TOP5
コサイン類似度 oily suspect flavorful recipe worse
L^2ノルム oily flavorful suspect recipe worse



こんな感じになりました。
コサイン類似度でもL^2ノルムでもほとんど変わっていませんが、なんとなく特徴語は引っ張ってこれているかなあと言う雰囲気です。

§5. 所感

特徴語抽出は出来ていると言う雰囲気はありますが、果たして…と言う感じです。
そもそもtf-idfベースでの抽出と結果が変わらないのでは、と言う疑問がありますが、小学生の自由研究なのでめんどくさいので比較はしません。

お粗末さまでした。

*1:少し定義が違いますが、ここではこの定義を使います

*2:この図は[1]より