[추천시스템]CSR Matrix란

건너별·2021년 11월 7일
0

NLP 및 추천시스템

목록 보기
4/13

Matrix Factorization 과정에서 m과 n이 너무 크면, 대부분의 원소가 0인 Sparse Matrix가 될 확률이 높고 이것은 메모리를 너무 차지하는 비효율적인 구조가 됩니다.

이를 위해 필요한 것이 바로 CSR(Compressed Sparse Row) Matrix입니다.

CSR MATRIX

Sparse한 matrix에서 0이 아닌 유효한 데이터로 채워지는 데이터의 값과 좌표 정보만으로 구성하여 메모리 사용량을 최소화하면서도 Sparse한 matrix와 동일한 행렬을 표현할 수 있도록 하는 데이터 구조

예시


[출처 : https://youtu.be/Qi7FcjN7nsc]

위의 3*3 행렬은 Sparse Matrix입니다. 아래와 같이 Value,Index,RowPTR로 변환할 것입니다.

Value : 0이 아닌 원소를 (Row,Column)의 index별로 차례로 기입합니다.
Index : 각 value가 어느 열(Column)에 해당하는 지에 관한 정보입니다. (왼쪽부터 0,1,2)
ROWPTR : 각 행(Row)에서 첫번째 원소가 Value 의 리스트에서 몇번째 index에 해당하는지에 관한 정보입니다.(경우에 따라 6이 추가되기도 함)

위와 같이 메모리를 절약합니다.

이해가 안되면 동영상을 참고하세요!

profile
romantic ai developer

0개의 댓글