TensorFlow란?

TensorFlow가 뭔지, 추천 시스템 쪽에서는 뭘 쓸 수 있는지 짧게 적어둔 메모. PyTorch와의 차이도 한 줄씩.
Corrected September 2026: Removed a long pasted section that was left in by mistake and fixed a few facts: TensorFlow 2 runs eagerly by default (graphs are optional via
tf.function), Keras was already part of TensorFlow before 2.0, and TFX is a production pipeline tool rather than a recommender library.
- Google에서 개발 한 딥러닝과 머신러닝을 위한 오픈 소스 라이브러리
- 원래는 노드 & 엣지로 구성된 그래프를 먼저 만들고 실행하는 방식이었다. TensorFlow 2.0부터는 코드가 바로바로 실행되는(eager) 방식이 기본이고, 속도가 필요할 때만
tf.function으로 그래프를 만든다. - Python API를 통해 다양한 수학 함수, 활성화 함수를 제공한다. 이를 이용해 사용자는 쉽게 딥러닝 모델을 구축하고 학습할 수 있다.
- 고 수준의 인터페이스인 Keras는 TensorFlow 2.0부터 기본 API가 되면서 더 쉽고 가볍게 딥러닝 설계가 가능해졌다. (Keras 자체는 그 전부터
tf.keras로 들어 있었다.) 추천 시스템 쪽으로는 TensorFlow Recommenders(TFRS)라는 라이브러리가 있다. 모델을 서비스까지 올리는 파이프라인은 TensorFlow Extended(TFX)가 담당한다.
기본은 사용자-아이템 행렬 분해(Matrix Factorization)를 기반으로 한 협업 필터링(Collaborative Filtering)
문제점으로는 데이터 희소성, Cold Start와 같은 점이 있는데, Content-based features나 Hybrid model을 사용해 cold start에 대한 문제점을 보완 할 수 있고, 아이템이나 사용자의 메타정보와 외부데이터의 연결점을 사용해 데이터 희소성을 보완할 수 있다.
- 제공되는 Library 외 개별 딥러닝 설계도 역시나 가능하다. 사용가능한 오픈 소스 라이브러리로 TensorFlow와 PyTorch를 이야기 할 수 있다.
PyTorch : Facebook(현 Meta)에서 개발한 Python 기반 동적 계산 그래프를 사용하는 프레임워크. 직관적이고 간결한 코드를 사용, 모델 구축에 자유도가 높고 특히 디버깅에 있어 사용친화적인 환경을 제공.
용어 두 개만 메모
- 데이터 희소성 : 사용자 수 × 아이템 수 만큼 칸이 있는데, 실제로 클릭이나 구매가 찍힌 칸은 극히 일부다. 대부분 비어 있으니 “비슷한 사용자”를 찾기가 어렵다.
- Cold start : 새로 가입한 사용자나 새로 올라온 아이템은 기록이 없어서 추천할 근거가 없다. 그래서 가입할 때 관심사를 고르게 하거나, 아이템 설명(카테고리, 태그 같은 것)으로 먼저 추천한다.