연결망 임베딩

다양한 분야에서 만들어지는 대규모 데이터와 기술의 발전은 인공 신경망(artificial neural networks), 특히 심층학습(deep learning)의 폭발적인 발전을 이끌었다. 신경망을 이용한 방법론들은 특히 특성 혹은 피처(feature)가 잘 정의되지 않은 데이터(예를 들어 이미지, 텍스트, 연경망등의 데이터)를 다룰 수 있는 효과적인 방법을 제시했으며, 완전히 다른 형식의 데이터를 통일된 방법론으로 접근할 수 있게 해 주고 있다. 특히, 심층학습은 인간이 직접 데이터의 특성을 추출하는 대신 유용한 특성을 스스로 발견하게 함으로써 많은 분야에서 인간의 한계를 넘어서는 성능을 보여주고 있다. 심층학습의 발전에 기여한 주요 생각중 하나는 유용한 데이터의 표현(representation)을 얻는 것이 기계학습(machine learning)에서 매우 중요하며, 이런 유용한 표현은 데이터가 충분하고 학습 과제가 잘 정의될 경우 신경망이 스스로 얻을 수 있다는 것이다 1.

이런 배경에서 연결망 임베딩(Graph Embedding; 혹은 연결망 신경망, Graph Neural Networks)은 연결망 데이터를 벡터 공간에 표현하는 학습 방법들을 총칭하며 연결망 데이터를 기계학습에 쓰기 위해 발전했다 2.연결망 데이터는 많은 분야에서 발견된다. 예를 들어 페이스북, 구글, 아마존등의 많은 기술기반 기업들이 가지고 있는 핵심 데이터는 연결망 데이터이다. 페이스북은 사람들 사이의 연결 관계, 구글은 웹사이트들 사이의 연결 관계, 아마존은 사람들과 제품들 사이의 연결 관계를 바탕으로 만들어진 기업이며, 따라서 이러한 연결망 데이터는 이런 기업들의 운영에 매우 중요한 역할을 차지한다. 그 밖에도 송전망, 교통망, 공급망, 수송망등 사회의 기반을 이루는 다양한 시스템들도 연결망 구조를 가지고 있고, 생물들의 세포나 뇌 안에도 다양한 연결망 구조가 존재한다. 어떤 시스템이건, 많은 수의 요소가 상호작용 하는 시스템은 연결망으로 나타내는 것이 가능하므로 수없이 많은 시스템에 연결망모델이 적용 가능하다. 기존의 방법론처럼 연결망에서 특성치를 먼저 정의하는 대신, 연결망 임베딩은 연결망으로부터 벡터 표현을 먼저 얻고 이 표현을 이용하거나 혹은 기계학습 문제를 바탕으로 그 문제를 가장 잘 풀 수 있는 벡터 표현을 얻는 접근법이다. 가장 흔한 방법론은 연결망이 주어졌을 때 그 연결망을 구성하는 노드(node) 혹은 꼭짓점(vertex)들을 벡터로 변환하는 것을 목표로 하지만 연결망을 구성하는 링크(link) 혹은 변(edge)의 벡터 표현을 찾거나 연결망 전체를 하나의 벡터로 표현하는 방법론도 있다. 일단 모든 노드의 벡터 표현을 얻고 나면 기계학습 모델에 연결망 데이터를 이용하기가 매우 쉬워진다.

연결망 데이터의 특징

텍스트 데이터는 기호(단어)들이 특정한 순서를 가지고 늘어서 있는 데이터로 생각할 수 있고, 이미지 데이터는 크기와 각 항목의 위치가 정해진 행렬(Matrix)이나 텐서(Tensor)로 생각할 수 있다. 반면에 연결망은 이렇게 정해진 구조를 가지고 있지 않기에, 연결망 임베딩은 텍스트나 이미지를 다루는 심층학습 방법론들보다 늦게 발전했다. 심층학습모델, 특히 초기 모델들은 이러한 텍스트나 이미지가 가진 구조를 최대한 이용한다. 데이터가 가진 구조를 모델의 구조에 잘 반영할 수록 매개변수(parameter)의 수가 줄어 더 적은 양의 데이터로도 학습이 잘 이루어지도록 할 수 있다. 예를 들어 이미지 데이터는 특정한 공간을 나타내기 때문에, 이미지를 옆으로 조금 옮겨도 이미지에 나타난 내용은 거의 바뀌지 않는다고 가정할 수 있고, 따라서 각 픽셀마다 그 주변 픽셀이 가지는 의미가 항상 일정하다고 생각할 수 있다. 이 가정을 기반으로 만들어진 것이 합성곱(convolution) 연산자를 쓰는 합성곱 신경망(Convolutional neural network)이다3. 이 합성곱 구조는 최근까지 이미지를 다루는 데 거의 필수적인 요소로 쓰였다.

하지만, 연결망 데이터에는 특정한 순서나 위치가 존재하지 않는다. 먼저, 텍스트처럼 뻔한 순서가 없기 때문에 언어 모델(language model)을 바로 적용할 수가 없다. 이미지처럼 연결망 데이터도 2차원 행렬로 나타낼 수 있긴 하지만(행렬의 각 순서쌍이 그 행과 열에 해당하는 노드들 사이의 연결을 나타내도록), 노드의 순서가 정해져 있지 않기 때문에 두 열, 혹은 두 행을 서로 교환해도 연결망의 구조는 변하지 않는며, 따라서 단순한 합성곱 연산자를 쓸 수가 없다(합성곱 연산을 쓰게 되면 이렇게 열과 행들이 교환된 데이터에서 전혀 다른 결과를 만들어내게 된다). 하지만 이런 문제들은 곧 풀리고 텍스트나 이미지에 사용된 생각과 방법론이 점차 연결망에 응용되면서 연결망 임베딩 방법들이 우후죽순처럼 만들어지기 시작했다.

두 줄기의 접근법

연결망 임베딩의 큰 두 줄기는 텍스트 데이터와 이미지 데이터에서 큰 성공을 거둔 방법들을 각각 연결망에 적용한 것이다. 대부분의 방법들의 핵심 아이디어는 각 노드의 표현은 그 노드의 주변에 위치한 노드들이 가지는 표현과 밀접한 관계가 있어야 한다는 것이다.

텍스트 데이터를 연결망 방법론을 이용하기 시작한 데 큰 영향을 끼친 생각은 신경언어모델(neural language model)4과 단어임베딩 모델이다5. 언어모델은 이미 본 단어들, 혹은 주위에 있는 단어들을 바탕으로 다음에 올 단어를 확률적으로 계산할 수 있는 모델을 칭하는데, 신경언어모델은 이 확률을 각 단어들의 벡터 표현으로부터 계산하고, 이 벡터 표현을 신경망을 이용하여 얻는 모델을 총칭한다. 신경언어모델은 유명한 word2vec모델을 시작으로 실제 응용될 만한 수준의 속도와 성능을 가지게 되었고 이후 수많은 모델을 만들어냈다. 이런 신경언어모델을 연결망 데이터에 응용하기 위해서는 “단어”를 정의하고 이 단어들의 “순서” 혹은 “문맥”을 정의해야 한다. 연결망에 존재하는 노드들에는 고유의 순서가 존재하지 않지만, 연구자들은 곧 마구걷기(random walk)를 사용하면 노드들의 자연스러운 서열을 만들어 낼 수 있다는 것에 착안하여 word2vec과 같은 신경언어모델을 바로 연결망에 적용할 수 있는 방법을 찾아냈다. 마구걷기 서열에서는 연결된 노드들만 바로 옆에 나타날 수 있고, 연결망에서 가까운 노드들 일 수록 이 서열에서도 가깝게 나타날 확률이 높으므로, “문맥”을 자연스럽게 정의할 수 있다. 처음으로 제안된 방법 DeepWalk6와 마구걷기를 다양하게 바꾸어 다른 구조를 찾아낼 수 있는 node2vec7과 같은 방법들이 등장했다. 뒤이어 이런 방법들이 결국 노드들 사이의 유사성을 계산한 행렬을 만들고 이 행렬을 행렬 분해(matrix factorization) 한 것과 동등하다는 것이 밝혀지기도 했다8.

한편, 이미지 데이터에서 큰 성공을 거둔 합성곱 신경망을 연결망에 옮겨오려는 시도도 시작되었다. 합성곱 신경망은 각 픽셀을 주변 픽셀들의 값에 따라 변환을 시키는 합성곱 연산자를 학습시킨다. 비슷한 생각으로 연결망에서도 각 노드들의 표현 벡터를 주변에 연결되어 있는 노드들이 가지고 있는 표현 벡터를 가지고 변환하는 합성곱 연산자를 정의하게 되면 이미지와 비슷한 방식으로 신경망을 만들 수 있게 된다. 다만 연결망 데이터의 경우에는 주변 이웃의 수도 정해져 있지 않고 위치나 순서도 없기 때문에 순서와 수에 구애받지 않는 특별한 합성곱 연산자만을 사용하게 된다. 이러한 방법을 GCN(graph convolutional network)이라고 부른다9. 이 방법을 좀 더 확장하면 “이웃”을 더 자유롭게 정할 수 있고, 이웃으로 부터 받은 정보를 합성하는 방법도 바꾸어 볼 수 있다. 이러한 좀 더 일반적인 방법으로 GraphSage10와 GAT(graph attention network)11등이 있다. GraphSage는 특정 노드의 “이웃” 혹은 “문맥”을 마구걷기를 이용하여 추출함으로써 매우 큰 연결망데이터에 응용할 수 있고, Pinterest를 비롯한 많은 회사에서 사용되었다. GAT는 현재 가장 성공적인 신경언어모델인 트랜스포머(transformer)모델12이 사용하는 주의모델(attention model)을 연결망에 적용한 모델로, 연결망의 이웃들 중 어디에 초점을 맞춰야 하는지(주의, attention)를 스스로 학습하는 모델이다. 이 모델들은 보통 연결망의 구조만 사용하는 것이 아니라 각 노드들이 가진 특성을 함께 고려하게 된다.

연결망 임베딩의 응용 분야

연결망 임베딩 방법론들은 흔히 링크 예측(link prediction)과 노드 분류(node classification)를 통해 성능을 검증하는데, 이런 문제들이 또한 가장 흔한 응용 문제이기도 하다. 예를 들어 페이스북과 같은 소셜 미디어 서비스들에서는 새로운 사용자가 관심을 가질 만한 다른 사용자나 페이지, 혹은 정보를 정확하게 예측해야 한다. 또다른 예로, 넷플릭스나 아마존은 사용자의 과거 행동/구입 패턴을 바탕으로 어떤 영화, 물건, 책등에 관심이 있을지를 예측해야 한다. 이 문제는 보통 링크 예측이나 노드 분류 문제로 표현된다. 예를 들어 두 사용자와 그 주변의 연결망 구조를 가지고 이 두 사용자가 서로 알고 있거나 서로 관심이 있을 확률를 정확하게 계산할 수 있으면, 사용자에게 유용한 정보를 추천해 줄 수 있다. 실제로, 무수한 인터넷 기업들이 연결망 임베딩을 이용하고 있다는 것이 잘 알려져 있다13.

산업체와 과학계에서의 응용

물론 각 기업들이 어떻게 연결망 임베딩과 연결망신경망을 내부에서 어떻게 이용하는지를 자세하게 알아내기는 힘들지만, 유수 기업들이 출판하는 다양한 방법론을 보면 이런 기업들이 연결망 데이터를 이해하고 사용하기 위해 많은 노력을 기울인다는 것을 알 수 있다. 가장 먼저 개발된 연결망 임베딩 방법 중 하나인 DeepWalk를 개발한 연구자들은 곧 구글과 웨이모(Waymo)등으로 가서 일하고 있는데 구글은 계속 주요 연결망 임베딩 방법론을 개발하고 출판하고 있다. 마찬가지로 페이스북도 매우 큰 연결망을 임베딩할 수 있는 방법(PyTorch-BigGraph)14과 기타 다양한 임베딩 방법론을 개발하고 공개하고 있다. 스탠포드대 교수이자 핀터레스트에서 수석과학자(Chief Scientist) 역할을 하는 Jure Leskovec교수 그룹에서 만들어진 GraphSage는 핀터레스트(Pinterest)에서 대규모 추천 알고리즘을 만드는 데 쓰인 뒤15 우버이츠(Uber Eats)등 다른 기업에서도 활발하게 쓰이고 있다.

가장 흔한 응용 분야은 이와 같은 추천시스템이다. 사용자와 물건, 식당, 메뉴, 이미지등 다양한 아이템 사이를 연결하는 연결망을 만들거나 아이템들을 서로 연결하는 연결망을 만든 뒤, 연결망 임베딩 방법을 써서 효과적인 표현을 얻고, 이 표현을 각 아이템의 특성으로 취급하여 추천 모델을 만드는 것이다. 예를 들어 아마존은 “제품연결망(Product Graph)”16, 알리바바의 “알리그래프(Aligraph)”17라는 대규모 연결망 데이터를 만들고 유지 하며, 추천 시스템에 연결망 임베딩을 이용한다는 것이 알려져 있다. 앞서 언급한 핀터레스트와 우버이츠도 비슷한 예다. 이런 데이터들은 보통 다양한 종류의 노드와 링크로 구성되어 있는 이질적 연결망(heterogenous network)인 데다가 각각의 노드와 링크가 특성 데이터를 또 가질 수 있기 때문에 일반화 된 연결망 임베딩 방법의 개발이 활발하다.

또 한편, 추천 모델에서만 연결망 임베딩이 쓰이는 것은 아니다. 딥마인드(DeepMind)와 구글은 연결망 신경망 모델을 구글 지도 데이터에 적용하여 도착예정시간 예측과 경로 추천 성능을 크게 끌어올렸다18. 이 모델에서는 도로연결망을 슈퍼세그먼트(supersegment)라는 단위로 나눈 뒤 이 슈퍼세그먼트의 연결구조를 연결망으로 나타내어 연결망 신경망 모델을 적용했다. 구글브레인(Google Brain)의 연구자들은 연결망 임베딩을 강화학습(Reinforcement learning)과 결합하여 컴퓨터 칩 디자인에 응용했다. 이 자동화된 디자인은 전문가의 디자인과 비슷하거나 더 훌륭한 성능을 보여주었다19. 페이스북은 연결망 임베딩을 컴퓨터 비전 방법론과 결합하여 사진에 나타난 물체나 배경을 설명하는 장면연결망(Scene graph)으로 뽑아내거나 주어진 장면연결망을 가지고 사진을 합성할 수 있는 모델을 개발했다20.

연결망 임베딩은 생물학, 화학, 의학에서도 활발하게 응용분야를 찾아내고 있다. 먼저, 우리 몸을 이루는 분자들 자체도 원자들이 이루는 연결망 구조로 생각할 수 있으며 따라서 연결망 임베딩을 이용하면 전체 분자나 각 원자를 벡터 공간에 표현할 수 있고, 이를 이용하면 기계학습 모델에 분자의 구조를 간단하게 고려할 수 있게 된다. 따라서 연결망 임베딩은 신약개발이나 재료과학에도 도입되고 있다. 우리 몸 속에서는 이런 분자들이 복잡한 상호작용을 한다. 예를 들어 유전자들끼리의 상호작용, 단백질들 끼리의 결합관계, 각종 분자들이 어떻게 합성되고 분해되는지, 혹은 세포라 어떻게 다양한 신호를 처리하는지 등, 수많은 연결망 구조가 존재한다. 이런 모든 연결망들이 연결망 임베딩으로 접근 가능하기 때문에 생물학과 의학에서 연결망 임베딩의 응용이 폭발적으로 증가하고 있다.

결론

신경망 모델을 이용한 기계학습은 수많은 분야에 혁명적인 변화를 가져오고 있다. 연결망 구조는 우리의 삶을 둘러싼 수많은 복잡계에서 발견되며 연결망 임베딩 혹은 연결망 신경망은 기계학습이 쓰일 수 있는 무수한 문제에 연결망 구조를 이용할 수 있는 방법을 제공한다. 이러한 이유로 연결망 임베딩 방법론과 성공적인 응용 사례는 수많은 분야에서 폭발적으로 증가하고 있다. 하지만 신경망을 이용하는 다른 방법들처럼 여러 한계도 존재한다. 데이터의 양이 적은 경우에는 사용이 어렵고, 많은 계산량을 요하며, 자세한 작동원리를 이해하기가 힘들기 때문에 모든 문제에 쓰일 수 있는 것은 아니다. 특히, 차별가능성이 있는 문제나 의학에 응용될 때는 매우 조심스러운 접근이 필요하다.

참고문헌


  1. LeCun, Yann, Yoshua Bengio, and Geoffrey Hinton. “Deep learning.” Nature 521.7553 (2015): 436-444. 

  2. Hamilton, William L. “Graph representation learning.” Synthesis Lectures on Artifical Intelligence and Machine Learning 14.3 (2020): 1-159. 

  3. LeCun, Yann, and Yoshua Bengio. “Convolutional networks for images, speech, and time series.” The handbook of brain theory and neural networks 3361.10 (1995): 1995. 

  4. Bengio, Yoshua, et al. “A neural probabilistic language model.” The journal of machine learning research 3 (2003): 1137-1155. 

  5. Mikolov, Tomas, et al. “Distributed representations of words and phrases and their compositionality.” Advances in neural information processing systems. 2013. 

  6. Perozzi, Bryan, Rami Al-Rfou, and Steven Skiena. “Deepwalk: Online learning of social representations.” Proceedings of the 20th ACM SIGKDD international conference on Knowledge discovery and data mining. 2014. 

  7. Grover, Aditya, and Jure Leskovec. “node2vec: Scalable feature learning for networks.” Proceedings of the 22nd ACM SIGKDD international conference on Knowledge discovery and data mining. 2016. 

  8. Qiu, Jiezhong, et al. “Network embedding as matrix factorization: Unifying deepwalk, line, pte, and node2vec.” Proceedings of the eleventh ACM international conference on web search and data mining. 2018. 

  9. Kipf, Thomas N., and Max Welling. “Semi-supervised classification with graph convolutional networks.” arXiv preprint arXiv:1609.02907 (2016). 

  10. Hamilton, William L., Rex Ying, and Jure Leskovec. “Inductive representation learning on large graphs.” Proceedings of the 31st International Conference on Neural Information Processing Systems. 2017. 

  11. Veličković, Petar, et al. “Graph attention networks.” arXiv preprint arXiv:1710.10903 (2017). 

  12. Vaswani, Ashish, et al. “Attention is all you need.” Advances in neural information processing systems. 2017. 

  13. Ivanov, Sergei, “Top applications of graph neural networks 2021”, Medium, https://medium.com/criteo-engineering/top-applications-of-graph-neural-networks-2021-c06ec82bfc18 

  14. Lerer, Adam, et al. “Pytorch-biggraph: A large-scale graph embedding system.” arXiv preprint arXiv:1903.12287 (2019). 

  15. Ying, Rex, et al. “Graph convolutional neural networks for web-scale recommender systems.” Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining. 2018. 

  16. https://www.aboutamazon.com/news/innovation-at-amazon/making-search-easier 

  17. Zhu, Rong, et al. “Aligraph: a comprehensive graph neural network platform.” arXiv preprint arXiv:1902.08730 (2019). 

  18. https://deepmind.com/blog/article/traffic-prediction-with-advanced-graph-neural-networks 

  19. Mirhoseini, Azalia, et al. “Chip placement with deep reinforcement learning.” arXiv preprint arXiv:2004.10746 (2020). 

  20. Yang, Jianwei, et al. “Graph r-cnn for scene graph generation.” Proceedings of the European conference on computer vision (ECCV). 2018.