web-dev-qa-db-ja.com

短いテキストに対するLDAの欠点は何ですか?

潜在的なディリクレ配分(LDA)がTwitterなどの短いテキスト環境でうまく機能しない理由を理解しようとしています。私は「短いテキストのバイタームトピックモデル」という論文を読みましたが、「Word共起のスパース性」についてはまだ理解していません。

私の見解では、LDAの生成部分はあらゆる種類のテキストに適していますが、短いテキストで悪い結果を引き起こすのはサンプリング手順です。 LDAは、次の2つの部分に基づいてWordのトピックをサンプリングしていると思います。(1)同じドキュメント内の他の単語のトピック(2)このWordの他の出現のトピック割り当て。短いテキストの(1)部分はその実際の分布を反映できないため、各単語のトピック割り当てが不十分になります。

この質問を見つけた場合は、お気軽にアイデアを投稿してください。

20
Shuguang Zhu

LDAなどの確率モデルは、統計的推論を利用してデータの潜在的なパターンを発見します。つまり、観測からモデルパラメータを推定します。たとえば、さまざまな色のボールがたくさん入っているブラックボックスがあります。ボックスからいくつかのボールを引き出してから、ボールの色の分布を推測します。これは、統計的推論の典型的なプロセスです。統計的推論の精度は、観測の数によって異なります。

次に、短いテキストでのLDAの問題について考えます。 LDAはドキュメントをトピックの混合としてモデル化し、各Wordはそのトピックの1つから抽出されます。このようなモデルから生成された大量の単語がブラックボックスに含まれていると想像できます。これで、ほんの数語の短いドキュメントを見てきました。観測値が少なすぎてパラメータを推測できないことは明らかです。これは、前述のデータスパース性の問題です。

実際には、観測の欠如に加えて、問題はモデルの過度の複雑さにも起因します。通常、より柔軟なモデルでは、推測するためにより多くの観測が必要です。 Biterm Topic Model は、モデルの複雑さを軽減することにより、トピックの推論を容易にしようとします。まず、コーパス全体をトピックの混合としてモデル化します。コーパス全体でトピックの混合を推測する方が、短いドキュメントでトピックの混合を推測するよりも簡単です。第二に、各二項はトピックから引き出されると仮定します。より多くのコンテキストが追加されるため、バイタームのトピックを推測することは、LDAで単一の単語のトピックを推測するよりも簡単です。

この説明があなたにとって意味のあるものであるといいのですが。私たちの論文に言及していただきありがとうございます。

20
Xiaohui Yan

少し掘り下げてみると、 Hong and Davison(2010) は、ツイートの分類でうまく機能していないこれらの良い例として現れました。残念ながら、彼らはなぜそれが機能しないのかについての洞察をあまり提供していません。

LDAが短いドキュメントに対してうまく機能しない理由は2つあると思います。

まず第一に、小さなドキュメントで作業する場合、余分なトピックレイヤーは分類に何も追加せず、役に立たないものはおそらく痛いです。ツイートのように非常に短いドキュメントがある場合、ドキュメントをトピックに分割するのは非常に困難です。結局のところ、ツイートには1つのトピックしかありません。トピックレイヤーは分類にあまり貢献できないため、システムでエラーが発生する余地があります。

第二に、言語的には、Twitterユーザーはツイートするときに「不要な綿毛」を取り除くことを好みます。完全なドキュメントを操作する場合、おそらく特定の、一般的な、ジャンル内で繰り返される機能(単語、単語のコロケーションなど)があります。ただし、ツイートするときは、これらの一般的な要素が最初に削除されます。これは、綿毛を取り除いたときに残るのは、興味深く、新しく、より複雑なものだからです。

たとえば、 myowntweets を見てみましょう。恥知らずな自己宣伝を信じているからです。

Progressbar.py is a fun little package, though I don't get 
a chance to use it too often. it even does ETAs for you 
https://pypi.python.org/pypi/progressbar …

From a capitalist perspective, the social sciences exist so 
idiot engineers don't waste money on building **** no one needs.

Abstract enough to be reusable, specific enough to be useful.

1つ目はPythonについてです。 URLを解析している場合は、それを取得します。pyもそれを提供します。しかし、もっと表現力豊かな媒体では、おそらく「Python」という言葉をどこかに置いていただろう。もう1つはプログラミングにも関連していますが、もう少しビジネス側にあります。ただし、プログラミングに固有のことについては一度も触れていません。最後のものもプログラミング関連ですが、プログラミングの技術とより密接に結びついており、コーディング中にプログラマーが直面する一種のダブルバインドを表現しています。 2番目の機能と同じくらい難しいです。

これらの最後の2つの例の両方で、私がマイクロブログの投稿を書いていなかった場合、これらは分類子にとって非常に役立つ例ですぐにフォローアップされたか、それ自体がより多くのデータを含んでいました。ただし、Twitterにはそのようなものを入れる余地はなく、ツイートが属するジャンルを代表するコンテンツは削除されます。

したがって、最終的には2つの問題があります。トピックは余分な不必要な自由度を追加するため、長さはLDAにとって問題であり、分類に通常役立つ機能は作成者によって選択的に削除されるため、ツイートは分類子にとって問題です。

6
Dan