ゼロ資源状況におけるサブワード単位の獲得にむけてグラフニューラルネットワークを用いた手法
高橋舜１，サクリアニサクティ１,2，中村哲１,2
1

奈良先端科学技術大学院大学2
理化学研究所革新知能統合研究センター

1
2021/6/11

http://www.naist.jp/

研究背景: 従来の機械音声認識の課題• 従来の機械音声認識は大量の音声と書き起こしテキストの対データを利用• 世界の圧倒的大多数の言語はそのようなデータは入手困難– ほとんどが音声で運用されており，あまり書かれない．
– Ethnologue[1]によると，世界の7139言語のうち3074言語は完全な口頭言語とされる– そもそも書記形式（書き言葉）が確立されておらず，書き起こしに非常にコストがかかる．

• 書き起こしテキストへの依存が音声認識の多言語展開への技術的ボトルネック．

2
http://www.naist.jp/

研究背景: 機械と人間の音声認識の違い• 従来の機械音声認識は大量の音声と書き起こしテキストの対データを利用• 人間は読み書きの知識なくして音声から音声認識ができるようになる– 人間にとって音声は最初に獲得する最も普遍的な自然言語の形• 機械も同じように音声信号から直接，音声認識できるようにできないか？

本研究：音響単位・サブワード単位獲得
ゼロ資源 / 教師なし音声言語処理
3
http://www.naist.jp/

研究背景: ゼロ資源音声言語処理• ゼロ資源 / 教師なし音声言語処理– 明示的な言語知識（教師ラベル）を必要としない音声言語処理を目指す– 人間の言語獲得のリバースエンジニアリング的理解– 資源の限られた言語のための技術開発• Zero Resource Speech Challenge (ZeroSpeech) [3,4,5,6]:– 教師なし音声言語処理の実現に向けたシェアドタスク– 課題（図１）・評価手法・データセットが共有されている．

本研究：音響単位・サブワード単位獲得
図１：ZeroSpeechの構想 [2]2021/6/11

4

http://www.naist.jp/

研究背景:音響単位・サブワード単位獲得• 音声データから音声認識に必要な離散的な単位 の獲得を目指すタスク．
– 自然言語を構成する最小単位（記号）を見つけたい– 音声を「文字列」のような記号系列に変換する‘bag’

ModelA• 評価指標1. 言語音の識別性:

‘bag’

‘beg’

‘bag’

ModelB• 異なった言語音を識別するための音響特徴を捉えられているか，ABXテスト[7]の誤り率により評価．

2. ビットレート:• 獲得単位の粒度の粗さ（＝ビットレートの低さ）を評価．

• 識別性を保ちつつ，低ビットレートな単位ほど良い．両者のトレードオフを最適化．
2021/6/11

5

http://www.naist.jp/

先行研究:音響単位・サブワード獲得モデル

性能比較（インドネシア語のデータセット）• 近年VAEベースのモデルが主流

better• ZeroSpeech2020で提案されてきたモデルのVQVAE• ベクトル量子化(Vector-quantization;VQ)[8]という手法を利用したモデルが SOTA.
• VQ: 事前にカテゴリー数を決めて，フレーム単位に切り分けた音声をクラスタリング

betterVQCPC– VQ-VAE[9]（ZeroSpeech2019 SOTA）– VQ-CPC[10]（ZeroSpeech2020 SOTA）

教師ありASR

音声書き起こし図：[6]より

6
http://www.naist.jp/

先行研究における課題• VQモデルは非常に高い言語音の識別性を達成．
better

一方で

図：[10]より• VQの課題：

VQVAE– 固定長フレーム単位のクラスタリング– フレーム間の相関が明示的に捉えられていない– 音声書き起こし●と比較してビットレートが非常に高い
本研究の提案

betterVQCPC

グラフニューラルネットワークを用いたクラスタリングで解決

教師ありASR

音声書き起こし図：[6]より

7
http://www.naist.jp/

本研究の提案：なぜグラフニューラルネットワークか？
• VQによって離散化（カテゴリ化）された音響特徴量を活かせる．
• 系列構造を超えたより複雑な構造から各特徴量の相関が明示的に扱える.

8
http://www.naist.jp/

提案する枠組み: GCN Clustering

3. グラフ畳み込み

1. ベクトル量子化

2. グラフ構築

3. スペクトラルクラスタリング
4. 再構築9
http://www.naist.jp/

GCNクラスタリング：ベクトル量子化とグラフ構築• ベクトル量子化がコードブック（カテゴリ目録）の上限数を決められている.
次のようにグラフに落とし込む．
• コードブック → 頂点の集合とその特徴量• 音声 → コード系列 → 頂点の鎖•

コード間の遷移 → 辺•

辺の重みは遷移頻度の指数移動平均（各ステップごとに算出）•

コード系列のミニバッチ → グラフ
11
http://www.naist.jp/

GCNクラスタリング: グラフ畳み込み• ‘Topology-Adaptive Graph Convolutional Network’ (Du+, 2018).
• 各ノードには対応する特徴量ベクトルがある．今回はコードブックがそれに対応.
• TAGCNは各ノードごとに近傍のノードから特徴量を集約させる．
• 辺の重みがどれだけ特徴量が伝播するか決める．
• これにより，相関のあるコード同士が似たノード特徴量を共有するようになる．

グラフ畳み込み12
http://www.naist.jp/

GCN クラスタリング: クラスタリング (1)• ノード特徴量と辺の重みに基づいてクラスタリングを行う.
– MinCut Pooling (Bianchi+, 2020)：GCNをベースとした一種のスペクトラル・クラスタリング• 取り除く辺の重みの合計が最小となるような形でグラフをK分割する.
• 今回の場合では時間的に隣り合う傾向が高いコード同士がクラスターを形成.

グラフクラスタリング

13
http://www.naist.jp/

GCN クラスタリング: クラスタリング (1)• グラフクラスタリングはベクトル量子化の学習と同時に行う．
• 学習により各コードとそれが所属するクラスターのルックアップテーブルを構築．
Ø それをもとにして推論時にコード系列をさらに所属クラスターの系列へ変換

クラスターID

コードID

14
http://www.naist.jp/

GCN クラスタリング：提案モデルCPC+
GCN Clustering• GCN clusteringを音響単位発見のSOTAモデルであるVQ-CPCにモジュールとして組み込む．
1. VQの出力とGCNの出力のベクトルを結合する．
2. VQCPCと同様に自己教師あり学習のCPCロスを計算する．

VQ

目的関数：ℒ !" +ℒ #$%& + ℒ $'$Encoder15
http://www.naist.jp/

評価実験：ZeroSpeech2020• 以下のように設定したモデルでSOTAモデルとのZeroSpeech2020の設定で比較実験を行う– コードブックサイズ（VQのカテゴリ数）：512 （VQCPC[]と同じ設定）– GCN clustering サイズ : 64

• 比較モデル– VQVAE [9]– VQCPC [10]– 同じデータセットで教師あり学習したASR [6]16
http://www.naist.jp/

評価実験：ZeroSpeech2020• ZeroSpeech 2019 / 2020 English Dataset• Train Voice DatasetとTrain Unit Datasetを両方利用# speakers# utterances
Development Language (English)
1 MaleTrain Voice Dataset
1 Female
Train Unit DatasetTrain Parallel Dataset
Test Dataset

10+ *Duration (VAD)

少量

970
2563

2h2h40100
1 male5941[16-80 by speaker]
92

15h40
[2-11min by speaker]
4.3min1 female98
多数話者

4.5min24455[6-20 by speaker]

28min[1-4min by speaker]• 評価手法にはZeroSpeech同様，ABXテスト（言語音識別性）とビットレート推定．

17

http://www.naist.jp/

評価実験：ZeroSpeech2020

29.41/37.73

37.95/167.02
29.85/37.73

20.71/167.02

27.70/417.89

17.93/271.76
22.02/271.76
13.25/417.89●教師ありASR■VQVAE▲VQCPC★提案手法

コサイン距離（Cos.）とリーベンシュタイン距離（Lev.）の違い：• Cosは特徴量に基づいて記号間の特徴量の類似性を考慮• Lev.はあくまで個別の記号として同一か，否かにのみ着目
18
http://www.naist.jp/

評価実験：ZeroSpeech2020
本研究の狙い通りにVQ-CPCからビットレートを下げることに成功

29.41/37.73

37.95/167.02
29.85/37.73

20.71/167.02

27.70/417.89

17.93/271.76
22.02/271.76
13.25/417.89

ベースとしているVQCPC▲と比較すると，性能がABX (cos.)は低下●教師ありASR■VQVAE▲VQCPC★提案手法

一方でABX (Lev.)の観点で言えば本研究手法がSOTAを達成

依然として教師あり音声認識モデル●とのビットレート差は大きい
コサイン距離（Cos.）とリーベンシュタイン距離（Lev.）の違い：• Cosは特徴量に基づいて記号間の特徴量の類似性を考慮• Lev.はあくまで個別の記号として同一か，否かにのみ着目
19
http://www.naist.jp/

まとめ1. 先行研究の手法は固定長のフレーム単位の音響特徴量に専ら着目してきたため，獲得される単位が非常に粒度が高く冗長であった．
2. 本研究では各フレーム単位の音響特徴量だけでなく，それとは独立した形で音響特徴量の時間的な相関を明示的に扱う手法を提案した．
3. 提案手法はSOTAのモデルと比較すると言語音識別性とビットレートのより良い両立を実現した．

20
http://www.naist.jp/

展望• 今後，ZeroSpeechの評価枠組み以外の観点から獲得される単位について調査する必要がある．
• ビットレートの観点では依然として教師あり音声認識（書き起こし）の音素単位と非常に大きな差がある．モデル設計の改良の余地がまだまだある．

21
http://www.naist.jp/

参考文献[1] Eberhard, David M., Gary F. Simons, and Charles D. Fennig (eds.). 2021. Ethnologue: Languages of the World. Twenty-fourth edition. Dallas, Texas: SIL International.
[2] Zerospeech.com. 2021. The Zero Speech Challenge. [online] Available at: <https://zerospeech.com/> [Accessed 7 June 2021].
[3] Versteegh, M., Anguera, X., Jansen, A. & Dupoux, E. (2016). The Zero Resource Speech Challenge 2015: Proposed Approaches and Results. In SLTU-2016 Procedia Computer
Science, 81, pp. 67-72[4] Dunbar, E., Xuan-Nga, C., Benjumea, J., Karadayi, J., Bernard, M., Besacier, L., Anguera, X. & Dupoux, E. (2017). The Zero Resource Speech Challenge 2017.
[5] Dunbar, E., Algayres, R., Karadayi, J., Bernard, M., Benjumea, J., Cao, X.-N., Miskic, L., Dugrain, C., Ondel, L., Black, A. W., Besacier, L., Sakti, S., Dupoux, E. (2019). The Zero
Resource Speech Challenge 2019: TTS without T. In INTERSPEECH-2019.In ASRU-2017, pp. 323-330[6] Dunbar, E., Karadayi, J., Bernard, M., Cao, X.-N., Algayres, R., Ondel, L., Besacier, L., Sakti, S., Dupoux, E. (2019). The Zero Resource Speech Challenge 2020: Discovering
discrete subword and word units. In INTERSPEECH-2020.
[7] Schatz, T., Peddinti, V., Bach, F., Jansen, A., Hermansky, H., & Dupoux, E. (2013). Evaluating speech features with the Minimal-Pair ABX task: Analysis of the classical MFC/PLPpipeline. In Interspeech (pp. 1781–1785). Schatz, Thomas. ABX-discriminability measures and applications.. PhD diss., Paris 6, 2016.
[8] Aaron van den Oord, Oriol Vinyals, and Koray Kavukcuoglu. 2017. Neural discrete representation learning. In Proceedings of the 31st International Conference on NeuralInformation Processing Systems (NIPS'17). Curran Associates Inc., Red Hook, NY, USA, 6309–6318.
[9] A. Tjandra, B. Sisman, M. Zhang, S. Sakti, H. Li, and S. Nakamura, “VQVAE Unsupervised Unit Discovery and Multi-Scale Code2Spec Inverter for Zerospeech Challenge 2019,” inInterspeech 2019, Sep. 2019, pp. 1118–1122.
[10[ B. Van Niekerk, L. Nortje, and H. Kamper, “Vector-Quantized Neural Networks for Acoustic Unit Discovery in the ZeroSpeech 2020 Challenge,” in Interspeech 2020, Oct. 2020, pp.
4836–4840.
[11] Bianchi, F.M., Grattarola, D. &amp; Alippi, C.. (2020). Spectral Clustering with Graph Neural Networks for Graph Pooling. Proceedings of the 37th International Conference onMachine Learning, in Proceedings of Machine Learning Research 119:874-883[12] Du, J., Zhang, S., Wu, G., Moura, J.M., & Kar, S. (2017). Topology adaptive graph convolutional networks. ArXiv, abs/1710.10370.

22
http://www.naist.jp/

参考文献

••
•
•
•
•
•
•
•
•
••
•
•

Zerospeech.com. 2021. The Zero Speech Challenge. [online] Available at: <https://zerospeech.com/> [Accessed 7 June 2021].
[1] T. Schatz, V. Peddinti, F. Bach, A. Jansen, H. Hermansky, and E. Dupoux, “Evaluating speech features with the Minimal-Pair ABX task: Analysis of the classical MFC/PLP pipeline,” p. 5.
[2] B. van Niekerk, L. Nortje, and H. Kamper, “Vector-quantized neural networks for acoustic unit discovery in the ZeroSpeech 2020 challenge,” arXiv:2005.09409 [cs, eess], Aug. 2020,Accessed: Oct. 22, 2020. [Online]. Available: http://arxiv.org/abs/2005.09409.
[3] A. Tjandra, S. Sakti, and S. Nakamura, “Transformer VQ-VAE for Unsupervised Unit Discovery and Speech Synthesis: ZeroSpeech 2020 Challenge,” arXiv:2005.11676 [cs, eess], May
2020, Accessed: Jul. 04, 2020. [Online]. Available: http://arxiv.org/abs/2005.11676.
[4] B. van Niekerk, L. Nortje, and H. Kamper, “Vector-Quantized Neural Networks for Acoustic Unit Discovery in the ZeroSpeech 2020 Challenge,” in Interspeech 2020, Oct. 2020, pp.
4836–4840, doi: 10.21437/Interspeech.2020-1693.
[5] E. Dunbar et al., “The Zero Resource Speech Challenge 2020: Discovering discrete subword and word units,” arXiv:2010.05967 [cs], Oct. 2020, Accessed: Nov. 23, 2020. [Online].
Available: http://arxiv.org/abs/2010.05967.
[6] A. Tjandra, B. Sisman, M. Zhang, S. Sakti, H. Li, and S. Nakamura, “VQVAE Unsupervised Unit Discovery and Multi-Scale Code2Spec Inverter for Zerospeech Challenge 2019,” inInterspeech 2019, Sep. 2019, pp. 1118–1122, doi: 10.21437/Interspeech.2019-3232.
[7] A. van den Oord, Y. Li, and O. Vinyals, “Representation Learning with Contrastive Predictive Coding,” arXiv:1807.03748 [cs, stat], Jan. 2019, Accessed: Nov. 06, 2020. [Online].
Available: http://arxiv.org/abs/1807.03748.
[8] E. Dunbar et al., “The Zero Resource Speech Challenge 2019: TTS without T,” arXiv:1904.11469 [cs, eess], Jul. 2019, Accessed: Sep. 27, 2020. [Online]. Available:
http://arxiv.org/abs/1904.11469.
[9] E. Dupoux, “Cognitive science in the era of artificial intelligence: A roadmap for reverse-engineering the infant language-learner,” Cognition, vol. 173, pp. 43–59, 2018, doi:
10.1016/j.cognition.2017.11.008.
[10] S. X. Yu and J. Shi, “Multiclass Spectral Clustering,” p. 7.
F. M. Bianchi, D. Grattarola, and C. Alippi, “Spectral Clustering with Graph Neural Networks for Graph Pooling,” arXiv:1907.00481 [cs, stat], Jul. 2020, Accessed: Dec. 07, 2020. [Online].
Available: http://arxiv.org/abs/1907.00481.
[11] D. Grattarola, “MinCUT Pooling in Graph Neural Networks,” Daniele Grattarola, Jul. 25, 2019. https://danielegrattarola.github.io/posts/2019-07-25/mincut-pooling.html (accessed Dec.
08, 2020).
[12] J. Du, S. Zhang, G. Wu, J. M. F. Moura, and S. Kar, “Topology Adaptive Graph Convolutional Networks,” arXiv:1710.10370 [cs, stat], Feb. 2018, Accessed: Dec. 08, 2020. [Online].
Available: http://arxiv.org/abs/1710.10370.

24http://www.naist.jp/

音響単位発見のための評価手法(1) 最小対 ABX Test
(2) ビットレート

31
http://www.naist.jp/

評価手法(1): Minimal pair ABX Test

• Minimal pair (最小対): 唯一つの音韻的要素（例：音素）によって意味が区別される言語単位(例：単語)の対• ‘bag’ vs ‘beg’/a/と/e/は英語では最小対• ‘chi’ vs ‘shi’/ch/ と/sh/ /は日本語では最小対• Minimal pair ABX test: 対象言語の最小対を利用することで音声の言語特徴を保持しているか評価する手法
32
http://www.naist.jp/

評価手法(1): Minimal pair ABX Test

例Speech segment A変換‘1 2 3 3 4 4 5 5’‘bag’Speech segment X‘1 2 2 3 3 4 5 5’Speech segment B‘bag’‘1 2 3 7 7 7 5 5’
(例：クラスターID)

‘beg’
33
http://www.naist.jp/

評価手法(1): Minimal pair ABX Test

例
Speech segment A

類似度dを測定(コサイン距離，編集距離など）‘1 2 3 3 4 4 5 5’‘bag’

Speech segment X‘1 2 2 3 3 4 5 5’

Speech segment B‘bag’‘1 2 3 7 7 7 5 5’‘beg’

もしd（Aenc， Xenc) < d(Benc， Xenc)
であれば言語特徴を保持する良い離散単位
34
http://www.naist.jp/

評価手法(1): Minimal pair ABX Test

例
Speech segment A

類似度dを測定(コサイン距離，編集距離など）‘1 2 3 3 4 4 5 5’‘bag’Speech segment X‘1 2 2 3 3 4 5 5’

Speech segment B‘bag’‘1 2 3 7 7 7 5 5’

様々な最小対に基づ‘beg’
いて誤り率を算出

もしd（Aenc， Xenc) < d(Benc， Xenc)
であれば「正解」
言語特徴を保持する，良い離散単位の系列

35
http://www.naist.jp/

評価手法(2):ビットレート#symbols / sec.
• ビットレート:$𝑃
𝐵 𝑈 = & 𝑝 𝒔! 𝑙𝑜𝑔% 𝑝 𝒔!
𝐷Entropy!"#s: 記号ベクトル（例えばone-hot）𝑈 = 𝒔𝟏, … , 𝒔𝑷 : 記号ベクトル系列（系列長𝑷 ）𝐷 : 合計時間（秒単位）
l より低いビットレート，でかつ低いABX誤り率を目指す
36
http://www.naist.jp/

Graph Symmetrization & Spectral Clustering• We want to cluster the nodes based on their features and edge weights.
– MinCut Pooling (Bianchi+, 2020), spectral clustering algorithm based on GCNs.

• But the spectral clustering assumes input graph to have a symmetric adj.
i.e., to be undirected.
• So we consider symmetrization of the codebook network by 2 ways:
Simple Symmetrization: 𝐴∗ = 𝐴 + 𝐴)
andBibliometric Symmetrization (Satuluri+, 2011): 𝐴∗ = 𝐴) 𝐴 + 𝐴 𝐴)
37
http://www.naist.jp/

Graph Symmetrization: From Directed to Undirected

1. Simple Symmetrization: 𝐴∗ = 𝐴 + 𝐴)Ø

The directionality of the original graph completely ignored.

Ø(But in our case, TAGCN might be encoding the directionality into the node feat.)

2. Bibliometric Symmetrization (Satuluri+, 2011): 𝐴∗ = 𝐴) 𝐴 + 𝐴 𝐴)
Ø + new edges between a pair of nodes that share the same sources or destinations

38
http://www.naist.jp/

GCN Clustering : Implementation

コード系列

グラフ構築

コードブッ
ク・グラフ

TAGCN

MinCut Poolingℒ#$

コードブック40
http://www.naist.jp/

先行研究: Vector Quantized Variational Auto-Encoder• VQVAEのプロセス
1. エンコーダーにより入力データが低次元の潜在空間上へ圧縮される.
2. 潜在空間上のデータ点は予め決められた数の代表点（コードブック）のうち最近傍のものにそれぞれ置き換えられる．（ベクトル量子化）
3. デコーダーは各代表点から入力データを再現する.

Latent space

Input Data

Encoder

Decoder

Reconstructed
Data

VQ

Codebook42
http://www.naist.jp/

先行研究: Vector Quantized Variational Auto-Encoder• TjandraらはVQVAEを音響単位発見のモデルとして応用 (2019, 2020).
• 音声データを固定長のフレーム単位でベクトル量子化• ベクトル量子化により，効果的に非言語情報を取り除けることが明らかになった．
• ZeroSpeech2019でBest Modelに選ばれた．

Vector Quantization Encoding43
http://www.naist.jp/

先行研究: Vector Quantized Contrastive Predictive Coding• Nierkerk らはベクトル量子化を CPC (Oord +, 2018)という自己教師あり学習のモデルに応用.

Vector QuantizationVQVAEと同じ.
EncoderFig. from Niekerk+, 202044
http://www.naist.jp/

先行研究: Vector Quantized Contrastive Predictive Coding• Nierkerk らはベクトル量子化を CPC (Oord +, 2018)という自己教師あり学習のモデルに応用.
Autoregressivemodel (RNN)

系列上の未来の部分をそれまでの状態から予測することで，より文脈を考慮した

Vector Quantization

ベクトル量子化を実現．
VQVAEのように入力データの再現する

Enccder

必要がないため，計算効率の面からもVQVAEを上回る．
ZeroSpeech2020でBest Modelに．

Fig. from Niekerk+, 202045
http://www.naist.jp/

MinCut Pooling48
http://www.naist.jp/

Why Graph Neural Network (GNN)?
Other NNs (e.g., RNN, CNN, SAN)

GNN

• They learn context at a sequence
for each code.
• Only simple correlation captured.

• It can learn context oversequences for each code.
• The complex correlation explicitlycaptured.

AB

QX

Q

Y

QX

Q

Y

QX

Q

Y

YX

Q

A

B49
http://www.naist.jp/

Problems with VQ encoding• The discovered representations (the codes) are in fixed-size, too finegrained, and uninterpretable.
• They do not represent phonetic/phonological structure of natural language(e.g., phones, phonemes, syllables, or morae). Only acoustic features.
• The same ground-truth phonetic units encoded more or less differently.

‘humor’Fig. from Niekerk+, 202052
http://www.naist.jp/

The Problem and Our Interest in a Nutshell‘humor’‘human’

VQ encoding

What we want

Both are similar, but still messy

Phonetic / Phonemic level?
Syllabic level?

53
http://www.naist.jp/

Our Proposed Framework: Process Overview
Code to NodeVector Quantization
Encoder• Discretization ofSpeech signals• Code sequences• The same process as
the previous model•••••

GraphConvolution• By graph convolution,strongly connected
codes share similar
node features.

A batch of code sequences to a graph
Code to node
Code transition to edge
Transition frequency to edge weight
Each code’s feature initialized.

Coarsened codesequence

SpectralClustering• Clustering based on node features andedge features.

• Reinterpretation of the code sequences54
http://www.naist.jp/

GCN clustering: グラフ構築(1)• 各バッチごとのそれぞれの辺の重さ（つまりコード間の遷移）が大きく異なる.
• そこで辺の重さへ平滑化 を行う．
• 学習時，ステップ𝑡のときに得られた各辺の重みを表す隣接行列を 𝑨𝒕 として,' 𝒕 をオンラインで求める隣接行列の指数平滑移動平均 𝑨

𝐴̅! = 𝐴̅!"# + 𝛼 𝐴! − 𝐴̅!"#

現在の隣接行列の前ステップの指数平滑移動平均からの変化量

変動への感度を決めるハイパーパラメーター (0 ≦ 𝛼 ≦ 1)

Ø フィルタリングの役割：偶々ベクトル量子化の際の誤認識で現れた辺がステップごとに消える.
Ø これにより，ベクトル量子化の学習初期の状態の影響を受けづらくなり，同時学習可能に

56
http://www.naist.jp/

GCN clustering: グラフクラスタリング (1)• ノード特徴量と辺の重みに基づいてグラフクラスタリングを行う.
– MinCut Pooling (Bianchi+, 2020)：GCNをベースとしたスペクトラル・クラスタリング• 直感的には取り除く辺の重みの和が最小となるような形でグラフをK分割する.
• 今回の場合では時間的に隣り合っているコード同士がクラスターを形成.

Fig. from https://qiita.com/m1t0/items/1e9c1ca9d610a9694e20

57
http://www.naist.jp/