7

ついに私は最終年度のプロジェクトに取り組んでいます。これは、インテリジェントな Web ベースのキャリア ガイダンス システムです。私のシステムのコア機能は次のとおりです。

レコメンドシステム

基本的に、私たちの推薦システムは、関心テストとユーザーの学歴を取得することによってユーザーの好みを慎重に調査し、この調査された情報に基づいて、BS コンピューター サイエンスなどのコースなどの最適なキャリア オプションをユーザーに提供します。

  • 推薦システムの入力は、学生の資格情報と関心テストであり、関心テストでは、ユーザーの学歴とテストでの回答に従って質問が与えられるため、基本的にテストでは全員に同じ質問をすることはありません。システムで定義されたルールに従って、どのユーザーに何を尋ねるかをリアルタイムで決定します。

  • その出力は、興味テストに基づいて決定されるフィールドのオプションになります。

問題

私が委員会の前で自分のスコープを擁護していたとき、彼らは「これは単純なif-else だ」と言いました。このシステムはインテリジェントではありません。
私の質問は、このシステムをインテリジェントにするためにどの AI 技術またはアルゴリズムを使用できるかということです。私はたくさん検索しましたが、私のシステムに関連する論文ははるかに表面的であり、方法論ではなくアイデアを強調しているだけです.
すべての作業を Java で行いたい。答えがテクノロジー固有のものであれば素晴らしいことです。
私の質問が SO Q&A 基準に関係ない場合は、私の質問を他のスタックエクスチェンジ サイトに転送できます。

編集

回答からいくつかのアイデアを得た後、ルールベースの推論エンジンを備えたエキスパートシステムを実装したいと考えています。ここで、ルールベースのエンジンを実装するためのテクノロジーの側面をより明確にしたいと思います。検索した結果、Drools が最適であることがわかりましたが、Web アプリケーションとも互換性がありますか? また、Tohu が最高の動的フォーム ジェネレーターであることもわかりました (これも私のプロジェクトで必要なためです)。drools で tohu を使用して Web アプリケーションを作成できますか? このタイプのシステムを実装するのは簡単ですか?

4

6 に答える 6

4
  1. 質問が多い場合は、それぞれが機能を表すことができます。たくさんの機能があると仮定すると、基準を満たす一連のif-elseステートメントを見つけるのは困難ですn(質問のある完全なツリーには2^n「葉」があることを思い出してください-2^nこれらの質問に対する可能な答えを表します。質問ははい/いいえの質問です)。

  2. 上記のハードプログラミングは十分な大きさでは不可能であるため(そしておそらく現実的なサイズ-ヒューリスティックソリューションnの場所があります-そのうちの1つは機械学習であり、具体的には-分類問題です。あなたはあなたの調査に答える人々のサンプルを持つことができます、「専門家」が彼らにとって最良のキャリアは何かを言い、アルゴリズムに一般的な問題の分類子を見つけさせます(それを一連のyes-no質問に自動的に変換したい場合は、決定を下して行うことができますツリー、およびツリーを作成するためのC4.5のようなアルゴリズム)。

  3. 決定することも重要かもしれません-どの質問が実際に関連していますか?性別は関係がありますか?高さは関係がありますか?これらの質問にも、たとえば特徴選択アルゴリズムを備えたMLアルゴリズムを使用して回答できます(これらの1つはPCAです) 。

  4. 「テクノロジー」の側面に関しては、JavaにはWekaと呼ばれる優れたライブラリがあり、分類アルゴリズムの多くを実装しています。

  5. この問題に最適な分類アルゴリズムを尋ねることができる(そしてプロジェクトで見つけようとする)1つの質問はありますか?いくつかの可能性は、上記のC4.5、ナイーブベイズ線形回帰ニューラルネットワークKNNまたはSVM(通常は私にとって最適であることが判明)です。どのアルゴリズムを使用するかを統計調査と統計的証明で使用することで、決定を後回しにすることができます。ウィルコクソン検定がこのための標準です。


編集:ポイント2の詳細:

  • ここで、「専門家」は、機能を読み取り、回答を分類するHRの分野の人間の分類子である可能性があります。このデータ(通常は「トレーニングデータ」と呼ばれます)を取得することは困難で広範である場合があります。大学にIEまたはHRの教員がいる場合は、彼らが喜んで支援してくれるでしょう。
  • アイデアは次のとおりです。最初にあなたの調査に答えるたくさんの人々を集めてください。次に、彼の答えに基づいて、この人にとって最良のキャリアを選択する人間の分類器(「専門家」)にそれを渡します。専門家によって分類されたデータは学習アルゴリズムの入力であり、その出力は分類器になります。
  • 分類子は関数自体であり、調査への回答を提供します。この調査を行った人の「分類」(推奨されるキャリア)を予測します。
  • 分類器を入手したら、トレーニングデータを維持する必要がなくなったら、分類器だけで十分であることに注意してください。ただし、質問のリストを用意しておく必要があります。これらの質問に対する回答は、分類子に提供される機能になります。
于 2012-10-13T17:31:42.900 に答える
3

それらを満たすためにあなたがしなければならないことは、単純な学習システムを作成することだけです:

  1. 「インテリジェント」という言葉を使用する代わりに、「最高のキャリアを学ぶ」と記述されるように論文用語を変更してください。学習は人工知能の一形態です。
  2. トレーニング体制を作成します。これを行うには、すでにキャリアを持っている人にアンケートを行い、質問をして、キャリアにどの程度満足しているかを調べます. そうすれば、あなたのシステムは、何が良いキャリアマッチを作り、何が悪いキャリアマッチを作るかについて訓練することができます.
  3. (2)のデータを吸収する学習システムを選択します。たとえば、アイデアのソースの 1 つは、http://journals.cluteonline.com/index.php/RBIS/article/download/4405/4493 という最近の論文です。積和ネットワークは AI の最先端であり、エキスパート システムのような問題にうまく適用されます。

最後に、あなたの問題に特化したものにするために、テクノロジーが何であれそれにひねりを加えてみてください.

于 2012-10-16T18:35:31.467 に答える
2

私の最後のプロジェクトでは、Jena RDF推論エンジンの経験がありました。基本的には、「ユーザーがこの回答を選択した場合、彼はその資質を持っている」、「ユーザーがその資質を持っている場合、彼はその仕事に適している可能性がある」などのルールを使用して、一種の知識ベースを作成します。システムに回答を追加すると、彼の現在のステータスを照会し、それに応じて質問を調整できます。それを使用して概念実証を作成するのは非常に簡単です。if-else の束よりも簡単です。教授がプロローグ風のスタイルのものを崇拝する場合、彼らはそれを気に入るはずです。

于 2012-10-14T07:39:21.140 に答える
1

プログラムは、それを書いた人よりも賢いということは決してありません。ですから、私はまず、すでに構築されオープンソース化されている集合知を使用します。

一連の既知のデータ ポイントを入力として Apache Mahout のPearsonCorrelationSimilarityに渡し、出力を使用してどのコースが最適かを予測します。オープンソースでスケーラブルであることに加えて、結果を記録してシステムにフィードバックし、時間の経過とともに精度を向上させることもできます. このレベルのパフォーマンスに匹敵するのは非常に困難です。なぜなら、if else 条件を処理するよりも、すぐに使用できるアルゴリズムを微調整したり、独自のアルゴリズムに置き換えたりする方がはるかに簡単だからです。

この本を読むことをお勧めします。これには、PearsonCorrelationSimilarity の使用方法の例が含まれています。

Mahout には 、ソリューションをさらに簡素化できるNearestNeighborClusterSimilarityなどの推奨アルゴリズムも組み込まれています。

本には良いスターターコードがあります。その上に構築できます。

学生の資格情報、興味のあるテストの質問と回答が入力されます。キャリアの選択は、インプットと関連付けることができるアウトプットです。これは非常に単純化されたアプローチですが、最初は問題ないかもしれません。最終的には、Amit が提案した分類器の手法を適用する必要があり、Mahout がそれを支援します。

于 2012-10-13T18:06:21.190 に答える
1

@amit が示唆したように、ベイジアン分析は、次の質問に対するガイダンスを提供できます。動的テストのもう 1 つの落とし穴は、人為的なしきい値 (「スコアが 28 の場合はこのカテゴリに属し、スコアが 27 の場合はそうではない」) であり、ファジー ロジックが対処するのに役立つ問題です。ファジー ロジックのもう 1 つの利点は、新しいカテゴリの追加が比較的簡単であることです。これは、ドメインの専門家が定量的なしきい値ではなく、定性的な評価のみを提供するよう求められるためです。

于 2012-10-13T21:41:42.460 に答える
1

Drools は Web 経由で使用できますが、注意が必要です。構成するのは少し面倒で、アプリケーションにとっては深刻なやり過ぎになる可能性があります。これは、ルールの実行ではなく、ルール管理に重点を置いた「エンタープライズ」タイプのソリューションです。

Drools は「IF-THEN」システムであり、ほぼすべてのルール エンジンが Rete アルゴリズムを使用しています。 http://en.wikipedia.org/wiki/Rete_algorithm - 最初の質問が IF-THEN システムを使用しない方法に関するものである場合、Drools は適切な選択ではありません。現在、Drools には IF-THEN アルゴリズムではない Solver と Planner の部分がありますが、これは Drools の主要なアルゴリズムではありません。

とはいえ、アプリケーションにとっては妥当な選択のようです。自分自身を専門家と見なす人が「インテリジェントな」システムと見なすとは思わないでください。ルール エンジンは通常、「住宅ローンの承認を受ける必要があるか」や「自動車保険の金額」など、ビジネスのルールや規制を成文化する (つまり、ソフトウェアを作成する) ために使用されます。「何の仕事をすべきか」は、同じことの合理的な適用です。

インテリジェンスのような AI をさらに追加したい場合は、いくつかのアイデアがあります

  • 機械学習を使用して、以前の推奨事項についてユーザーからフィードバックを取得します。したがって、誰かが提案を好きまたは嫌いな場合は、それをその人の特徴として追加してください。あなたは今、いくつかの基本的なフィードバック/強化学習 (ベイズ、ニューラル ネットワーク) を行って、その人をより適切にキャリアに分類しようとしています。

  • あなたがその人に尋ねる質問を考えてみましょう。すべての質問をする必要がありますか? 回答に基づいて質問の流れを変えることができる場合 (彼らがどのような人物であるかを推定することによって)、推薦に最も役立つ知識を提供する一連の質問を学習しようとしています。

特定のソフトウェアが必要な場合は、Weka http://www.cs.waikato.ac.nz/ml/weka/を参照してください。分類用の優れたアルゴリズムが多数あります。また、Java ライブラリであるため、Web アプリケーション内で簡単に使用できます。

幸運を。

于 2012-10-17T12:09:51.697 に答える