スマート製品を構築する必要があるのは何ですか?

最近、「機械学習」(Machine Learning、ML)というフレーズが非常にファッショナブルになりました。 一般的な技術と同様に、ここでの熱意は特定の製品の実装レベルを超えています。 議論の余地はありますが、10〜15年前のGoogleの驚くべき革新の時代以来、アルゴリズム技術はほとんどなく、大衆文化に広く普及した製品が登場しました。 それ以降、機械学習にブレークスルーがなかったわけではなく、それほど衝撃的でなく、計算アルゴリズムに基づいていたわけではありません。 Netflixは賢い推奨事項を使用できますが、Netflixはありません。 しかし、BrinとPageがウェブとハイパーリンクのグラフ構造を独自の利己的な目的で分析しなかった場合、Googleは存在しません。



なぜそう 結局のところ、彼らは同じことを試みました。 多くの新興企業は、自然言語の機械処理の技術を大衆に持ち込みたいと考えていましたが、人々が実際にそれらを使用しようとした後、すべてが順番に忘却に沈みました。 機械学習を使用して優れた製品を入手することの難しさは、基本的な理論を理解することではなく、アクティビティとタスクの範囲を理解することです。 直感的なレベルで深く理解し、何が機能し、何が機能しないかを確認します。 興味深いタスクには、既成のソリューションがありません。 たとえば、同じ自然言語処理など、あらゆる応用分野における現在のレベルは、機械学習の一般的な問題を解決するための新しい手法よりも、この分野に関連する啓示によって強く推進されています。 多くの場合、毎日使用されるプログラムとハーフタイムのコースワークの違いは、問題の特別な見方と優れたソリューションモデルです。



クールな機械学習製品を作らないように説得するつもりはありません。 なぜこれがそんなに難しいのかを明確にしようとしています。



機械学習の進歩。


機械学習は過去10年間で大きな進歩を遂げました。 大学院に入学したとき、大きなインデントを持つオブジェクトのクラス(つまり、 SVMサポートベクターメソッド )の線形分類器のトレーニングは、 SMOアルゴリズムによって実行されました。 このアルゴリズムでは、すべてのデータに一度にアクセスする必要がありました。 トレーニング時間は、トレーニングサンプルの増加とともにわいせつに増加しました。 このアルゴリズムをコンピューターに簡単に実装するには、非線形プログラミングを理解し、パラメーターの重大な制限と微調整、および黒魔術を強調する必要があります。 これで 比較的簡単なアルゴリズム を使用して、オンラインモードで線形時間でほぼ同じ効率で分類器をトレーニングする方法がわかりました。 同様の結果が(確率的)グラフィカルモデルの理論に登場しました: マルコフ連鎖モンテカルロ 変分法は、複雑なグラフィカルモデルの導出を単純化します(MCMCは統計によって長い間使用されてきましたが、最近では大規模な機械学習でこの手法を使用し始めました)。 とんでもないことになります- 計算言語学協会(ACL)の議事録の上位記事を比較して、最近(2011年)に使用された機械学習技術が2003年に使用されたものよりもはるかに洗練されていることがわかります。



教育の分野では、進歩も途方もないです。 2000年代前半にスタンフォードで勉強して、Andrew Ngの機械学習コースとDaphne Kollerの確率的グラフィカルコースを教えました。 これらのコースはどちらも、私がスタンフォードで受けた最高のコースです。 その後、彼らは年間約100人が利用できました。 Kollerコースは、おそらくスタンフォードの最高のコースではありません。 彼は教えてくれました。 これらのコースは、Web上のすべての人が利用できるようになりました



実際に機械学習(特に自然言語の処理)に携わっている人として、これらの成果はすべて多くの研究の実施を促進したと言えます。 ただし、私が下す重要な決定は、抽象アルゴリズム、目的関数または損失関数の種類ではなく、特定のタスクに固有の一連の機能に関連しています。 そして、このスキルは経験が必要です。 その結果、より多くの読者が機械学習とは何かを理解することは素晴らしいことですが、スマートシステムを作成する上で最も難しい部分ではありません。



既製のソリューションは興味深いタスクには適していません


解決したい実際のタスクは、はるかに不快です。 機械学習理論が提供する抽象化よりも。 たとえば、 機械翻訳を考えてみましょう。 一見、 統計的な分類タスクのように見えます 。ある言語の文を取り、あなたの言語のどの文がそれに対応するかを予測します。 残念ながら、一般的な言語の文の数は組み合わせが膨大です。 したがって、問題解決者を「ブラックボックス」にすることはできません。 適切な解決方法は、問題をより小さなものに分解することに基づいています。 そして、プログラムはこれらの小さなタスクを解決する方法を学びます。 私は、機械翻訳などの複雑なタスクの進歩は、検索空間のより良いパーティション化と構造化によって達成され、この空間で訓練するtrainな翻訳アルゴリズムによってではないと主張します。



過去10年間の機械翻訳の品質は飛躍的に向上しました。 これは主に翻訳分野の重要な洞察が原因で起こったと思いますが、アルゴリズムの一般的な改善も役割を果たしました。 現在の形式の統計的機械翻訳は 、注目に値する「 統計的機械翻訳の数学 」にまでさかのぼります。これは、後に翻訳者がベースとするノイズの多いチャンネルのアーキテクチャを紹介しました。 指で説明すると、次のように動作します。各単語に対して、私たちの言語への可能な翻訳があります(私たちの言語に翻訳されたものと同等のものがない場合、空の単語を含む) これを確率辞書として想像してください。 受け取った単語は、私たちの言語ですでに調和のとれた文を受け取るように並べ替えられます。 この説明では、候補文、順列、特定の言語からターゲットへの標準順列のモデルをトレーニングする方法、結果の調和を評価する方法など、多くの詳細が欠落していました。



このモデルの変更により、機械翻訳の重要なブレークスルーが発生しました。 個々の単語を翻訳する代わりに、新しいモデルはフレーズ全体の翻訳を検討し始めました。 たとえば、ロシア語の「夕方」は英語の「夕方」にほぼ対応しています。 フレーズの翻訳の前に、単語ごとの翻訳に基づくモデルは単一の単語のみを受け取ることができました(IBMモデル3では、ターゲット言語の各単語から複数の単語を取得できますが、適切な翻訳が表示される可能性はまだ小さいです)。 この方法で英語で良いオファーを得るのはほとんど不可能です。 フレーズの翻訳は、キャリアのスピーチに似た、より滑らかで活気のあるテキストにつながります。 もちろん、フレーズを追加すると複雑になります。 このようなパーティションを見たことがないという事実にもかかわらず、フレーズの一部をどのように評価するかは不明です。 「夕方に」は別の言語のフレーズに対応しなければならないフレーズだとは誰も言わないでしょう。 ここで驚くべきことは、翻訳の質の違いがクールな機械学習技術ではなく、特定のタスクのために研ぎ澄まされたモデルによって生み出されることです。 もちろん、多くの人がよりcな学習アルゴリズムを使用しようとしましたが、これによる改善は原則としてそれほど大きくありませんでした。



フレーズ翻訳アプローチの作者の1人であるFranz OchがGoogleに来て、Translateグループの重要人物になりました。 このサービスの基礎は、フランツが情報科学研究所の研究者として(そして、それ以前は大学院で)働いていたときに取り消されましたが、フレーズよりも先に進むことを可能にした多くのアイデアは、これらのアイデアをウェブ上でスケーリングすることに関連するエンジニアリング作業から生まれました。 この作業により、大規模言語モデルおよびNLPの他の分野で素晴らしい結果が得られました。 Ohは一流の研究者であるだけでなく、一般的なレビューによると、優れたハッカー(言葉の意味では)でもあることに注意することが重要です。 このまれなスキルの組み合わせにより、研究プロジェクトから現在のGoogle Translateに至るまで、すべてを進めることができました。



タスクの定義。


しかし、良いモデルを作成することだけが問題ではないように思えます。 機械翻訳または音声認識の場合、タスクは明確に述べられ、品質基準は理解しやすいです。 今後数十年でアプリケーションにヒットするNLPテクノロジーの多くは、はるかに曖昧です。 テーマ論文、 会話レビューの特徴付けnlp-class.orgの 3番目のラボ)の分野において、理想的な研究には正確に何が含まれるべきですか? これに基づいて大量生産する方法は?



自動要約のタスクを検討してください。 コンテンツを抽象化して構造化する製品が必要です。 ただし、いくつかの理由から、この定式化を、モデルを構築、構造化、および最終的に評価できるものに限定する必要があります。 たとえば、要約に関する文献では、タスクは通常、ドキュメントのコレクションから文のサブセットを選択して整理することとして定式化されます。 これは対処する必要がある問題ですか? これは長く複雑な文で書かれたテキストに注釈を付けるのに良い方法ですか? テキストに十分な注釈が付けられていても、これらのフランケンシュタインの文章は読者にとって自然に見えるでしょうか?



または、たとえば、レビューの分析。 人々は白黒の「良い/悪い」グレードが必要ですか? または、より完全な画像(つまり、「冷たい食べ物、状況が悪い」)が必要ですか? 顧客は、特定の訪問者の態度やレビュー全体の正確な分析に興味がありますか?



通常、ボスはそのような質問に答え、エンジニアや研究者にそれを実装させます。 問題は、機械学習がアルゴリズム的または技術的な観点から解決可能な問題のクラスを非常に厳密に制限していることです。 私の経験に基づいて、同様の問題を解決するためのアプローチを理解し、問題領域を深く理解している人々は、そのような理解がなければ専門家の間では決して生じないアイデアを提供できます。 アーキテクチャとの大まかな類似性を引き出します。 「そのように」橋を架けることは不可能です。 物理学とソプロマットは設計に厳しい制限を課すため、これらの分野の知識のない人々に橋を設計させることは意味がありません。



要約すると、機械学習を使用して本当にクールな製品を作りたい場合、クールなエンジニア/デザイナー/研究者のチームが必要です。 基本的な機械学習の定理からシステムの構築、ドメインの知識、ユーザーインタラクションテクニック、グラフィックデザインまで、すべての分野で。 できれば、これらの分野の1つで世界クラスの専門家であり、他の分野に精通していることが望ましい。 上記のすべてを備えた小規模の有能なチームは、製品の設計とプロモーションの不確実な世界に精通しています。 研究開発とマーケティングが異なる建物にある大企業は成功しません。 クールな製品は、誰もが目を熱くし、コンテキストを完全に見て、悪名高いガレージに十分なスペースがあるチームによって作成されます。



All Articles