2013-03提出分/公開用/PageRankアルゴリズムを使
った人事評価実験(渡辺雄作)
目次
目次
1.概要
2.序論
2-1.専門職に対する評価の問題点
2-2.評価方法の現状の代替案
2-2-1.一般的な360度評価による評価方法
2...
る。
つまり、どちらか片方だけ高いスキルを持っていても「専門職」としては高い評価を得られない(得られるべきではない)

2-2.評価方法の現状の代替案
2-2-1.一般的な360度評価による評価方法
問題点
一般的に評価プロセスが公開されていな...
用いられている中心的な技術。名称の由来は、ウェブページの"ページ"と、Googleの創設者の一人、ラリー・ペイジの姓をかけたものであ
る」(wikipedia)
WEBリンクによってWEBページの価値を計算し、その価値によってソートしたものをラ...
グラフ構造を隣接行列で表現する
A, B, C, D, E
A[ 0, 0, 0, 1, 0]
B[ 1, 0, 0, 1, 0]
C[ 0, 1, 0, 0, 0]
D[ 0, 0, 1, 0, 1]
E[ 0, 1, 0, 0, 0]

e...
pageA pageB pageC pageD pageE
初期値 1 1 1 1 1
ループ1 0.575 1.85 0.575 1.425 0.575
ループ2 0.93625 1.1275 0.755625 1.425 0.755625
...
図3-1-3-1-1-1-1評価ベクトル
PageRank計算結果は以下の通り

tanaka_taro :834.9413887051172
morishita_shinji :834.9413887051167
hachiuma_yoshi...
図3-1-3-1-2-1-1評価ベクトル
PageRankについては以下の結果になった。

hachiuma_yoshiko :527422.5230730433
morishita_shinji :2189.945995614684
take...
図3-1-3-1-3-1-1評価ベクトル
PageRankについては以下の結果になった。

takahashi_takamasa :22077024.6196283
kataoka_michio :45895.255459895205
take...
図3-1-3-1-4-1-1評価ベクトル
PageRankについては以下の結果になった。

hachiuma_yoshiko :1374737.878774531
takahashi_takamasa :527422.5230730433
mo...
図3-1-3-1-5-1-1評価ベクトル

8ポイント, 5ポイント, 3ポイントで重み付け(検証1と同じ方法)
fujimoto_kiyoshi :29188.880081891042
hachiuma_yoshiko :834.941388...
図3-1-3-2-1-1-1評価ベクトル
PageRankについては以下の結果になった。

重み付けなし
fujimoto_kiyoshi :2423516.9406517665
hachiuma_yoshiko :661.3586122496...
リンク構造データ(json)
var data_2012_oct = {
"tanaka_taro":[
{"dest":"kataoka_michio", "weight":8},
{"dest":"takemoto_michiko", "w...
var sort_ctl_byName = new Array();
var cnt = 0;
for (var d in data) {
sort_ctl[d] = cnt;
sort_ctl_byName[cnt] = d;
cnt++;
...
}());
var compute_pr = function() {
var new_pagerank = new Array();
for (var i = 0; i < transposed_matrix.length; i++) {
v...
alert(log);

4.まとめ
4-1.総括
人が人を評価する以上は定性的な評価基準が介在することはやむを得ない。
しかし、その定性評価を行う材料となる基準は定量的に計測するべきという観点から今回はこのような実験を行った。
約半年間、この...
4-2.今後
この評価実験の対象者数を増やし、人数とPageRank評価の実験を引き続き行う。
評価者の選出についても、トップダウンでの選出ではなくPageRankが高い人物を選出するという取り組み実験を行うことも考えている。

5.参考文献
...
Upcoming SlideShare
Loading in …5
×

PageRankアルゴリズムを使った人事評価についての実験

683 views

Published on

PageRankアルゴリズムを相互評価の結果に適用し、評価されるべき人材の抽出の材料として利用できるか実験を行う。
なお、PageRankアルゴリズム自体の詳細な説明は行わない。

0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
683
On SlideShare
0
From Embeds
0
Number of Embeds
32
Actions
Shares
0
Downloads
5
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

PageRankアルゴリズムを使った人事評価についての実験

  1. 1. 2013-03提出分/公開用/PageRankアルゴリズムを使 った人事評価実験(渡辺雄作) 目次 目次 1.概要 2.序論 2-1.専門職に対する評価の問題点 2-2.評価方法の現状の代替案 2-2-1.一般的な360度評価による評価方法 2-2-2.専門分野での評価者による評価方法 2-3.専門職に対する評価方法に対する新しい価値基準 3.内容 3-1.PageRankアルゴリズムを適用する 3-1-1.PageRankについて 3-1-1-1.アルゴリズム概要 3-1-1-2具体例 3-1-2.PageRankによる人事評価に期待すること 3-1-3.検証 3-1-3-1.検証方法1 「社員同士で一定のポイントを付与しあうことによって相互評価を行う」 3-1-3-1-1.2012年10月検証 3-1-3-1-1-1.PageRank結果 3-1-3-1-1-2. 3-1-3-1-2. 3-1-3-1-2-1PageRank結果 3-1-3-1-2-2.考察 3-1-3-1-3.2013年1月検証 3-1-3-1-3-1.PageRank結果 3-1-3-1-3-2.考察 3-1-3-1-4.2013年2月検証 3-1-3-1-4-1.PageRank結果 3-1-3-1-4-2.考察 3-1-3-1-5.2013年3月検証 3-1-3-1-5-1.PageRank結果 3-1-3-1-5-2.考察 3-1-3-2.検証方法2 「何も制限を課さずに、評価したい人を好きなだけ挙げてもらう」 3-1-3-2-1.2013年3月検証 3-1-3-2-1-1.PageRank結果 3-1-3-2-1-2.考察 3-1-4.検証コード 4.まとめ 4-1.総括 4-2.今後 5.参考文献 1.概要 PageRankアルゴリズムを相互評価の結果に適用し、評価されるべき人材の抽出の材料として利用できるか実験を行う。 なお、PageRankアルゴリズム自体の詳細な説明は行わない。 2.序論 2-1.専門職に対する評価の問題点 専門技術職の評価者と被評価者(以下メンバーと記載する)による方法ではビジネススキル・技術スキルを多面的に判断・評価することが できない。 技術スキルはビジネススキルを前提としており、且つビジネススキルだけでは専門職としてパフォーマンスを出すことができないからであ
  2. 2. る。 つまり、どちらか片方だけ高いスキルを持っていても「専門職」としては高い評価を得られない(得られるべきではない) 2-2.評価方法の現状の代替案 2-2-1.一般的な360度評価による評価方法 問題点 一般的に評価プロセスが公開されていないため、最終評価までのプロセスが不透明である 全員が全員を評価するのは多数の社員がいる場合は不可能である ランダム抽出によるお互いの評価を行うと、まったく違う専門分野を評価したり、まったく関わりあいのない人を評価することに なり精度が下がる 2-2-2.専門分野での評価者による評価方法 問題点 *評価者になる人材の不足 高い専門スキル、会社とのビジョンマッチ、メンバーからのその専門分野での高い信頼の全てを備えている人材が専門分野毎に必 要。 さらに、評価の納得性を保つためにはメンバーからの信頼がある人材ではないと評価できない。 *評価者によって評価ポイントの違いがある 同じ分野の技術者でも、スキルの価値をどこに置いているかというスタンスの違いから評価ポイントにゆらぎが発生する。 さらに評価者自体を選出する際に完全に会社ビジョンとマッチしている人材が必要である。 *事業貢献度を評価できない 専門分野による評価なので、その技術がどれだけ事業に貢献しているか判断はできない。 2-3.専門職に対する評価方法に対する新しい価値基準 メンバーのワークスタイル・スキルスタンス・キャリアパスが、現在の状況(所属チーム・組織、取り組むべきゴール)にマッチし ているか メンバーが現在置かれている状況に考え方などがマッチしているかを評価する。 技術的に貢献したいのに調整業務を行なっていたり, 必要以上にドメスティック(「プログラマなのでプログラムの仕事しかしません」という状況)に仕事をしてチームに迷惑がかかって いるような状況を更生するために使う。 会社(or 組織 or チーム)の方向性とマッチしているか どんなにビジネススキルや技術スキルがあっても、会社の方向性とマッチしていない人は評価されるべきではない。 今所属しているチームや組織、会社が何を必要としているか考えて、それをどのように解決するかという方向性がマッチしている かを評価する また、メンバーの成長に寄与していると判断できる場合に限り努力も評価する。 評価とモチベーションコントロールの分離 厳正な評価を受けることによって、メンバーのモチベーションが下がるという意見があるが、それを解決するのはマネジメントの 範疇である。 低い評価を受けたメンバーについて、今後の成長プランや目線の引き上げなどはマネジメントがきっちりと行う必要がある。 ここを混同すると自立していない人材(モチベーションコントロールが自分ですることができない人材など)の評価が現実的とか け離れた評価をされたりするため、評価プロセス自体の不透明性を招く この3つをPageRank評価というアプローチで解決する方法をレポートする。 3.内容 3-1.PageRankアルゴリズムを適用する 3-1-1.PageRankについて 3-1-1-1.アルゴリズム概要 「ウェブページの重要度を決定するためのアルゴリズムであり、検索エンジンのGoogleにおいて、検索語に対する適切な結果を得るために
  3. 3. 用いられている中心的な技術。名称の由来は、ウェブページの"ページ"と、Googleの創設者の一人、ラリー・ペイジの姓をかけたものであ る」(wikipedia) WEBリンクによってWEBページの価値を計算し、その価値によってソートしたものをランキングする。 outリンク(リンク) 「そのページからリンクされている = そのページはリンク先ページを推薦している」と解釈する。 そのページにとってリンク先のページは関連性が高い(推薦)しているということは、リンク先のページはそのページにとって重 要である。 しかし、そのページ自体の重要度も加味する必要がある。 「例えば、ドナルド・トランプ(Donald Trump)1人の個人的な推薦状のほうが、知らない教師や同僚20人の推薦状よりも就職の際には役に立つだろう。一方でトランプが 従業員に対しては気軽に推薦状を書く人で、4万もの推薦状を書いていることを採用担当者が知っていたら、トランプの推薦状の重 みは一挙に少なくなってしまう。したがって、あまり気を使わない推薦者の地位の持つ重みは軽くしなければならない。」 inリンク(被リンク) 「被リンクが多いほど、多くのページから推薦されている = 重要な情報がある」 価値のあるページからリンクされているページほど価値がある。 3-1-1-2具体例 以下のようにページA〜ページEまでのリンク構造を仮定する 図3-1-1-3.1リンク構造
  4. 4. グラフ構造を隣接行列で表現する A, B, C, D, E A[ 0, 0, 0, 1, 0] B[ 1, 0, 0, 1, 0] C[ 0, 1, 0, 0, 0] D[ 0, 0, 1, 0, 1] E[ 0, 1, 0, 0, 0] ex) AはDにリンクしている 行列を転置することによって被リンクを表現した行列にする A, B, C, D, E A[ 0, 1, 0, 0, 0] B[ 0, 0, 1, 0, 1] C[ 0, 0, 0, 1, 0] D[ 1, 1, 0, 0, 0] E[ 0, 0, 0, 1, 0] ex) AはBからリンクされている 一つのページからのoutリンクの価値を一定にするため列の和が1になるように調節する AB CD E A[ 0, 0.5, 0, 0, 0] B[ 0, 0, 1, 0, 1] C[ 0, 0, 0, 0.5, 0] D[ 1, 0.5, 0, 0, 0] E[ 0, 0, 0, 0.5, 0] PageRankの公式 PR(A) = (1-d) + d (PR(T1)/C(T1) + ... + PR(Tn)/C(Tn))* を各ページに適用する。 ※初回の計算はそれぞれのページのPageRankを1とする dの値についてはランダムサーファーモデルにのっとりGoogleの採用している0.85とした時、それぞれのPageRankの計算式は以下の通り PR(A) = (1 - 0.85) + 0.85(PR(B) * 0.5) PR(B) = (1 - 0.85) + 0.85(PR(C) + PR(E)) PR(C) = (1 - 0.85) + 0.85(PR(D) * 0.5) PR(D) = (1 - 0.85) + 0.85(PR(A) + (PR(B) * 0.5)) PR(E) = (1 - 0.85) + 0.85(PR(D) * 0.5) となる。 エクセルを利用して簡易的に実行してみた結果を以下に示す
  5. 5. pageA pageB pageC pageD pageE 初期値 1 1 1 1 1 ループ1 0.575 1.85 0.575 1.425 0.575 ループ2 0.93625 1.1275 0.755625 1.425 0.755625 ループ3 0.6291875 1.4345625 0.755625 1.425 0.755625 ループ4 0.7596890625 1.4345625 0.755625 1.2944984375 0.755625 ループ5 0.7596890625 1.4345625 0.7001618359 1.4054247656 0.7001618359 ループ6 0.7596890625 1.3402751211 0.7473055254 1.4054247656 0.7473055254 ループ7 0.7196169265 1.4204193932 0.7473055254 1.3653526296 0.7473055254 ループ8 0.7536782421 1.4204193932 0.7302748676 1.3653526296 0.7302748676 ループ9 0.7536782421 1.3914672749 0.7302748676 1.3943047479 0.7302748676 ループ10 0.7413735918 1.3914672749 0.7425795178 1.3820000976 0.7425795178 この結果からページBのPageRankが高く、このリンク構造においては一番価値のあるページとみなされることになる。 3-1-2.PageRankによる人事評価に期待すること マネジメントや調整業務など評価されにくい業務を行なっている人の評価が見えるようになる。 評価者(マネージャーや上司)がメンバーに評価されているか、調整業務は調整間の人から評価されているか。 例)プログラマ「あのマネージャがいなかったら、私のプログラミングは生かせない。だからあの人と今後も仕事をしたい」 例)デザイナ「あのディレクタがいなかったら、このデザインは向こうのチームのレギュレーションを通すことはできなかった」 組織ヒエラルキーにおいて横軸でうまくチームが組めている場合は、評価ベクトルがチーム間を移動する チームをまとめているリーダー間でチームが組めているかを考察する。 例)あるチームリーダー「この事業部にはチームが6チームあるが、あそこのチームリーダーは事業部目線で他のチームのことも考 えて行動しているので非常にやりやすい」 「すごい人がすごいと思う人はさらにすごい」理論で縁の下の力持ち的な業務の担当者を評価を見えるようにする インフラエンジニアや社内業務担当など表には出てこない仕事の担当者にまで評価を伝搬させる。 例)事業担当者「このサービスが成功したのはアプリエンジニアのおかげだ」→アプリエンジニア「このシステムがうまくローン チできたのはインフラエンジニアのおかげだ」→インフラエンジニア\(o)/ 例)アプリエンジニア「このサービスがうまくユーザーに受け入れられたのはディレクタの調整のおかげ」→ディレクタ「このサ ービスがユーザーに受け入れられたのは素晴らしいデザインのおかげ」→デザイナ\(o)/ 3-1-3.検証 チームメンバー約10人のプロジェクトにおいて実際にお互いの評価をしてもらった結果を元に以下の2つの検証を行う。 ※チームメンバーには以下の検証内容について事前に了承をもらっているが、まだ実験段階のレポートのため名前は仮名にしている。 共通している検証方法は以下の2点。 *全て公開する *「誰が誰を評価しているか」というのもその人の評価基準になり得るため。 ※公開することによって個人に振りかかるネガティブ要素についてはマネジメントで解決する(評価は厳正に) *月に一度評価を行う 3-1-3-1.検証方法1 「社員同士で一定のポイントを付与しあうことによって相互評価を行う」 前メンバーに8point, 5point, 3pointのカードを所持し、自分が関わっている他メンバーに対してそれぞれの評価基準でそのポイントを付与する。 一ヶ月に一度この評価を行った結果を以下に示す。 3-1-3-1-1.2012年10月検証 3-1-3-1-1-1.PageRank結果 メンバー同士の評価リンクのグラフ構造は以下の結果になった。
  6. 6. 図3-1-3-1-1-1-1評価ベクトル PageRank計算結果は以下の通り tanaka_taro :834.9413887051172 morishita_shinji :834.9413887051167 hachiuma_yoshiko :300.7939610013264 kataoka_michio :58.57108548529948 takemoto_michiko :18.700945754087122 nakai_miho :0.2608715356202827 fujimoto_kiyoshi :0.2042553209888944 takahashi_takamasa :0.15000000000000002 akiyama_eiji :0.15000000000000002 3-1-3-1-1-2.考察 morishita_shinjiさんとtanaka_taroさんが同じPageRank結果になっている。 その他にも、開発が佳境だったこともあり技術者に多くのリンクが集まっている。 3-1-3-1-2.2012年12月検証 3-1-3-1-2-1PageRank結果 メンバー同士の評価リンクのグラフ構造は以下の結果になった。
  7. 7. 図3-1-3-1-2-1-1評価ベクトル PageRankについては以下の結果になった。 hachiuma_yoshiko :527422.5230730433 morishita_shinji :2189.945995614684 takemoto_michiko :1361.5881104520017 takahashi_takamasa :10.560138137184236 tanaka_taro :10.560138137184236 fujimoto_kiyoshi :0.22018351401936936 kataoka_michio :0.22018351401936936 yoshida_masami :0.15000000000000002 akiyama_eiji :0.15000000000000002 nakai_miho :0.15000000000000002 3-1-3-1-2-2.考察 hachiuma_yoshikoさんのPageRankが非常に高い。 運用フェーズに入り、細かい調整や開発スピードなどが重要な要素になっている可能性もある。 3-1-3-1-3.2013年1月検証 3-1-3-1-3-1.PageRank結果 メンバー同士の評価リンクのグラフ構造は以下の結果になった。
  8. 8. 図3-1-3-1-3-1-1評価ベクトル PageRankについては以下の結果になった。 takahashi_takamasa :22077024.6196283 kataoka_michio :45895.255459895205 takemoto_michiko :300.7939610013264 sugiyama_takashi :10.560138137184241 morishita_shinji :0.2608715356202827 akiyama_eiji :0.2608715356202827 yoshida_masami :0.15000000000000002 nakai_miho :0.15000000000000002 fujimoto_kiyoshi :0.15000000000000002 hachiuma_yoshiko :0.15000000000000002 tanaka_taro :0.15000000000000002 3-1-3-1-3-2.考察 プロジェクト内で重要なサブプロジェクトが発足し、その担当者である2名のPageRankが非常に高い。 リンクが集中していることから、他メンバーへのリンクが一時的に減ったため、デフォルトの数値である0.15000000000000002のメンバ ーも目立つ。 3-1-3-1-4.2013年2月検証 3-1-3-1-4-1.PageRank結果 メンバー同士の評価リンクのグラフ構造は以下の結果になった。
  9. 9. 図3-1-3-1-4-1-1評価ベクトル PageRankについては以下の結果になった。 hachiuma_yoshiko :1374737.878774531 takahashi_takamasa :527422.5230730433 morishita_shinji :3.5540662178950666 takemoto_michiko :0.48684636490656114 fujimoto_kiyoshi :0.2608715356202827 sugiyama_takashi :0.2608715356202827 yoshida_masami :0.22018351401936936 akiyama_eiji :0.2042553209888944 tanaka_taro :0.2042553209888944 kataoka_michio :0.1784386617109304 3-1-3-1-4-2.考察 プロジェクトも安定してきて、コンスタントに開発ができるようになっていることもあり、比較的リンクがばらけている。 全員ががんばっているので、ぱっと見では突出して誰を評価していいかわからないが、PageRankとして算出すると上位2名のPageRankが 高いことがわかる。 3-1-3-1-5.2013年3月検証 3-1-3-1-5-1.PageRank結果 売上拡大を狙うためプロジェクトの中で大きな方向転換も検討しはじめてきた。
  10. 10. 図3-1-3-1-5-1-1評価ベクトル 8ポイント, 5ポイント, 3ポイントで重み付け(検証1と同じ方法) fujimoto_kiyoshi :29188.880081891042 hachiuma_yoshiko :834.9413887051168 takahashi_takamasa :300.7939610013264 morishita_shinji :3.5540662178950657 tanaka_taro :2.187140377811324 takemoto_michiko :0.22018351401936936 sugiyama_takashi :0.2042553209888944 akiyama_eiji :0.1784386617109304 yoshida_masami :0.15000000000000002 kataoka_michio :0.15000000000000002 3-1-3-1-5-2.考察 fujimoto_kiyoshiさんの評価が高い。 プロジェクトとして方向性の転換の検討などエンジニア以外が非常に高いPageRankを示したのは初である。 3-1-3-2.検証方法2 「何も制限を課さずに、評価したい人を好きなだけ挙げてもらう」 検証方法1とは違い、ポイント制は導入せずに推薦したいメンバーを好きな人数を選んでもらう。 何人推薦してもいいが、その価値は一定なので複数人推薦するより1人だけ推薦するほうが強く推薦させることになる。 3-1-3-2-1.2013年3月検証 3-1-3-2-1-1.PageRank結果 メンバー同士の評価リンクのグラフ構造は以下の結果になった。
  11. 11. 図3-1-3-2-1-1-1評価ベクトル PageRankについては以下の結果になった。 重み付けなし fujimoto_kiyoshi :2423516.9406517665 hachiuma_yoshiko :661.358612249685 tanaka_taro :37.20017785911423 takahashi_takamasa :17.323422261424863 morishita_shinji :17.32342226142486 takemoto_michiko :0.686842045081926 yoshida_masami :0.15000000000000002 akiyama_eiji :0.15000000000000002 sugiyama_takashi :0.15000000000000002 kataoka_michio :0.15000000000000002 3-1-3-2-1-2.考察 検証方法1と同じくfujimoto_kiyoshiさんのPageRankがやはり高い。 3番目と4番目のPageRankの順位が検証方法1と違うのはポイントの重み付けの問題が影響している可能性がある。 3-1-4.検証コード
  12. 12. リンク構造データ(json) var data_2012_oct = { "tanaka_taro":[ {"dest":"kataoka_michio", "weight":8}, {"dest":"takemoto_michiko", "weight":5}, {"dest":"hachiuma_yoshiko", "weight":3}, ], "kataoka_michio":[ {"dest":"tanaka_taro", "weight":8}, {"dest":"hachiuma_yoshiko", "weight":5}, {"dest":"morishita_shinji", "weight":3} ], "hachiuma_yoshiko":[ {"dest":"morishita_shinji", "weight":8}, {"dest":"takemoto_michiko", "weight":5}, {"dest":"tanaka_taro", "weight":3} ], "nakai_miho":[ {"dest":"morishita_shinji", "weight":8}, {"dest":"hachiuma_yoshiko", "weight":5}, {"dest":"takemoto_michiko", "weight":3} ], "morishita_shinji":[ {"dest":"kataoka_michio", "weight":8}, {"dest":"tanaka_taro", "weight":5}, {"dest":"hachiuma_yoshiko", "weight":3} ], "akiyama_eiji":[ {"dest":"hachiuma_yoshiko", "weight":8}, {"dest":"fujimoto_kiyoshi", "weight":5}, {"dest":"takemoto_michiko", "weight":3} ], "takahashi_takamasa":[ {"dest":"nakai_miho", "weight":8}, {"dest":"tanaka_taro", "weight":5}, {"dest":"takemoto_michiko", "weight":3} ], "fujimoto_kiyoshi":[ {"dest":"kataoka_michio", "weight":8}, {"dest":"morishita_shinji", "weight":5}, {"dest":"takemoto_michiko", "weight":3} ], "takemoto_michiko":[ {"dest":"tanaka_taro", "weight":8}, {"dest":"morishita_shinji", "weight":5}, {"dest":"hachiuma_yoshiko", "weight":3} ] } PageRank計算コード(JavaScript) //2013年の3月の評価データを使う場合 var data = data_2013_mar; //行列作成用の並び順を定義 var sort_ctl = {}
  13. 13. var sort_ctl_byName = new Array(); var cnt = 0; for (var d in data) { sort_ctl[d] = cnt; sort_ctl_byName[cnt] = d; cnt++; } //行列構築 var dim1_matrix = new Array(); for (var dim1 in data) { var dim2_matrix = new Array(); for(var i = 0; i < cnt; i++) { dim2_matrix[i] = 0; } var amount = (function() { var amount_cnt = 0; for (var i = 0; i < data[dim1].length; i++) { amount_cnt += data[dim1][i].weight; } return amount_cnt; }()); for (var i = 0; i < data[dim1].length; i++) { var edge = data[dim1][i]; dim2_matrix[sort_ctl[edge.dest]] = edge.weight / amount; } dim1_matrix[sort_ctl[dim1]] = dim2_matrix; } //debug //var foo = new Matrix(dim1_matrix); //alert(foo.Print()); var PageRank = function(matrix, loop) { var d = 0.85; //行列の転置 var transposed_matrix = (function() { var transposed = new Array(); for(var i = 0; i < matrix.length; i++) { transposed[i] = new Array(); } for (var i = 0; i < matrix.length; i++) { for (var j = 0; j < matrix[i].length; j++) { transposed[j][i] = matrix[i][j]; } } return transposed; }()); //初回の各PageRankは1と置く var pagerank = (function() { var initial = new Array(); for (var i = 0; i < transposed_matrix.length; i++) { initial[i] = 1; } return initial;
  14. 14. }()); var compute_pr = function() { var new_pagerank = new Array(); for (var i = 0; i < transposed_matrix.length; i++) { var cals = transposed_matrix[i]; var refs_pr = 0; for (var j = 0; j < cals.length; j++) { if (cals[j] > 0) { refs_pr += pagerank[i] * cals[j]; } } new_pagerank[i] = (1 - d) + (d * refs_pr); } pagerank = new_pagerank; } return function() { for (var i = 0; i < loop; i++) { compute_pr(); } return pagerank; } } //PageRank計算 var pr_result = new PageRank(dim1_matrix, 15)(); //結果をalertで表示 var result = new Array(); for (var i = 0; i < pr_result.length; i++) { result.push({"name" : sort_ctl_byName[i], "pagerank" : pr_result[i]}); } result.sort(function(a, b) { return (a.pagerank > b.pagerank ? 1 : -1); }).reverse(); var log = ""; for (var i = 0; i < result.length; i++) { log += result[i].name + ":" + result[i].pagerank + "n"; }
  15. 15. alert(log); 4.まとめ 4-1.総括 人が人を評価する以上は定性的な評価基準が介在することはやむを得ない。 しかし、その定性評価を行う材料となる基準は定量的に計測するべきという観点から今回はこのような実験を行った。 約半年間、このPageRank評価を使って、実際にマネジメントに利用したが全て評価結果を公開していることから評価者、メンバーともに 異論を唱える余地はなく、定性評価を行う上での材料としては非常に参考になったと感じた。 定性評価について、もし異論がある場合は定量評価を元に異論を唱えることができるため、評価をする上でお互いに客観的に議論ができる のではないだろうか。 例えば、メンバーは異論がある場合は「PageRankが高いのになぜ最終評価が低いのか」という議論を行ったり、評価者も「PageRankが低 いので最終評価も高くできなかった」という透明な説明ができる。 期待した結果の考察 マネジメントや調整業務など評価されにくい業務を行なっている人の評価が見えるようになる 2013年3月の評価結果において、サービス運営上必要なコンプライアンスにおける調整やサービスポリシーの決定など(いわゆる プロジェクト責任者業務)のロール担当者に非常に高い評価が集まったことから、普段見えづらい業務を担当しているメンバーへ の評価に一定の効果があるように思われる。 組織ヒエラルキーにおいて横軸でうまくチームが組めている場合は、評価ベクトルがチーム間を移動する 今回はプロジェクト内での相互評価に絞っていたため、この検証は行うことができなかった。 「すごい人がすごいと思う人はさらにすごい」理論で縁の下の力持ち的な業務の担当者を評価を見えるようにする 2013年1月の検証においては明らかに活躍したメンバーに評価が集まったが、そのメンバーが他メンバーに対しても評価をしてい るため3番目以降の活躍しているメンバーも浮き彫りになっている。 このことから盲目的にその2名だけを評価するのではなく、裏に隠れてしまっている3番目以降のメンバーも評価をしやすくなると いう意味では効果があった。 面談時などのマネジメントにおいて、この結果をもとにわかりやすく活躍したメンバー2名以外のメンバーに対してフォローや評価 をするということが可能になる。 発生した問題への対処 8ポイント、5ポイント、3ポイントの限られたポイントを評価に使うことによって、直接的に評価されないメンバーが出てくるこ とがあった。 PageRankを計算すると最終的には評価はされているが、全て公開することによって直接的に評価されなかったメンバーへの精神的 な影響はあるはずなので、フォローアップは重要であると感じた。 しかし、この問題はPageRankを使った評価の問題ではなく、透明で定量的な評価をする上では少なからず発生する問題であると考 えているため、マネジメント(上司やメンターによる面談など)で解決するべきだと考える マネジメントのツールとしての有用性 マネジメントを行う上でコミュニケーションの材料として重要であると感じた。 例えばPageRankが低いメンバーの場合、グラフ構造を共に見ることによって、「なぜPageRankが低いのか?」を一緒に考えて、 どのような働き方がベストなのか、何が求められているのかの方向付けを共有することができる。 「次回はhogeさんから評価がもらえるように、今までの働き方を変えてみてはどうか?」、「PageRankを見る限り今のままでは 誰からも評価をもらえていない。これはチームに受け入れられてないということが考えられるから働き方を変えてみてはどうか? 」など。 新技術への取り組みの必要性の議論への展開 「新技術への取り組みは長期的には会社に必要だから」という理由で、業務として新技術の採用や検証を行なっている場合、それ が本当に必要かどうかはチームや組織自身が決めるべきである。 その新技術への取り組みがチームや組織に受け入れられていれば、必然的にPageRank評価は低いということはないと思われるが、 チームとしてその新技術への取り組みが理解されていない(受け入れられていない)場合はPageRank評価は低いものになるだろう 。 いずれにしてもPageRank評価はあくまで最終的な定性評価を行う材料の一つであると考えているため、この結果だけを見て評価とするこ とは想定していない。 あくまで、評価は会社組織として取り組むことなので、人が人を評価することを前提としているためである。
  16. 16. 4-2.今後 この評価実験の対象者数を増やし、人数とPageRank評価の実験を引き続き行う。 評価者の選出についても、トップダウンでの選出ではなくPageRankが高い人物を選出するという取り組み実験を行うことも考えている。 5.参考文献 The PageRank Algorithm:http://pr.efactory.de/e-pagerank-algorithm.shtml Google PageRankの数理 ―最強検索エンジンのランキング手法を求めて:http://www.amazon.co.jp/Google-PageRank%E3%81% AE%E6%95%B0%E7%90%86-%E2%80%95%E6%9C%80%E5%BC%B7%E6%A4%9C%E7%B4%A2%E3%82%A8%E3%83%B3 %E3%82%B8%E3%83%B3%E3%81%AE%E3%83%A9%E3%83%B3%E3%82%AD%E3%83%B3%E3%82%B0%E6%89%8B%E6 %B3%95%E3%82%92%E6%B1%82%E3%82%81%E3%81%A6%E2%80%95-Amy-N-Langville/dp/4320122399 JavaScript InfoVis ToolkitCreate Interactive Data Visualizations for the Web:http://philogb.github.com/jit/index.html(demo) A force directed graph layout algorithm in JavaScript.:http://getspringy.com/(demo)

×