Application of Collaborative Filtering for

ソフトウェア部品推薦のための
協調フィルタリング手法の提案と実現
市井誠† 山本哲男†† 横森励士† 井上克郎†
†
大阪大学 大学院情報科学研究科
††
立命館大学 情報理工学部 情報システム学科
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
1
ソフトウェア部品検索システム
過去に開発された大量のソフトウェア資産
企業内で開発
Web上で公開
再利用や理解を支援するツールが必要
部品数が多いために把握が困難
部品に詳しい人が不在
ソフトウェア部品検索システム
ソフトウェア資産をデータベースに登録
キーワード入力等により部品を検索・取得
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
2
Javaソフトウェア部品検索システム
SPARS-J
Javaソフトウェア部品検索システム SPARS-J
Javaのクラスを部品とし,キーワード入力により検索
パッケージブラウザ
利用関係の表示
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
3
研究の目的
ユーザの目的に応じた部品を取得するには労力が必要
SPARS-Jでは,検索語に対して検索結果を返す
検索語は,ユーザの目的の一部しか表現してない
ユーザの目的を満たすには,検索結果の選別や,検索の繰り返し
が必要
過去のユーザの検索履歴が利用できないだろうか?
システムは,それぞれのユーザの目的で利用されている
過去に同じ目的で検索したユーザがいるかもしれない
そのユーザが利用した部品を提示することで,ユーザの労力を減ら
せる
協調フィルタリングの手法により,ユーザの目的に
応じた部品を推薦する
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
4
協調フィルタリング(1/2)
大量のアイテムの中から,ユーザから得た情報をもとに
推薦アイテムを決定する手法
書店などのオンラインショップで利用されている
amazon.co.jp
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
5
協調フィルタリング(2/2)
アイテム
ユーザ
評価
1
2
推薦
B
C
D
E
5
3
1
?
?
1
?
4
1
4
5
4
1
5
2
ソフトウェア部品
セッション
D
A
履歴
3
好みが似ている
3
1. ユーザから,各アイテムに対する評価を得る
2
?
4
2
検索目的
2. ユーザの評価をもとに,アイテムを推薦する
1. 評価の類似度の高いユーザを求める
2. 類似度の高いユーザの評価をもとに,推薦するアイテムを決定
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
6
概念の対応
「ユーザ」→「セッション」
セッション:システムの使用開始から終了まで
同じユーザでも,場合により検索目的が異なる
目的が異なれば,異なるユーザとして扱う必要がある
システムの使用を終了した段階で目的を終えたと判断する
「評価」→「履歴」
履歴を暗黙的な評価と見なす
表示した部品に,評価値 1をつける
表示していない部品は評価値 0
明示的に評価を入力するのは,労力が必要
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
7
提案手法の手順
ユーザの履歴を,セッションごとに取得する
対象となるセッションへ推薦する部品を求める
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
8
履歴の取得
ユーザ
Webブラウザ
部品データベース
履歴データベース
部品
セッションの追加
履歴の記録
セ
ッ
シ
ョ
ン
1
:表示済
2
3
4
5
6
7
a
b
c
d
e
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
9
部品の推薦
ユーザ
Webブラウザ
部品データベース
履歴データベース
3
各セッションとの相関
係数を求める
各部品の推薦値を求
める
推薦する部品を利用
者に提示する
各セッションでの評価値の
加重平均
部品
1
2
3
4
5
6
7
セッションeとの
:表示済
相関係数
d
1
1
0
1
1
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0.58
0.67
0
0.67
e
1 1 ?
0 1 ?
0 ?
0 ?
0
7
セ
ッ
シ
ョ
ン
a
b
c
“?”に入る値を推測
推薦値
0.64
0 値が高ければ推薦
0 0.64
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
10
SPARS-Jへの実装(システム構成)
追加実装部分
部品登録部
推薦部
部品の登録
部品の推薦
履歴データ
ベース
部品データ
ベース
履歴の取得
ユーザ
部品検索部
検索・表示
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
11
SPARS-Jへの実装(スクリーンショット)
セッション中で表示した部品
推薦部品(ZipEntryとの利用関係別)
推薦部品
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
12
適用実験の概要(1/2)
目的
推薦機能が検索効率の改善に役立つかどう
か検証する
内容
部品の検索・取得
被験者
SPARS-Jを利用してのJavaプログラム作成
スケルトンコードの未実装部分の記述
SPARS-Jで検索したソースコードを参考に
練習課題および,課題1~課題4 の5課題
被験者
井上研究室の学生・研究員 8名
4名ずつの2グループに分け,比較
SPARS-J データベース
JDK,Web上から収集したソースなど約
35,000 クラス
履歴データベースは空の状態から開始
参照してコード記述
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
13
適用実験の概要(2/2)
手順
グループ1
グループ2
1
練習課題
2
課題1,課題2
課題3,課題4
3
課題3,課題4
課題1,課題2
SPARS-Jと課題に慣れる
グループ分けの参考にする
推薦機能 無し
推薦機能 有り
評価項目
検索時間
作業時間全体から コーディング時間を引いたもの
適合率
表示した部品のうち,プログラムに利用できる部品の割合
これらを,推薦機能を利用する場合/利用しない場合で比較
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
14
実験結果と考察(1/2)
検索時間の比較
適合率の比較
40
35
25
適合率
検索時間(分)
30
20
15
10
5
0
課題1 課題2 課題3 課題4
グループ1
課題
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
課題1 課題2 課題3 課題4
課題
グループ2
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
15
実験結果と考察(2/3)
検索時間の比較
適合率の比較
1
0.9
35
0.8
30
0.7
25
0.6
20
0.5
0.4
15
0.3
10
0.2
課題1では大きな差が見られる
5
0.1
経験者のいない課題であり,推薦の有効性を示唆
0
0
課題3では差が見られない
課題1 課題2 課題3
課題4
課題1 課題2 課題3 課題4
推薦機能 有り
課題 課題分野の知識のある被験者の存在
課題
適合率
検索時間(分)
40
推薦機能 無し
推薦機能の有無による差が見られない被験者の存在
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
16
実験結果と考察(3/3)
効率の上がっていない被験者が存在する
「表示済み部品は推薦しない」という方針が原因
該当する被験者の検索行動 :
まず様々な部品に軽く目を通し,後半はそれらを見直しながら
有効な部品を絞り込んでいく
利用できる部品は,序盤で履歴に入ってしまい,ほとんど推
薦されない
 推薦機能を有効に利用できていなかった
表示済み部品の推薦も行うよう,修正が必要
表示済み部品の推薦については,ユーザが有無を選択でき
る様なインターフェースが好ましい
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
17
まとめと今後の課題
まとめ
ソフトウェア部品を対象とした推薦手法を提案し,SPARS-Jに実
装した
適用実験により,ユーザの検索効率の向上が確認された
今後の課題
精度の向上
履歴の重み付けなど
ユーザーインターフェースの改良
表示済み部品の扱い
検索画面などからのシームレスな利用
より大規模な実験
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
18