Upload
others
View
6
Download
0
Embed Size (px)
Citation preview
[D2-28]ソフトウェア依存関係ネットワークにおける ベイズ的コミュニティ抽出
渡邊裕貴 寺田実 (電気通信大学)
背景と目的
手法
混合ベルヌーイ分布によるコミュニティ抽出法[1] 1
2
3
4
次数分布に基づくハイパーパラメータの設定[2]
情報量規準によるハイパーパラメータとコミュニティ数の設定[3]
実験
結果 chromium
gtk3
libjpeg
依存関係
本研究は,このような複雑なパッケージの依存関係から大局的な構造を抽出し,提示することを目的とする. 上記の値を用いて,WAICは以下のように計算される:
Linuxのコアファイル・通信関連のパッケージ linux-api-headers, tzdata, filesystem, iana-etc, libffi, libutil-linux, xcb-proto, libxdmcp, libxau, expat, pixman, lzo, libepoxy, libdatrie, libcap, attr, libgpg-error, lz4, wayland, libxkbcommon, libdrm, libpciaccess, libxshmfence, libomxil-bellagio, libtxc_dxtn, libunwind, lm_sensors, perl, gdbm, sysfsutils, nspr, p11-kit, libtasn1, alsa-lib, libice, cracklib, libtirpc, krb5, e2fsprogs, libldap, libsasl, openssl, keyutils, pambase, shadow, acl, coreutils, libcap-ng, nettle, libidn, libunistring, libdaemon, libusb, device-mapper, popt, iptables, libnftnl, libmnl, libnl, kbd, kmod, hwids, libseccomp, libasyncns, libsndfile, libogg, libvorbis, pciutils, opus, giflib,
�Xorg関連のパッケージ gtk3, atk, glib2, cairo, libxrender, libx11, libxcb, xproto, kbproto, renderproto, libxext, xextproto, fontconfig, harfbuzz, libxcursor, libxfixes, fixesproto, libxinerama, xineramaproto, libxrandr, randrproto, libxi, inputproto, gdk-pixbuf2, jasper, shared-mime-info, dconf, libxcomposite, compositeproto, libxdamage, damageproto, pango, libthai, libxft, at-spi2-atk, at-spi2-core, libxtst, recordproto, xkeyboard-config, adwaita-icon-theme, hicolor-icon-theme, gtk-update-icon-cache, librsvg, libcroco, json-glib, wayland-protocols, desktop-file-utils, libxxf86vm, xf86vidmodeproto, libglvnd, cantarell-fonts, xorg-xset, libxmu, libxt, libsm, libxss, scrnsaverproto
�フォント・画像ライブラリ関連のパッケージ pcre, ncurses, libpng, freetype2, graphite, libtiff, libjpeg-turbo, icu, libelf, llvm-libs, libedit, db, nss, sqlite, xdg-utils, gmp, gnutls, ttf-dejavu, xorg-fonts-encodings, xorg-mkfontscale, libfontenc, xorg-mkfontdir, flac, minizip, harfbuzz-icu, libxslt, re2, libwebp, snappy
�コアライブラリ・シェル・systemdなどのパッケージ chromium, gcc-libs, glibc, readline, zlib, bzip2, bash, xz, libxml2, dbus, libsystemd, libgcrypt, mesa, util-linux, pam, libcups, avahi, systemd, cryptsetup, libpcap, libpulse
[1] Jiao Wang and C-H Lai. Detecting groups of similar components in complex networks. New J. Phys., Vol. 10, 123023, 2008. [2] Sumio Watanabe, Asymptotic Equivalence of Bayes Cross Validation and Widely Applicable Information Criterion in Singular Learning Theory. JMLR, Vol.11, pp.3571-3594, 2010. [3] 原田尚幸, 竹内一郎, 中野良平. 次数分布に基づく事前情報を用いた複雑ネットワークのクラスタリング. 信学技報, Vol. 108, No. 372, NC2008-73, pp. 1‒6, 2008.
Xorg関連のパッケージを多く含むコミュニティには互いに多くの依存関係が存在する一方,それ以外のコミュニティのパッケージはむしろコアライブラリやシェルを含むコミュニティに含まれるパッケージとの依存関係を多く持つことが分かった.
コミュニティごとにノードを色分けした結果
“linux”の依存関係を満たすパッケージの一覧
パッケージ単位で提供されるソフトウェアは,必要な機能を得るために別のパッケージに依存する場合が多い.パッケージの数が増えるにつれ,その間の依存関係もより複雑になる.
ネットワークの隣接行列表現
N個のパッケージ(ノードの依存関係ネットワークを,隣接行列 で表す. ただし, , , . パッケージ とパッケージ が直接の依存関係を持つとき (リンクが存在)とし,そうでないとき とする(無向ネットワーク)
各パッケージがコミュニティrに所属する確率:
l 同じコミュニティ に属するパッケージからは, 他のパッケージ に対し一定の確率 で依存関係が 存在すると仮定
l パッケージ がコミュニティ に属する確率
l [1]では,EM法による最尤推定からコミュニティ抽出を行っているが,本研究では以下の事前分布を設定しギブスサンプリングによるコミュニティ抽出を行った:
l リンク接続確率 の事前分布を,観測データの次数分布に基づいて設定. l ノードjの入次数を とすると,各ノードからノード へのリンク接続確率 と予測される. l ロングテール型のベータ分布において,平均値が となるよう, 事前分布を以下のように設定.
コミュニティ
l 本研究では,モデル選択に情報量規準WAICを用いた. l ギブスサンプリングにおいて得られたパラメータの 個のサンプル
から,各 について以下の値を計算:
l 観測データ:pacman*により提供されているパッケージのうち, ”chromium”の依存関係を満たすパッケージ群からなる依存関係ネッワーク. l “chromium”自身も含めた総パッケージ数(ノード数):177 l Thetaの事前分布:観測データの次数分布に基づき設定 l コミュニティ数 ,ハイパーパラメータ に対してギブスサンプリングを行い,WAICの値を比較
l 上記の結果から, , のときWAICが最小となることが分かった.このときのサンプルから得られたコミュニティ分割を以下に示す.
AA = {Aij} i =1,2,...,N j =1,2,...,N
i j Aij =1Aij = 0
π r
r
jθrj
l 隣接行列 の 行目の生成確率: iA
r
i r
θrjkj j
kj / Nkj / N
K
i
C ∈ {3, 4, 5} α = 0.1, 0.2,..., 0.7
各コミュニティ数 に対する,ごとのWAICの値 C α
C = 4 α = 0.3
隣接行列の定義
(学生優秀プレゼンテーション対象)
(*Arch Linuxに標準で提供されているパッケージマネージャ)