KR102593134B1 - 사용자 디바이스를 위한 임베딩 테이블 크기를 조절하는 방법 및 이를 위한 장치 - Google Patents

사용자 디바이스를 위한 임베딩 테이블 크기를 조절하는 방법 및 이를 위한 장치 Download PDF

Info

Publication number
KR102593134B1
KR102593134B1 KR1020220177168A KR20220177168A KR102593134B1 KR 102593134 B1 KR102593134 B1 KR 102593134B1 KR 1020220177168 A KR1020220177168 A KR 1020220177168A KR 20220177168 A KR20220177168 A KR 20220177168A KR 102593134 B1 KR102593134 B1 KR 102593134B1
Authority
KR
South Korea
Prior art keywords
embedding table
user device
items
embedding
recommendation model
Prior art date
Application number
KR1020220177168A
Other languages
English (en)
Inventor
김영근
이은진
Original Assignee
고려대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 고려대학교산학협력단 filed Critical 고려대학교산학협력단
Priority to KR1020220177168A priority Critical patent/KR102593134B1/ko
Application granted granted Critical
Publication of KR102593134B1 publication Critical patent/KR102593134B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Tourism & Hospitality (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • General Business, Economics & Management (AREA)
  • Economics (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Medical Informatics (AREA)
  • Marketing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Primary Health Care (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명의 일 실시 예에 따른 프로세서 및 메모리를 포함하는 장치가 사용자 디바이스를 위한 임베딩 테이블 - 상기 임베딩 테이블은 포함하고 있는 모든 아이템 각각에 대한 가중치값이 부여되어 있으며, 상기 장치는 하나 이상의 특정 서비스에 대한 모든 아이템을 포함하는 임베딩 테이블을 포함하고 있음 - 크기를 조절하는 방법은 (a) 상기 사용자 디바이스의 메모리 용량 정보에 따른 초기 설정값 개수인 k(k는 양의 정수)개 만큼의 아이템을 포함하는 제1 임베딩 테이블을 상기 사용자 디바이스에 발송하고, 소정의 처리를 진행하여 상기 사용자 디바이스가 포함하는 추천 모델의 구동에 최적화된 제N(N은 양의 정수) 임베딩 테이블이 포함하는 아이템의 개수인 K(K는 양의 정수)를 결정하는 제1 단계 및 (b) 상기 결정한 K에 따라 상기 사용자 디바이스에 발송한 K개의 아이템을 포함하는 제N 임베딩 테이블에 대하여 상기 추천 모델의 학습에 의해 갱신된 상기 K개의 아이템에 대한 가중치값을 포함하는 제N′ 임베딩 테이블을 수신하고, 소정의 처리를 진행하여 재선정한 K개의 아이템을 포함하는 제N+1 임베딩 테이블을 상기 사용자 디바이스에 발송하는 제2 단계를 포함하며, 상기 제1 임베딩 테이블과 제N+1 임베딩 테이블의 크기는 상이하다.

Description

사용자 디바이스를 위한 임베딩 테이블 크기를 조절하는 방법 및 이를 위한 장치{METHOD FOR RESIZING EMBEDDING TABLE FOR USER DEVICES AND APPARATUS FOR SAME}
본 발명은 사용자 디바이스를 위한 임베딩 테이블 크기를 조절하는 방법 및 이를 위한 장치에 관한 것이다. 보다 자세하게는 사용자 디바이스가 포함하는 추천 모델의 학습에 부담을 줄일 수 있음과 동시에 추천 모델의 예측 정확도 감소를 최소화할 수 있는 방법 및 이를 위한 장치에 관한 것이다.
인터넷을 통한 전자 상거래가 활발해지면서 아이템(품목, 콘텐츠)에 구분 없이 대부분의 온라인 플랫폼들은 사용자의 선호도를 반영한 아이템 추천 기능을 제공하고 있으며, 이를 통해 사용자 입장에서는 자신의 선호도에 맞는 아이템이 자동으로 추천되므로 구매할 아이템을 일일이 검색할 필요가 없어지는바, 구매에 편의성을 제공받을 수 있으며, 플랫폼 입장에서는 사용자가 아이템을 구매할 확률이 높아져 매출 향상에 이바지할 수 있는바, 일석이조(一石二鳥)의 효과가 있는 필수 기능이라고 여겨지고 있다.
이러한 추천 기능은 해당 플랫폼의 서버, 보다 구체적으로 서버가 포함하는 프로세서에 구현된 추천 모델에 의해 구동되는데 추천 모델은 다른 인공지능 모델들에 비하여 과도한 메모리 용량을 차지하며, 각각의 추천 모델마다 요구되는 메모리 요구량이 다르다는 특징을 갖는바, 시간 및 비용상의 문제가 있었기에 서버에 집중되었던 추천 모델의 구동을 사용자 디바이스로 분산시킴으로써 서버의 부담을 완화하고자 하는 기술적 시도가 진행되고 있다.
그러나 플랫폼의 서버에 비하여 스마트폰, PDP, PMP 등과 같은 사용자 디바이스는 메모리 용량이 매우 작고, 디바이스 별로 서로 상이한 용량의 메모리를 갖는다는 이질성(Heterogeneity)을 보유하고 있는바, 이들 특징들이 고려되지 않은채 사용자 디바이스 상에서 무분별하게 추천 모델이 구동되는 경우, 추천 모델의 학습이 진행되지 않거나, 구동에 지나치게 긴 시간이 소요되는 등 다양한 문제가 발생할 수 있다.
한편, 추천 모델이 사용자의 선호도를 반영한 아이템을 추천함은 특정 아이템에 대하여 가중치값(선호도값, 1에 가까울수록 선호도가 높다고 볼 수 있음)이 부여되어 있는 임베딩 테이블(Embedding Table)을 이용하여 수행되는바, 사용자 디바이스의 추천 모델이 이용하는 임베딩 테이블이 경량화된다면, 상기와 같은 문제는 해결할 수 있을 것이며, 종래에는 임베딩 테이블 경량화 기법으로서 행렬분해(Matrix Decomposition)나 해싱(Hashing)을 사용한 경량화 기법이 개발되었으나, 이들 기법에 의하면 임베딩 테이블의 경량화는 가능했으나 모든 사용자 디바이스에 대하여 동일한 크기의 임베딩 테이블을 제공할 수밖에 없으므로 사용자 디바이스의 이질성이라는 특징이 충분히 고려되지 못하게 이상 언급한 다양한 문제들을 전부 해결하기에는 역부족이다.
따라서, 사용자 디바이스의 메모리 용량별로 서로 상이한 크기의 임베딩 테이블을 제공하는 새롭고 진보된 경량화 기법의 개발이 요구되는바, 본 발명은 이에 관한 것이다.
대한민국 공개특허공보 제 10-2021-0018384호(2021.02.17)
본 발명이 해결하고자 하는 기술적 과제는 종래 서버에 국한되어 제공되었던 추천 기능을 사용자 디바이스에게 부담이 되지 않는 선에서 사용자에게 제공하게 함으로써 서버 사용에 따른 시간 및 비용상의 문제를 해결할 수 있는 임베딩 테이블 크기를 조절하는 방법 및 이를 위한 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 또 다른 기술적 과제는 사용자 디바이스의 메모리 용량을 충분히 고려하여 사용자 디바이스별로 최적화된 크기의 임베딩 테이블을 제공함으로써 보다 향상된 추천 기능을 제공할 수 있는 임베딩 테이블 크기를 조절하는 방법 및 이를 위한 장치를 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 달성하기 위한 본 발명의 일 실시 예에 따른 프로세서 및 메모리를 포함하는 장치가 사용자 디바이스를 위한 임베딩 테이블 - 상기 임베딩 테이블은 포함하고 있는 모든 아이템 각각에 대한 가중치값이 부여되어 있으며, 상기 장치는 하나 이상의 특정 서비스에 대한 모든 아이템을 포함하는 임베딩 테이블을 포함하고 있음 - 크기를 조절하는 방법은 (a) 상기 사용자 디바이스의 메모리 용량 정보에 따른 초기 설정값 개수인 k(k는 양의 정수)개 만큼의 아이템을 포함하는 제1 임베딩 테이블을 상기 사용자 디바이스에 발송하고, 소정의 처리를 진행하여 상기 사용자 디바이스가 포함하는 추천 모델의 구동에 최적화된 제N(N은 양의 정수) 임베딩 테이블이 포함하는 아이템의 개수인 K(K는 양의 정수)를 결정하는 제1 단계 및 (b) 상기 결정한 K에 따라 상기 사용자 디바이스에 발송한 K개의 아이템을 포함하는 제N 임베딩 테이블에 대하여 상기 추천 모델의 학습에 의해 갱신된 상기 K개의 아이템에 대한 가중치값을 포함하는 제N′ 임베딩 테이블을 수신하고, 소정의 처리를 진행하여 재선정한 K개의 아이템을 포함하는 제N+1 임베딩 테이블을 상기 사용자 디바이스에 발송하는 제2 단계를 포함하며, 상기 제1 임베딩 테이블과 제N+1 임베딩 테이블의 크기는 상이하다.
일 실시 예에 따르면, 상기 제1 단계는, 상기 사용자 디바이스로부터 메모리 용량 정보를 수신하는 제1-1 단계, 상기 수신한 메모리 용량 정보에 따른 초기 설정값 개수 k개 만큼의 아이템을 포함하는 제1 임베딩 테이블을 상기 사용자 디바이스에 발송하는 1-2 단계, 상기 추천 모델이 상기 수신한 제1 임베딩 테이블이 허용 기준을 만족하는지 판단한 결과가 NO인 경우, 상기 제1 임베딩 테이블의 크기가 소정 크기 만큼 줄어들 수 있도록 상기 k를 재설정하는 제1-3 단계 및 상기 재설정한 k를 아이템의 개수로 포함하는 제2 임베딩 테이블을 상기 사용자 디바이스에 재발송하는 제1-4 단계를 포함할 수 있다.
일 실시 예에 따르면, 상기 추천 모델이 상기 수신한 제2 임베딩 테이블이 허용 기준을 만족하는지 판단한 결과가 YES인 경우, 상기 제2 임베딩 테이블에 대하여 재설정한 k를 상기 사용자 디바이스에 대한 K로 결정하는 제1-5 단계를 더 포함할 수 있다.
일 실시 예에 따르면, 상기 제1-3 단계에서의 허용 기준은, 상기 추천 모델이 상기 사용자 디바이스의 메모리 용량에 기초하여 상기 제1 임베딩 테이블을 정상적으로 구동할 수 있는지 여부에 대한 제1 허용 기준 및 상기 추천 모델이 특정 서비스에 대하여 상기 제1 임베딩 테이블을 구동하는 경우 소요되는 시간이 상기 특정 서비스가 추구하는 시간 기준을 만족하는지 여부에 대한 제2 허용 기준 중 어느 하나 이상을 포함할 수 있다.
일 실시 예에 따르면, 상기 제1-3 단계에서의 소정 크기는, 1MB, 10MB 및 100MB 중 어느 하나며, 상기 장치의 관리자의 설정에 의해 선택 가능할 수 있다.
일 실시 예에 따르면, 상기 제2 단계는,
상기 추천 모델이 상기 K개의 아이템을 포함하는 제N 임베딩 테이블에 대하여 학습을 진행하고, 특정 서비스에 대하여 구동 테스트를 수행한 결과, 상기 추천 모델의 정확도가 정확도 기준을 만족하는지 판단하여 판단 결과가 NO인 경우, 상기 추천 모델의 학습에 의해 갱신된 상기 K개의 아이템에 대한 가중치값을 포함하는 제N′ 임베딩 테이블을 상기 사용자 디바이스로부터 수신하는 제2-1 단계, 상기 수신한 제N′임베딩 테이블이 포함하는 K개의 아이템 및 이에 대한 가중치값을 상기 장치가 포함하고 있는 특정 서비스에 대한 모든 아이템을 포함하는 임베딩 테이블 상에서의 동일한 K개의 아이템 및 이에 대한 가중치값과 교환하여 혼합 임베딩 테이블을 생성하는 제2-2 단계, 상기 생성한 혼합 임베딩 테이블이 포함하는 모든 아이템 각각에 대한 중요도 점수를 산출하는 제2-3 단계, 상기 산출한 중요도 점수가 높은 순서대로 상기 혼합 임베딩 테이블이 포함하는 모든 아이템을 정렬하는 제2-4 단계 및 상기 중요도 점수가 높은 순서대로 정렬한 혼합 임베딩 테이블 상에서 상위 K개의 아이템을 추출하고, 이를 포함하는 제N+1 임베딩 테이블을 상기 사용자 디바이스에 발송하는 제2-5 단계를 포함할 수 있다.
일 실시 예에 따르면, 상기 제2-3 단계는, 상기 혼합 임베딩 테이블이 포함하는 모든 아이템 각각에 대한 손실값을 산정하는 제2-3-1 단계, 상기 혼합 임베딩 테이블이 포함하는 모든 아이템 각각에 대한 손실값을 합산하여 혼합 임베딩 테이블에 대한 손실값을 산정하는 제2-3-2 단계, 상기 혼합 임베딩 테이블이 포함하는 각각의 아이템에 대한 가중치값을 제외시킨 부분 혼합 임베딩 테이블을 상기 혼합 임베딩 테이블이 포함하는 각각의 아이템의 개수만큼 생성하고, 각각의 혼합 임베딩 테이블 자체에 대한 손실값을 산정하는 제2-3-3 단계 및 상기 산정한 혼합 임베딩 테이블 자체에 대한 손실값에서 상기 각각의 혼합 임베딩 테이블에 대한 손실값을 각각 차감하여 상기 혼합 임베딩 테이블이 포함하는 모든 아이템 각각에 대한 중요도 점수를 산출하는 제2-3-4 단계를 포함할 수 있다.
일 실시 예에 따르면, 상기 특정 서비스는, 사용자 선호도를 반영한 콘텐츠 추천 기능을 제공하는 특정 온라인 플랫폼일 수 있다.
상기 기술적 과제를 달성하기 위한 본 발명의 또 다른 실시 예에 따른 사용자 디바이스를 위한 임베딩 테이블 크기를 조절하는 장치 - 상기 임베딩 테이블은 포함하고 있는 모든 아이템 각각에 대한 가중치값이 부여되어 있으며, 상기 장치는 하나 이상의 특정 서비스에 대한 모든 아이템을 포함하는 임베딩 테이블을 포함하고 있음 - 는 하나 이상의 프로세서; 하나 이상의 프로세서, 네트워크 인터페이스, 상기 프로세서에 의해 수행되는 컴퓨터 프로그램을 로드(Load)하는 메모리 및 대용량 네트워크 데이터 및 상기 컴퓨터 프로그램을 저장하는 스토리지를 포함하되, 상기 컴퓨터 프로그램은 상기 하나 이상의 프로세서에 의해, (A) 상기 사용자 디바이스의 메모리 용량 정보에 따른 초기 설정값 개수인 k(k는 양의 정수)개 만큼의 아이템을 포함하는 제1 임베딩 테이블을 상기 사용자 디바이스에 발송하고, 소정의 처리를 진행하여 상기 사용자 디바이스가 포함하는 추천 모델의 구동에 최적화된 제N(N은 양의 정수) 임베딩 테이블이 포함하는 아이템의 개수인 K(K는 양의 정수)를 결정하는 제1 오퍼레이션 및 (B) 상기 결정한 K에 따라 상기 사용자 디바이스에 발송한 K개의 아이템을 포함하는 제N 임베딩 테이블에 대하여 상기 추천 모델의 학습에 의해 갱신된 상기 K개의 아이템에 대한 가중치값을 포함하는 제N′ 임베딩 테이블을 수신하고, 소정의 처리를 진행하여 재선정한 K개의 아이템을 포함하는 제N+1 임베딩 테이블을 상기 사용자 디바이스에 발송하는 제2 오퍼레이션을 실행하며, 상기 제1 임베딩 테이블과 제N+1 임베딩 테이블의 크기는 상이하다.
상기 기술적 과제를 달성하기 위한 본 발명의 또 다른 실시 예에 따른 컴퓨터로 판독 가능한 매체에 저장된 컴퓨터 프로그램이 컴퓨팅 장치와 결합하여 사용자 디바이스를 위한 임베딩 테이블 크기를 조절 - 상기 임베딩 테이블은 포함하고 있는 모든 아이템 각각에 대한 가중치값이 부여되어 있으며, 상기 컴퓨터 프로그램은 하나 이상의 특정 서비스에 대한 모든 아이템을 포함하는 임베딩 테이블을 포함하고 있음 - 하는 방법에 있어서 상기 컴퓨터로 판독 가능한 매체에 저장된 컴퓨터 프로그램은, (AA) 상기 사용자 디바이스의 메모리 용량 정보에 따른 초기 설정값 개수인 k(k는 양의 정수)개 만큼의 아이템을 포함하는 제1 임베딩 테이블을 상기 사용자 디바이스에 발송하고, 소정의 처리를 진행하여 상기 사용자 디바이스가 포함하는 추천 모델의 구동에 최적화된 제N(N은 양의 정수) 임베딩 테이블이 포함하는 아이템의 개수인 K(K는 양의 정수)를 결정하는 제1 단계 및 (BB) 상기 결정한 K에 따라 상기 사용자 디바이스에 발송한 K개의 아이템을 포함하는 제N 임베딩 테이블에 대하여 상기 추천 모델의 학습에 의해 갱신된 상기 K개의 아이템에 대한 가중치값을 포함하는 제N′ 임베딩 테이블을 수신하고, 소정의 처리를 진행하여 재선정한 K개의 아이템을 포함하는 제N+1 임베딩 테이블을 상기 사용자 디바이스에 발송하는 제2 단계를 실행하며, 상기 제1 임베딩 테이블과 제N+1 임베딩 테이블의 크기는 상이하다.
상기와 같은 본 발명에 따르면, 사용자 디바이스의 메모리 용량에 기초하여 사용자 디바이스의 구동에 부담이 되지 않는 크기의 임베딩 테이블을 사용자 디바이스에 제공할 수 있는바, 종래 서버에 국한되었던 추천 기능의 일부를 사용자 디바이스로 옮길 수 있으므로 서버 사용에 따른 시간 및 비용상의 문제를 해결할 수 있다.
또한, 사용자 디바이스의 메모리 용량을 충분히 고려하여 사용자 디바이스 별로 최적화된 크기의 임베딩 테이블을 제공할 수 있는바, 보다 향상된 추천 기능을 제공할 수 있다.
본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해 될 수 있을 것이다.
도 1은 본 발명의 제1 실시 예에 따른 사용자 디바이스를 위한 임베딩 테이블 크기를 조절하는 장치가 포함하는 전체 구성을 예시적으로 도시한 도면이다.
도 2는 본 발명의 제2 실시 예에 따른 사용자 디바이스를 위한 임베딩 테이블 크기를 조절하는 방법의 대표적인 단계를 나타낸 순서도이다.
도 3은 본 발명의 제2 실시 예에 따른 사용자 디바이스를 위한 임베딩 테이블 크기를 조절하는 방법에 있어서, S210 단계를 구체화한 순서도이다.
도 4는 제1 임베딩 테이블을 예시적으로 도시한 도면이다.
도 5는 본 발명의 제2 실시 예에 따른 사용자 디바이스를 위한 임베딩 테이블 크기를 조절하는 방법에 있어서, S220 단계를 구체화한 순서도이다.
도 6은 혼합 임베딩 테이블을 생성하는 모습을 예시적으로 도시한 도면이다.
도 7은 임의의 사용자 임베딩 테이블과 임의의 아이템 임베딩 테이블을 예시적으로 도시한 도면이다.
도 8은 일곱 개의 아이템에 대한 혼합 임베딩 테이블과 3번 아이템의 가중치값을 제외시킨 부분 혼합 임베딩 테이블을 예시적으로 도시한 도면이다.
도 9는 중요도 점수를 산출하는 과정을 나타낸 순서도이다.
도 10은 본 발명의 제2 실시 예에 따른 사용자 디바이스를 위한 임베딩 테이블 크기를 조절하는 방법과 종래 기술의 학습 시간을 비교한 그래프이다.
도 11은 본 발명의 제2 실시 예에 따른 사용자 디바이스를 위한 임베딩 테이블 크기를 조절하는 방법과 종래 기술의 추천 정확도를 비교한 그래프이다.
본 발명의 목적과 기술적 구성 및 그에 따른 작용 효과에 관한 자세한 사항은 본 발명의 명세서에 첨부된 도면에 의거한 이하의 상세한 설명에 의해 보다 명확하게 이해될 것이다. 첨부된 도면을 참조하여 본 발명에 따른 실시 예를 상세하게 설명한다.
본 명세서에서 개시되는 실시 예들은 본 발명의 범위를 한정하는 것으로 해석되거나 이용되지 않아야 할 것이다. 이 분야의 통상의 기술자에게 본 명세서의 실시 예를 포함한 설명은 다양한 응용을 갖는다는 것이 당연하다. 따라서, 본 발명의 상세한 설명에 기재된 임의의 실시 예들은 본 발명을 보다 잘 설명하기 위한 예시적인 것이며 본 발명의 범위가 실시 예들로 한정되는 것을 의도하지 않는다.
도면에 표시되고 아래에 설명되는 기능 블록들은 가능한 구현의 예들일 뿐이다. 다른 구현들에서는 상세한 설명의 사상 및 범위를 벗어나지 않는 범위에서 다른 기능 블록들이 사용될 수 있다. 또한, 본 발명의 하나 이상의 기능 블록이 개별 블록들로 표시되지만, 본 발명의 기능 블록들 중 하나 이상은 동일 기능을 실행하는 다양한 하드웨어 및 소프트웨어 구성들의 조합일 수 있다.
또한, 어떤 구성요소들을 포함한다는 표현은 "개방형"의 표현으로서 해당 구성요소들이 존재하는 것을 단순히 지칭할 뿐이며, 추가적인 구성요소들을 배제하는 것으로 이해되어서는 안 된다.
나아가 어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급될 때에는, 그 다른 구성요소에 직접적으로 연결 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 한다.
이하에서는 도면들을 참조하여 본 발명의 세부적인 실시 예들에 대해 살펴보도록 한다.
도 1은 본 발명의 제1 실시 예에 따른 사용자 디바이스를 위한 임베딩 테이블 크기를 조절하는 장치(100)가 포함하는 전체 구성을 예시적으로 도시한 도면이다.
그러나 이는 본 발명의 목적을 달성하기 위한 바람직한 실시 예일 뿐이며, 필요에 따라 일부 구성이 추가되거나 삭제될 수 있고, 어느 한 구성이 수행하는 역할을 다른 구성이 함께 수행할 수도 있음은 물론이다.
본 발명의 제1 실시 예에 따른 사용자 디바이스를 위한 임베딩 테이블 크기를 조절하는 장치(100)는 프로세서(10), 네트워크 인터페이스(20), 메모리(30), 스토리지(40) 및 이들을 연결하는 데이터 버스(50)를 포함할 수 있으며, 기타 본 발명의 목적을 달성함에 있어 요구되는 부가적인 구성들을 더 포함할 수 있음은 물론이라 할 것이다.
프로세서(10)는 각 구성의 전반적인 동작을 제어한다. 프로세서(10)는 CPU(Central Processing Unit), MPU(Micro Processer Unit), MCU(Micro Controller Unit) 또는 본 발명이 속하는 기술 분야에서 널리 알려져 있는 형태의 프로세서 중 어느 하나일 수 있다.
아울러, 프로세서(10)는 본 발명의 제2 실시 예에 따른 사용자 디바이스를 위한 임베딩 테이블 크기를 조절하는 방법을 수행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있으며, 추천 모델이 구현된 인공지능 프로세서일 수 있다.
네트워크 인터페이스(20)는 본 발명의 제1 실시 예에 따른 사용자 디바이스를 위한 임베딩 테이블 크기를 조절하는 장치(100)의 유무선 인터넷 통신을 지원하며, 그 밖의 공지의 통신 방식을 지원할 수도 있다. 따라서 네트워크 인터페이스(20)는 그에 따른 통신 모듈을 포함하여 구성될 수 있다.
메모리(30)는 각종 정보, 명령 및/또는 정보를 저장하며, 본 발명의 제2 실시 예에 따른 사용자 디바이스를 위한 임베딩 테이블 크기를 조절하는 방법을 수행하기 위해 스토리지(40)로부터 하나 이상의 컴퓨터 프로그램(41)을 로드할 수 있다. 도 2에서는 메모리(30)의 하나로 RAM을 도시하였으나 이와 더불어 다양한 저장 매체를 메모리(30)로 이용할 수 있음은 물론이다.
스토리지(40)는 하나 이상의 컴퓨터 프로그램(41) 및 대용량 네트워크 정보(42)를 비임시적으로 저장할 수 있다. 이러한 스토리지(40)는 ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 발명이 속하는 기술 분야에서 널리 알려져 있는 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체 중 어느 하나일 수 있다.
컴퓨터 프로그램(41)은 메모리(30)에 로드되어, 하나 이상의 프로세서(10)에 의해, (A) 사용자 디바이스(미도시)의 메모리 용량 정보에 따른 초기 설정값 개수인 k(k는 양의 정수)개 만큼의 아이템을 포함하는 제1 임베딩 테이블을 상기 사용자 디바이스(미도시)에 발송하고, 소정의 처리를 진행하여 상기 사용자 디바이스(미도시)가 포함하는 추천 모델의 구동에 최적화된 제N(N은 양의 정수) 임베딩 테이블이 포함하는 아이템의 개수인 K(K는 양의 정수)를 결정하는 제1 오퍼레이션 및 (B) 상기 결정한 K에 따라 상기 사용자 디바이스(미도시)에 발송한 K개의 아이템을 포함하는 제N 임베딩 테이블에 대하여 상기 추천 모델의 학습에 의해 갱신된 상기 K개의 아이템에 대한 가중치값을 포함하는 제N′ 임베딩 테이블을 수신하고, 소정의 처리를 진행하여 재선정한 K개의 아이템을 포함하는 제N+1 임베딩 테이블을 상기 사용자 디바이스(미도시)에 발송하는 제2 오퍼레이션을 실행할 수 있다.
이상 간단하게 언급한 컴퓨터 프로그램(41)이 수행하는 오퍼레이션은 컴퓨터 프로그램(41)의 일 기능으로 볼 수 있으며, 보다 자세한 설명은 본 발명의 제2 실시 예에 따른 사용자 디바이스를 위한 임베딩 테이블 크기를 조절하는 방법에 대한 설명에서 후술하도록 한다.
데이터 버스(50)는 이상 설명한 프로세서(10), 네트워크 인터페이스(20), 메모리(30) 및 스토리지(40) 사이의 명령 및/또는 정보의 이동 경로가 된다.
이상 설명한 본 발명의 제1 실시 예에 따른 사용자 디바이스를 위한 임베딩 테이블 크기를 조절하는 장치(100)는 독립된 디바이스의 형태, 예를 들어 전자 기기나 서버(클라우드 포함)의 형태일 수 있으며, 후자의 경우 전용 애플리케이션의 형태로 사용자 단말에 다운로드되어 설치될 수 있을 것이다.
아울러, 여기서 전자 기기는 스마트폰, 태블릿 PC, 노트북 PC, PDA, PMP 등과 같이 휴대가 용이한 포터블 기기 뿐만 아니라 한 장소에 고정 설치되어 사용하는 데스크톱 PC 등이라도 무방하며, 네트워크 기능만 보유하고 있다면 전자 기기는 어떠한 것이라도 무방하다 할 것이다.
한편, 사용자 디바이스(미도시)의 경우 역시 이상의 전자 기기와 마찬가지로 네트워크 기능만 보유하고 있다면 어떠한 것이라도 무방하라 할 것이다.
이하, 본 발명의 제1 실시 예에 따른 사용자 디바이스를 위한 임베딩 테이블 크기를 조절하는 장치(100)가 독립된 디바이스 형태인 서버임을 전제로 본 발명의 제2 실시 예에 따른 사용자 디바이스를 위한 임베딩 테이블 크기를 조절하는 방법에 대하여 도 2내지 도 9를 참조하여 설명하도록 한다.
도 2는 본 발명의 제2 실시 예에 따른 사용자 디바이스를 위한 임베딩 테이블 크기를 조절하는 방법의 대표적인 단계를 나타낸 순서도이다.
그러나 이는 본 발명의 목적을 달성함에 있어서 바람직한 실시 예일 뿐이며, 필요에 따라 일부 단계가 추가 또는 삭제될 수 있음은 물론이고, 어느 한 단계가 다른 단계에 포함되어 수행될 수도 있다.
한편, 각 단계는 본 발명의 제1 실시 예에 따른 사용자 디바이스를 위한 임베딩 테이블 크기를 조절하는 장치(100)를 통해 이루어지는 것을 전제로 하며, 설명의 편의를 위해 "장치(100)"로 명명하도록 함을 미리 밝혀두는 바이다.
우선, 장치(100)가 사용자 디바이스(미도시)의 메모리 용량 정보에 따른 초기 설정값 개수인 k(k는 양의 정수)개 만큼의 아이템을 포함하는 제1 임베딩 테이블을 사용자 디바이스(미도시)에 발송하고, 소정의 처리를 진행하여 사용자 디바이스(미도시)가 포함하는 추천 모델의 구동에 최적화된 제N(N은 양의 정수) 임베딩 테이블이 포함하는 아이템의 개수인 K(K는 양의 정수)를 결정한다(S210, 제1 단계).
이러한 S210 단계는 사용자 디바이스(미도시)를 위한 K를 결정하는 초기 과정으로 볼 수 있는바, 이하, 도 3을 참조하여 구체적으로 설명하도록 한다.
도 3은 본 발명의 제2 실시 예에 따른 사용자 디바이스를 위한 임베딩 테이블 크기를 조절하는 방법에 있어서, S210 단계를 구체화한 순서도이다.
그러나 이는 본 발명의 목적을 달성함에 있어서 바람직한 실시 예일 뿐이며, 필요에 따라 일부 단계가 추가 또는 삭제될 수 있음은 물론이고, 어느 한 단계가 다른 단계에 포함되어 수행될 수도 있다.
우선, 장치(100)가 사용자 디바이스(미도시)로부터 메모리 용량 정보를 수신한다(S210-1, 제1-1 단계).
여기서 장치(100)가 수신하는 메모리 용량 정보는 말 그대로 해당 사용자 디바이스(미도시)의 하드웨어적 특성인 메모리 용량에 관한 것인바, 예를 들어, 4GB, 12GB 등과 같이 메모리에 해당하는 DRAM의 용량 정보를 수신하는 것이며, 메모리 용량 중 일부를 다른 프로세스를 통해 사용하고 있다 하더라도 이를 의식적으로 제외시키지 않고 해당 메모리의 전체 용량에 대한 정보를 수신한다 할 것이다.
이후, 장치(100)가 수신한 메모리 용량 정보에 따른 초기 설정값 개수 k개 만큼의 아이템을 포함하는 제1 임베딩 테이블을 사용자 디바이스에 발송한다(S210-2, 제1-2 단계).
장치(100)는 메모리 용량 별로 제1 임베딩 테이블이 포함하는 아이템의 초기 설정값 개수인 k가 사전에 설정되어 있는 별도의 테이블 또는 이에 관한 데이터를 보유하고 있는바, 예를 들어 메모리 용량이 4GB인 경우 제1 임베딩 테이블이 포함하는 아이템의 초기 설정값 개수인 k의 값이 XXX, 메모리 용량이 12GB인 경우 제1 임베딩 테이블이 포함하는 아이템의 초기 설정값 개수인 k의 값이 XXXX 등과 같이 메모리 용량과 그에 대한 초기 설정값 개수인 k값이 함께 기입되어 있는 테이블 또는 이에 관한 데이터일 수 있다.
한편, 제1 임베딩 테이블은 수신한 메모리 용량 정보에 따른 초기 설정값 개수 k개 만큼의 아이템을 포함하는 임베딩 테이블, 보다 구체적으로 장치(100)가 사용자 디바이스(미도시)의 메모리 용량 정보만을 기초로 판단하여 사용자 디바이스(미도시)에 최초로 발송하는 임베딩 테이블인바, 도 4에 제1 임베딩 테이블을 예시적으로 도시해 놓았다.
도 4를 참조하여 임베딩 테이블에 대하여 간략하게 설명하면, 임베딩 테이블의 행(Row)이 각각의 아이템을 나타내며, 행의 개수가 해당 임베딩 테이블이 나타내는 아이템의 개수로 볼 수 있다. 또한, 임베딩 테이블의 열(Column)은 차원(Dimension)을 나타내는바, 열의 개수가 해당 아이템을 어느 정도로 고차원적으로 나타낼 것인가로 볼 수 있으므로, 열의 개수가 많을수록 아이템은 고차원적으로 나타낸 것이라 할 것이다. 마지막으로 각각의 칸에 기재된 숫자는 가충치값을 나타내는바, 각각의 차원에 대하여 해당 아이템이 어느 정도로 유사한지 여부를 나타내는 값이며, 1에 가까울수록 해당 아이템이 해당 차원에 유사한 아이템이라 할 수 있다.
이를 기초로 도 4에 도시된 제1 임베딩 테이블을 살펴보면, 행이 일곱 개이므로 일곱 개의 아이템에 대하여 열이 다섯개 이므로 일곱 개의 아이템을 다섯 개의 차원으로 나타낸 임베딩 테이블이라 할 것이다.
이와 같은 제1 임베딩 데이블은 도면 도시의 편의를 위해 아이템의 개수를 일곱 개로 설정한 예시적인 임베딩 테이블이라 할 것이며, 실제 장치(100)가 사용자 디바이스(미도시)에 발송하는 제1 임베딩 테이블은 초기 설정값 개수 k에 따라 이보다 많은 아이템을 포함하는 임베딩 테이블이라 할 것이다.
한편, 장치(100)가 발송하는 제1 임베딩 테이블은 특정 온라인 플랫폼에 대한 아이템만을 포함하는 임베딩 테이블일 수 있으며, 특정 온라인 플랫폼과 무관하게 모든 온라인 플랫폼에 대한 아이템 전부를 포함하는 임베딩 테이블일 수도 있다. 전자의 경우 예를 들어, 특정 온라인 플랫폼이 쿠팡이라 한다면, 쿠팡에서 판매하고 있는 아이템만을 k개 포함하는 임베딩 테이블이 제1 임베딩 테이블로서 사용자 디바이스(미도시)에 발송될 것이며, 후자의 경우 쿠팡, 옥션, 지마켓, 넷플릭스 등과 같이 모든 온라인 플랫폼에서 판매하고 있는 아이템을 k개 포함하는 임베딩 테이블이 제1 임베딩 테이블로서 사용자 디바이스(미도시)에 발송될 것이다. 장치(100)가 이와 같은 제1 임베딩 테이블을 사용자 디바이스(미도시)에 발송할 수 있는 것은 장치(100)가 하나 이상의 특정 서비스 - 여기서 특정 서비스는 사용자 디바이스(미도시) 사용자의 선호도를 반영한 콘텐츠 추천 기능을 제공하는 특정 온라인 플랫폼일 수 있음 - 또는 특정 온라인 프랫폼에 대한 모든 아이템을 포함하는 임베딩 테이블을 사전에 포함하고 있기 때문이라 할 것이다.
제1 임베딩 테이블을 사용자 디바이스(미도시)에 발송했다면, 장치(100)가 사용자 디바이스(미도시)가 포함하는 추천 모델이 수신한 제1 임베딩 테이블이 허용 기준을 만족하는지 판단한 결과가 NO인 경우, 제1 임베딩 테이블의 크기가 소정 크기 만큼 줄어들 수 있도록 상기 k를 재설정한다(S210-3, 제1-3 단계)
장치(100)로부터 제1 임베딩 테이블을 수신한 사용자 디바이스(미도시), 보다 구체적으로 사용자 디바이스(미도시)가 포함하는 프로세서(미도시)에 설치된 추천 모델은 제1 임베딩 테이블에 대한 추론(Inference)을 수행하며, 수행 결과 제1 임베딩 테이블이 허용 기준을 만족하는지 판단하는바, 여기서 허용 기준은 추천 모델이 사용자 디바이스(미도시)의 메모리 용량에 기초하여 제1 임베딩 테이블을 정상적으로 구동할 수 있는지 여부에 대한 제1 허용 기준 및 추천 모델이 특정 서비스에 대하여 제1 임베딩 테이블을 구동하는 경우 소요되는 시간이 특정 서비스가 추구하는 시간 기준을 만족하는지 여부에 대한 제2 허용 기준 중 어느 하나 이상을 포함할 수 있으며, 쉽게 이야기하면 제1 임베딩 테이블이 사용자 디바이스(미도시) 상에서 사용자 디바이스(미도시)에 부담을 주지 않고 빠르게 구동될 수 있느냐에 관한 것인바, 제1 허용 기준과 제2 허용 기준 모두 각각의 의미를 보유하고 있기 때문에 허용 기준이 제1 허용 기준과 제2 허용 기준 모두를 포함함이 가장 바람직하다 할 것이다.
한편, 사용자 디바이스(미도시)가 포함하는 추천 모델의 허용 기준 판단 결과가 NO인 경우, 보다 구체적으로 사용자 디바이스(미도시)의 메모리 용량에 기초하여 제1 임베딩 테이블을 정상적으로 구동할 수 있는지 여부에 대한 제1 허용 기준 및 추천 모델이 특정 서비스에 대하여 제1 임베딩 테이블을 구동하는 경우 소요되는 시간이 특정 서비스가 추구하는 시간 기준을 만족하는지 여부에 대한 제2 허용 기준 중 어느 하나라도 만족하지 못하는 경우, 제1 임베딩 테이블은 사용자 디바이스(미도시) 상에서 구동하기 적잡하지 않은 크기를 갖는다는 의미인바, 장치(100)는 사용자 디바이스(미도시)에 발송한 제1 임베딩 테이블의 크기가 소정 크기 줄어들 수 있도록 초기 설정값 k를 재설정할 수 있다.
여기서 소정 크기는 1MB, 10MB 및 100MB 중 어느 하나일 수 있으며, 장치의 관리자의 설정에 의해 선택 가능할 수 있고, 이상의 소정 크기뿐만 아니라 관리자의 설정에 의해 이와 상이한 소정 크기의 자유로운 설정도 가능하다 할 것이다. 다만 소정 크기를 설정함에 있어 소정 크기를 작게 설정할수록 사용자 디바이스(미도시)를 위한 K를 결정하는 초기 과정인 제1 단계를 많은 횟수 반복해야 허용 기준을 만족시킬 수 있을 것이나, 임베딩 테이블을 구동함에 있어 그만큼 사용자 디바이스(미도시)의 메모리 용량을 충실하게 사용할 수 있을 것이며, 소정 크기를 크게 설정할수록 사용자 디바이스(미도시)를 위한 K를 결정하는 초기 과정인 제1 단계를 적은 횟수 반복하여도 허용 기준을 만족시킬 수 있을 것이나, 임베딩 테이블을 구동함에 있어 사용자 디바이스(미도시)의 메모리 용량을 충실하게 사용하지 못할 수도 있음은 유의해야 할 사항이라 할 것이다.
제1 임베딩 테이블의 크기가 소정 크기만큼 줄어들 수 있도록 초기 설정값 k를 재설정했다면, 장치(100)가 재설정한 k를 아이템의 개수로 포함하는 제2 임베딩 테이블을 상기 사용자 디바이스에 재발송한다(S210-4, 제1-4 단계).
설정한 소정 크기에 따라 달라질 것이나, 제2 임베딩 테이블은 장치(100)가 사용자 디바이스(미도시)에 처음으로 발송한 제1 임베딩 데이틀보다 포함하고 있는 아이템의 개수가 적을 것이며, 제2 임베딩 테이블을 수신한 사용자 디바이스(미도시)는 앞선 경우와 마찬가지로 제2 임베딩 테이블에 대한 추론을 수행하여 허용 기준을 만족하는지 판단하게 될 것이다.
이후, 추천 모델이 수신한 제2 임베딩 테이블이 허용 기준을 만족하는지 판단한 결과가 YES인 경우, 장치(100)가 제2 임베딩 테이블에 대하여 재설정한 k를 사용자 디바이스에 대한 K로 결정하며(S210-5, 제1-5 단계), 판단한 결과가 NO인 경우, S210-3 단계로 회귀하여 k를 재설정하고 그에 따른 임베딩 테이블을 사용자 디바이스(미도시)에 재발송하게 될 것이다.
이상의 설명에서는 설명의 편의를 위해 S210-5 단계에서 바로 사용자 디바이스(미도시)가 포함하는 추천 모델의 구동에 최적화된 K가 결정되는 경우를 예를 들어 설명하였지만, K를 결정하기 위해 k를 수 차례 재설정하는 과정들이 반복될 수 있을 것이며, 이 경우 장치(100)는 k를 재설정해가며 제3 임베딩 테이블, 제4 임베딩 테이블, 제5 임베딩 테이블? 을 지속적으로 사용자 디바이스(미도시)에 발송할 것이고, 이들 임베딩 테이블 중 사용자 디바이스(미도시)가 포함하는 추천 모델의 허용 기준을 만족하는 임베딩 테이블이 포함하는 아이템의 개수인 k가 K로 결정되어 해당 K개의 아이템을 포함하는 임베딩 테이블을 제N 임베딩 테이블로 볼 있다 할 것이다.
이상 설명한 S210-1 단계 내지 S210-5 단계에 의해 사용자 디바이스(미도시)가 포함하는 추천 모델의 구동에 최적화된 제N 임베딩 테이블이 포함하는 아이템의 개수인 K가 결정되며, 사용자 디바이스(미도시)는 K개의 아이템을 포함하는 제N 임베딩 테이블을 보유하게 될 것이다.
여기서 장치(100)가 사용자 디바이스(미도시)에 최초로 발송한 제1 임베딩 테이블의 크기는 이상 설명한 S210-1 단계 내지 S210-5 단계에 의해 제1 임베딩 테이블의 크기가 소정 크기만큼 줄어들어 최종적으로 확정된 K개의 아이템을 포함하는 제N 임베딩 테이블와 상이할 것인바, 보다 구체적으로는 제1 임베딩 테이블의 크기가 제N 임베딩 테이블의 크기보다 크다고 할 것이다.
한편, 제N 임베딩 테이블을 수신한 사용자 디바이스(미도시)는 제N 임베딩 테이블에 대하여 학습을 진행하게 될 것이며, 학습을 통해 제N 임베딩 테이블에 기재되었던 초기 가중치값들이 새롭게 갱신될 것이다. 그 이후 사용자 디바이스(미도시)는 특정 서비스에 대하여 구동 테스트를 수행하여 추천 모델의 정확도가 정확도 기준을 만족하는지 판단하게 될 것인바, 여기서 정확도 기준은 통상적인 추천 모델/시스템의 정확도를 판정하는데 사용되는 공지된 Hit Ratio 방식이라면 어떠한 것이라도 무방하다고 할 것이다. 이와 같은 상태에서 다시 도 2에 대한 설명으로 돌아가도록 한다.
K를 결정했다면, 장치(100)가 결정한 K에 따라 사용자 디바이스(미도시)에 발송한 K개의 아이템을 포함하는 제N 임베딩 테이블에 대하여 추천 모델의 학습에 의해 갱신된 K개의 아이템에 대한 가중치값을 포함하는 제N′ 임베딩 테이블을 수신하고, 소정의 처리를 진행하여 재선정한 K개의 아이템을 포함하는 제N+1 임베딩 테이블을 사용자 디바이스(미도시)에 발송한다(S220, 제2 단계).
이러한 S220 단계는 제N 임베딩 테이블에 대하여 사용자의 선호도를 고려한 아이템을 갱신하는 아이템 갱신 과정으로 볼 수 있는바, 이하, 도 5를 참조하여 구체적으로 설명하도록 한다.
도 5는 본 발명의 제2 실시 예에 따른 사용자 디바이스를 위한 임베딩 테이블 크기를 조절하는 방법에 있어서, S220 단계를 구체화한 순서도이다.
그러나 이는 본 발명의 목적을 달성함에 있어서 바람직한 실시 예일 뿐이며, 필요에 따라 일부 단계가 추가 또는 삭제될 수 있음은 물론이고, 어느 한 단계가 다른 단계에 포함되어 수행될 수도 있다.
사용자 디바이스(미도시)가 포함하는 추천 모델이 K개의 아이템을 포함하는 제N 임베딩 테이블에 대하여 학습을 진행하고, 특정 서비스에 대하여 구동 테스트를 수행한 결과, 추천 모델의 정확도가 정확도 기준을 만족하는지 판단하여 판단 결과가 NO인 경우, 장치(100)가 추천 모델의 학습에 의해 갱신된 K개의 아이템에 대한 가중치값을 포함하는 제N´ 임베딩 테이블을 사용자 디바이스(미도시)로부터 수신한다(S220-1, 제2-1 단계).
앞서 사용자 디바이스(미도시)의 추천 모델이 제N 임베딩 테이블에 대한 학습을 진행하여 가중치값이 갱신된다고 했던바, S220-1 단계는 장치(100)가 사용자 디바이스(미도시)로부터 제N 임베딩 테이블에 있어서 가중치값이 갱신된 제N´ 임베딩 테이블을 수신하는 단계로 볼 수 있으며, 이 경우 제N´ 임베딩 테이블뿐만 아니라, K 개의 아이템 리스트도 함께 수신할 수 있을 것이다.
제N´ 임베딩 테이블을 수신했다면, 장치(100)가 수신한 제N´ 임베딩 테이블이 포함하는 K개의 아이템 및 이에 대한 가중치값을 장치(100)가 포함하고 있는 특정 서비스에 대한 모든 아이템을 포함하는 임베딩 테이블 상에서의 동일한 K개의 아이템 및 이에 대한 가중치값과 교환하여 혼합 임베딩 테이블을 생성한다(S220-2, 제2-2 단계).
제N´ 임베딩 테이블은 학습을 통해 가중치값이 갱신된 테이블이며, 앞서 장치(100)는 특정 서비스에 대한 모든 아이템을 포함하는 임베딩 테이블을 포함한다고 했던바, 학습을 통해 가중치값이 갱신된 아이템들을 특정 서비스에 대한 모든 아이템을 포함하는 임베딩 테이블 상의 동일한 아이템들과 교환하는 것이며, 도 6에 이를 예시적으로 도시해 놓았다.
도 6을 참조하면, 특정 서비스에 대한 모든 아이템을 포함하는 임베딩 테이블인 좌측 상단의 임베딩 테이블(ALL)이 포함하는 모든 아이템 아이템 1 내지 아이템 7에 대하여 좌측 하단의 제N´ 임베딩 테이블이 포함하는 아이템 2,3 및 5가 교환되어 혼합 임베딩 테이블이 생성되는 것을 확인할 수 있는바, 혼합 임베딩 테이블이 포함하는 아이템 1, 4, 6 및 7은 좌측 상단의 임베딩 테이블(ALL)이 포함하던 아이템이며, 아이템 2,3 및 5는 좌측 하단의 제N´ 임베딩 테이블이 포함하던 아이템이므로 두 테이블이 혼합된 것인바, 혼합 임베딩 테이블이라 하는 것이며, 도시의 편의를 위해 각 칸을 아이템 숫자로만 도시하였으나, 실제 교환되는 항목은 해당 아이템에 대한 가중치값이라 할 것이다.
혼합 임베딩 테이블까지 생성했다면, 장치(100)가 생성한 혼합 임베딩 테이블이 포함하는 모든 아이템 각각에 대한 중요도 점수를 산출한다(S220-3, 제2-3 단계).
중요도 점수를 산출하기 위해서는 혼합 임베딩 테이블이 포함하는 모든 아이템 각각에 대한 손실값부터 산정해야 하는바, 이하 설명하도록 한다.
손실(Loss)은 학습된 모델이 예측한 값과 실제값과의 차이를 의미하는바, BCELoss는 그 중 실제값이 0 또는 1일때의 손실값을 의미한다. 예를 들어, 사용자 A가 영화 B에 대하여 평점 4.5를 부여했다고 하면, 사용자 A가 영화 B에 대하여 상호 작용을 했다고 보고 실제값을 1로 설정할 수 있으며, 이 경우 손실값은 -{모델이 예측한 사용자 A의 영화 B에 대한 선호도 점수 - 1}로 산정할 수 있으며, 반대로 사용자 A가 영화 C에 대해서는 평점을 내리지 않았다면, 사용자 A가 영화 C를 좋아하지 않는다고 보고 실제값을 0으로 설정할 수 있으며, 이 경우 손실값은 -}모델이 예측한 사용자A의 영화 C에 대한 선호도 점수 - 1}로 산정될 수 있다.
즉, 손실값을 산정하기 위해서는 특정 사용자의 특정 아이템에 대한 선호도 점수를 산정해야 하는바, 장치(100)는 사용자 디바이스(미도시)와 통신하는 과정에서 특정 아이템에 대한 사용자 디바이스(미도시) 사용자의 선호도가 반영된 사용자 임베딩 테이블을 보유하고 있을 수 있다.
도 7에 임의의 사용자 임베딩 테이블과 임의의 아이템 임베딩 테이블을 예시적으로 도시한바, 이를 통해 임의의 사용자의 아이템 1에 대한 선호도 점수를 산정해보면 내적을 이용하여 0.1 * 0.09 + 0.06 * 0.48 + 0.48 * 0.79 + 0.75 * 0.26 + 0.02 * 0.97 로, 임의의 사용자의 아이템 2에 대한 선호도 점수는 0.1 * 0.13 + 0.06 * 0.20 + 0.48 * 0.41 + 0.75 * 0.05 + 0.02 * 0.17 으로, 임의의 사용자의 아이템 3에 대한 선호도 점수는 0.1 * 0.06 + 0.06 * 0.08 + 0.48 * 0.41 + 0.75 * 0.19 + 0.02 * 0.41 로 산정할 수 있다.
이를 본 발명에 대입하면 혼합 임베딩 테이블이 포함하는 모든 아이템에 대하여 사용자 디바이스(미도시) 사용자의 선호도 점수를 산정할 수 있을 것이며, 장치(100)는 혼합 임베딩 테이블이 포함하는 모든 아이템 중, 사용자 디바이스(미도시)의 사용자와 상호 작용을 한 아이템에 대한 정보를 보유하고 있거나 또는 제N´ 임베딩 테이블에 포함되었던 K개의 아이템에 대하여 갱신된 가중치값을 보유하고 있을 것이기 때문에 혼합 임베딩 테이블이 포함하는 모든 아이템에 대한 손실값을 산정할 수 있을 것이다.
혼합 임베딩 테이블이 포함하는 모든 아이템 각각에 대한 손실값을 산정했다면, 이를 이용하여 혼합 임베딩 테이블이 포함하는 모든 아이템 각각에 대한 중요도 점수를 산정할 수 있는바, 이를 위해서는 중요도 점수를 산정하고자 하는 특정 아이템의 가중치값을 제외시킨 부분 혼합 임베딩 테이블을 중요도 점수를 산정하고자 하는 특정 아이템의 개수만큼 생성해야 한다.
도 8에 일곱 개의 아이템에 대한 혼합 임베딩 테이블과 3번 아이템의 가중치값을 제외시킨 부분 혼합 임베딩 테이블을 예시적으로 도시한바, 3번 아이템의 중요도 점수는 혼합 임베딩 테이블이 포함하는 모든 아이템 각각에 대한 손실값의 합에서 3번 아이템의 가중치값을 제외시킨 상태에서 나머지 아이템 각각에 대한 손실값의 합을 빼서 산정한다. 즉, 도 8에서 혼합 임베딩 테이블이 포함하는 1번 아이템 내지 7번 아이템 각각의 손실값의 합에서 부분 혼합 임베딩 테이블이 포힘하는 1번, 2번, 4번 내지 7번 아이템 각각의 손실값의 합을 뺀다는 것이다.
그에 따라 장치(100)는 혼합 임베딩 테이블이 포함하는 아이템의 개수만큼의 부분 혼합 임베딩 테이블을 개별적으로 생성해야 모든 아이템에 대한 중요도 점수를 산정할 수 있을 것이며, 중요도 점수 산정 결과 특정 아이템(A)에 대한 중요도 점수가 특정 아이템(B)에 대한 중요도 점수보다 높을 경우, 특정 아이템(A)가 특정 아이템(B)보다 중요하다는 결론을 내릴 수 있을 것이다.
도 9는 이상 설명한 중요도 점수를 산출하는 과정을 나타낸 순서도인바, 장치(100)가 혼합 임베딩 테이블이 포함하는 모든 아이템 각각에 대한 손실값을 산정하는 단계(S220-3-1, 제2-3-1 단계), 장치(100)가 혼합 임베딩 테이블이 포함하는 모든 아이템 각각에 대한 손실값을 합산하여 혼합 임베딩 테이블 자체에 대한 손실값을 산정하는 단계(S220-3-2, 제2-3-2 단계), 장치(100)가 혼합 임베딩 테이블이 포함하는 각각의 아이템에 대한 가중치값을 제외시킨 부분 혼합 임베딩 테이블을 혼합 임베딩 테이블이 포함하는 각각의 아이템의 개수만큼 생성하고, 생성한 각각의 혼합 임베딩 테이블에 대한 손실값을 산정하는 단계(S220-3-3, 제2-3-3 단계) 및 장치(100)가 혼합 임베딩 테이블 자체에 대한 손실값에서 각각의 혼합 임베딩 테이블에 대한 손실값을 각각 차감하여 혼합 임베딩 테이블이 포함하는 모든 아이템 각각에 대한 중요도 점수를 산출하는 단계(S220-3-4, 제2-3-4 단계)로 이루어짐을 확인할 수 있을 것이다.
혼합 임베딩 테이블이 포함하는 모든 아이템 각각에 대한 중요도 점수까지 산출했다면, 장치(100)가 산출한 중요도 점수가 높은 순서대로 혼합 임베딩 테이블이 포함하는 모든 아이템을 정렬하며(S220-4, 제2-4 단계), 중요도 점수가 높은 순서대로 정렬한 혼합 임베딩 테이블 상에서 상위 K개의 아이템을 추출하고, 이를 포함하는 제N+1 임베딩 테이블을 사용자 디바이스(미도시)에 발송한다(S220-5, 제2-5 단계).
K는 사용자 디바이스(미도시)가 포함하는 추천 모델의 구동에 최적화된 제N 임베딩 테이블이 포함하는 아이템의 개수이며, 중요도 점수가 높은 순서대로 정렬한 혼합 임베딩 테이블 상에서 상위 K개의 아이템을 추출하여 생성한 제N+1 임베딩 테이블의 크기는 제N 임베딩 테이블과 동일한 개수인 K개의 아이템을 포함하기 때문에 그 크기는 동일할 것이며, 그에 따라 제N+1 임베딩 테이블의 크기는 제1 임베딩 테이블의 크기와 상이함, 보다 구체적으로 제N+1 임베딩 테이블의 크기가 제1 임베딩 테이블의 크기보다 작을 것인바, 이것이 본 발명의 제2 실시 예에 따른 사용자 디바이스를 위한 임베딩 테이블 크기를 조절하는 방법이라는 명칭이 부여된 이유라 할 것이다.
한편, 제N+1 임베딩 테이블을 수신한 사용자 디바이스(미도시)는 제N+1 임베딩 테이블에 대하여 학습을 진행하게 될 것이며, 특정 서비스에 대하여 구동 테스트를 수행한 결과, 추천 모델의 정확도가 정확도 기준을 만족하는지 판단하여 판단 결과 YES인 경우 학습을 종료하고, NO인 경우 다시 S220 단계가 수행되어 사용자 디바이스(미도시)의 메모리 용량뿐만 아니라 사용자의 선호도까지 보다 최적화된 상태로 고려된 임베딩 테이블을 생성하여 사용자 디바이스(미도시)에 재발송할 수 있을 것이다.
지금까지 본 발명의 제2 실시 예에 따른 사용자 디바이스를 위한 임베딩 테이블 크기를 조절하는 방법에 대하여 설명하였다. 본 발명에 따르면, 사용자 디바이스(미도시)의 메모리 용량에 기초하여 사용자 디바이스(미도시)의 구동에 부담이 되지 않는 크기의 임베딩 테이블을 사용자 디바이스(미도시)에 제공할 수 있는바, 종래 서버에 국한되었던 추천 기능의 일부를 사용자 디바이스(미도시)로 옮길 수 있으므로 서버 사용에 따른 시간 및 비용상의 문제를 해결할 수 있다. 또한, 사용자 디바이스(미도시)의 메모리 용량을 충분히 고려하여 사용자 디바이스(미도시)별로 최적화된 크기의 임베딩 테이블을 제공할 수 있는바, 보다 향상된 추천 기능을 제공할 수 있다.
도 10은 본 발명의 제2 실시 예에 따른 사용자 디바이스를 위한 임베딩 테이블 크기를 조절하는 방법에서 K를 106, 737, 2698로 결정한 경우와 종래 기술(Basaeline)과의 사용자 디바이스(미도시)의 학습 시간을 나타낸 그래프이며, 도 11은 추천의 정확도를 나타낸 그래프이다. 도 10을 참조하면, 본 발명의 제2 실시 예에 따른 사용자 디바이스를 위한 임베딩 테이블 크기를 조절하는 방법에 따라 K를 결정하여 학습하는 경우가 종래 기술에 비하여 약 두 배 이상 학습 시간이 빨라진 것을 확인할 수 있으며, 도 11을 참조하면, 추천의 정확도 역시 전반적으로 종래 기술에 비하여 향상된 것을 확인할 수 있다.
한편, 본 발명의 제1 실시 예에 따른 사용자 디바이스를 위한 임베딩 테이블 크기를 조절하는 장치(100)와 본 발명의 제2 실시 예에 따른 사용자 디바이스를 위한 임베딩 테이블 크기를 조절하는 방법은 모든 기술적 특징을 동일하게 포함하는 본 발명의 제3 실시 예에 따른 컴퓨터로 판독 가능한 매체에 저장된 컴퓨터 프로그램으로 구현할 수도 있는바, 이 경우 컴퓨팅 장치와 결합하여, (AA) 상기 사용자 디바이스의 메모리 용량 정보에 따른 초기 설정값 개수인 k(k는 양의 정수)개 만큼의 아이템을 포함하는 제1 임베딩 테이블을 상기 사용자 디바이스에 발송하고, 소정의 처리를 진행하여 상기 사용자 디바이스가 포함하는 추천 모델의 구동에 최적화된 제N(N은 양의 정수) 임베딩 테이블이 포함하는 아이템의 개수인 K(K는 양의 정수)를 결정하는 제1 단계 및 (BB) 상기 결정한 K에 따라 상기 사용자 디바이스에 발송한 K개의 아이템을 포함하는 제N 임베딩 테이블에 대하여 상기 추천 모델의 학습에 의해 갱신된 상기 K개의 아이템에 대한 가중치값을 포함하는 제N′ 임베딩 테이블을 수신하고, 소정의 처리를 진행하여 재선정한 K개의 아이템을 포함하는 제N+1 임베딩 테이블을 상기 사용자 디바이스에 발송하는 제2 단계를 실행할 수 있을 것이며, 중복 서술을 위해 자세히 기재하지는 않았지만 본 발명의 제1 실시 예에 따른 사용자 디바이스를 위한 임베딩 테이블 크기를 조절하는 장치(100) 및 본 발명의 제2 실시 예에 따른 사용자 디바이스를 위한 임베딩 테이블 크기를 조절하는 방법 에 적용된 모든 기술적 특징은 본 발명의 제3 실시 예에 따른 컴퓨터로 판독 가능한 매체에 저장된 컴퓨터 프로그램에 모두 동일하게 적용될 수 있음은 물론이라 할 것이다.
이상 첨부된 도면을 참조하여 본 발명의 실시 예들을 설명하였지만, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
10: 프로세서
20: 네트워크 인터페이스
30: 메모리
40: 스토리지
41: 컴퓨터 프로그램
50: 정보 버스
100: 사용자 디바이스를 위한 임베딩 테이블 크기를 조절하는 장치

Claims (10)

  1. 프로세서 및 메모리를 포함하는 장치가 사용자 디바이스를 위한 임베딩 테이블 - 상기 임베딩 테이블은 포함하고 있는 모든 아이템 각각에 대한 가중치값이 부여되어 있으며, 상기 장치는 하나 이상의 특정 서비스에 대한 모든 아이템을 포함하는 임베딩 테이블을 포함하고 있음 - 크기를 조절하는 방법에 있어서,
    (a) 상기 사용자 디바이스의 메모리 용량 정보에 따른 초기 설정값 개수인 k(k는 양의 정수)개 만큼의 아이템을 포함하는 제1 임베딩 테이블을 상기 사용자 디바이스에 발송하고, 소정의 처리를 진행하여 상기 사용자 디바이스가 포함하는 추천 모델의 구동에 대한 허용 기준을 만족하는 제N(N은 양의 정수) 임베딩 테이블이 포함하는 아이템의 개수인 K(K는 양의 정수)를 결정하는 제1 단계; 및
    (b) 상기 결정한 K에 따라 상기 사용자 디바이스에 발송한 K개의 아이템을 포함하는 제N 임베딩 테이블에 대하여 상기 추천 모델의 학습에 의해 갱신된 상기 K개의 아이템에 대한 가중치값을 포함하는 제N′ 임베딩 테이블을 수신하고, 소정의 처리를 진행하여 재선정한 K개의 아이템을 포함하는 제N+1 임베딩 테이블을 상기 사용자 디바이스에 발송하는 제2 단계;
    를 포함하며,
    상기 제1 임베딩 테이블과 제N+1 임베딩 테이블의 크기는 상이한,
    사용자 디바이스를 위한 임베딩 테이블 크기를 조절하는 방법에 있어서,
    상기 제1 단계는,
    상기 사용자 디바이스로부터 메모리 용량 정보를 수신하는 제1-1 단계;
    상기 수신한 메모리 용량 정보에 따른 초기 설정값 개수 k개 만큼의 아이템을 포함하는 제1 임베딩 테이블을 상기 사용자 디바이스에 발송하는 1-2 단계;
    상기 추천 모델이 상기 수신한 제1 임베딩 테이블이 허용 기준을 만족하는지 판단한 결과가 NO인 경우, 상기 제1 임베딩 테이블의 크기가 소정 크기 만큼 줄어들 수 있도록 상기 k를 재설정하는 제1-3 단계;
    상기 재설정한 k를 아이템의 개수로 포함하는 제2 임베딩 테이블을 상기 사용자 디바이스에 재발송하는 제1-4 단계; 및
    상기 추천 모델이 상기 수신한 제2 임베딩 테이블이 허용 기준을 만족하는지 판단한 결과가 YES인 경우, 상기 제2 임베딩 테이블에 대하여 재설정한 k를 상기 사용자 디바이스에 대한 K로 결정하는 제1-5 단계;
    를 포함하며,
    상기 추천 모델이 상기 사용자 디바이스의 메모리 용량에 기초하여 상기 제1 임베딩 테이블을 정상적으로 구동할 수 있는지 여부에 대한 제1 허용 기준 및 상기 추천 모델이 특정 서비스에 대하여 상기 제1 임베딩 테이블을 구동하는 경우 소요되는 시간이 상기 특정 서비스가 추구하는 시간 기준을 만족하는지 여부에 대한 제2 허용 기준 중 어느 하나 이상을 포함하는,
    사용자 디바이스를 위한 임베딩 테이블 크기를 조절하는 방법.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 제1항에 있어서,
    상기 소정 크기는,
    1MB, 10MB 및 100MB 중 어느 하나며,
    상기 장치의 관리자의 설정에 의해 선택 가능한,
    사용자 디바이스를 위한 임베딩 테이블 크기를 조절하는 방법.
  6. 제1항에 있어서,
    상기 제2 단계는,
    상기 추천 모델이 상기 K개의 아이템을 포함하는 제N 임베딩 테이블에 대하여 학습을 진행하고, 특정 서비스에 대하여 구동 테스트를 수행한 결과, 상기 추천 모델의 정확도가 정확도 기준을 만족하는지 판단하여 판단 결과가 NO인 경우, 상기 추천 모델의 학습에 의해 갱신된 상기 K개의 아이템에 대한 가중치값을 포함하는 제N′ 임베딩 테이블을 상기 사용자 디바이스로부터 수신하는 제2-1 단계;
    상기 수신한 제N′임베딩 테이블이 포함하는 K개의 아이템 및 이에 대한 가중치값을 상기 장치가 포함하고 있는 특정 서비스에 대한 모든 아이템을 포함하는 임베딩 테이블 상에서의 동일한 K개의 아이템 및 이에 대한 가중치값과 교환하여 혼합 임베딩 테이블을 생성하는 제2-2 단계;
    상기 생성한 혼합 임베딩 테이블이 포함하는 모든 아이템 각각에 대하여 상기 사용자 디바이스에 발송할 제N+1 임베딩 테이블에 포함시킬 아이템을 추출하는데 이용되는 중요도 점수를 손실값을 이용하여 산출하는 제2-3 단계;
    상기 산출한 중요도 점수가 높은 순서대로 상기 혼합 임베딩 테이블이 포함하는 모든 아이템을 정렬하는 제2-4 단계; 및
    상기 중요도 점수가 높은 순서대로 정렬한 혼합 임베딩 테이블 상에서 상위 K개의 아이템을 추출하고, 이를 포함하는 제N+1 임베딩 테이블을 상기 사용자 디바이스에 발송하는 제2-5 단계;
    를 포함하는 사용자 디바이스를 위한 임베딩 테이블 크기를 조절하는 방법.
  7. 제6항에 있어서,
    상기 제2-3 단계는,
    상기 혼합 임베딩 테이블이 포함하는 모든 아이템 각각에 대한 손실값을 산정하는 제2-3-1 단계;
    상기 혼합 임베딩 테이블이 포함하는 모든 아이템 각각에 대한 손실값을 합산하여 혼합 임베딩 테이블에 대한 손실값을 산정하는 제2-3-2 단계;
    상기 혼합 임베딩 테이블이 포함하는 각각의 아이템에 대한 가중치값을 제외시킨 부분 혼합 임베딩 테이블을 상기 혼합 임베딩 테이블이 포함하는 각각의 아이템의 개수만큼 생성하고, 각각의 혼합 임베딩 테이블 자체에 대한 손실값을 산정하는 제2-3-3 단계; 및
    상기 산정한 혼합 임베딩 테이블 자체에 대한 손실값에서 상기 각각의 혼합 임베딩 테이블에 대한 손실값을 각각 차감하여 상기 혼합 임베딩 테이블이 포함하는 모든 아이템 각각에 대한 중요도 점수를 산출하는 제2-3-4 단계;
    를 포함하는 사용자 디바이스를 위한 임베딩 테이블 크기를 조절하는 방법.
  8. 제1항에 있어서,
    상기 특정 서비스는,
    사용자 선호도를 반영한 콘텐츠 추천 기능을 제공하는 특정 온라인 플랫폼인,
    사용자 디바이스를 위한 임베딩 테이블 크기를 조절하는 방법.
  9. 사용자 디바이스를 위한 임베딩 테이블 크기를 조절하는 장치 - 상기 임베딩 테이블은 포함하고 있는 모든 아이템 각각에 대한 가중치값이 부여되어 있으며, 상기 장치는 하나 이상의 특정 서비스에 대한 모든 아이템을 포함하는 임베딩 테이블을 포함하고 있음 - 는,
    하나 이상의 프로세서;
    네트워크 인터페이스;
    상기 프로세서에 의해 수행되는 컴퓨터 프로그램을 로드(Load)하는 메모리; 및
    대용량 네트워크 데이터 및 상기 컴퓨터 프로그램을 저장하는 스토리지를 포함하되,
    상기 컴퓨터 프로그램은 상기 하나 이상의 프로세서에 의해,
    (A) 상기 사용자 디바이스의 메모리 용량 정보에 따른 초기 설정값 개수인 k(k는 양의 정수)개 만큼의 아이템을 포함하는 제1 임베딩 테이블을 상기 사용자 디바이스에 발송하고, 소정의 처리를 진행하여 상기 사용자 디바이스가 포함하는 추천 모델의 구동에 대한 허용 기준을 만족하는 제N(N은 양의 정수) 임베딩 테이블이 포함하는 아이템의 개수인 K(K는 양의 정수)를 결정하는 제1 오퍼레이션; 및
    (B) 상기 결정한 K에 따라 상기 사용자 디바이스에 발송한 K개의 아이템을 포함하는 제N 임베딩 테이블에 대하여 상기 추천 모델의 학습에 의해 갱신된 상기 K개의 아이템에 대한 가중치값을 포함하는 제N′ 임베딩 테이블을 수신하고, 소정의 처리를 진행하여 재선정한 K개의 아이템을 포함하는 제N+1 임베딩 테이블을 상기 사용자 디바이스에 발송하는 제2 오퍼레이션;
    을 실행하며,
    상기 제1 임베딩 테이블과 제N+1 임베딩 테이블의 크기는 상이한,
    사용자 디바이스를 위한 임베딩 테이블 크기를 조절하는 장치에 있어서,
    상기 제1 오퍼레이션은,
    상기 사용자 디바이스로부터 메모리 용량 정보를 수신하는 제1-1 오퍼레이션;
    상기 수신한 메모리 용량 정보에 따른 초기 설정값 개수 k개 만큼의 아이템을 포함하는 제1 임베딩 테이블을 상기 사용자 디바이스에 발송하는 1-2 오퍼레이션;
    상기 추천 모델이 상기 수신한 제1 임베딩 테이블이 허용 기준을 만족하는지 판단한 결과가 NO인 경우, 상기 제1 임베딩 테이블의 크기가 소정 크기 만큼 줄어들 수 있도록 상기 k를 재설정하는 제1-3 오퍼레이션;
    상기 재설정한 k를 아이템의 개수로 포함하는 제2 임베딩 테이블을 상기 사용자 디바이스에 재발송하는 제1-4 오퍼레이션; 및
    상기 추천 모델이 상기 수신한 제2 임베딩 테이블이 허용 기준을 만족하는지 판단한 결과가 YES인 경우, 상기 제2 임베딩 테이블에 대하여 재설정한 k를 상기 사용자 디바이스에 대한 K로 결정하는 제1-5 오퍼레이션;
    을 포함하며,
    상기 추천 모델이 상기 사용자 디바이스의 메모리 용량에 기초하여 상기 제1 임베딩 테이블을 정상적으로 구동할 수 있는지 여부에 대한 제1 허용 기준 및 상기 추천 모델이 특정 서비스에 대하여 상기 제1 임베딩 테이블을 구동하는 경우 소요되는 시간이 상기 특정 서비스가 추구하는 시간 기준을 만족하는지 여부에 대한 제2 허용 기준 중 어느 하나 이상을 포함하는,
    사용자 디바이스를 위한 임베딩 테이블 크기를 조절하는 장치.
  10. 컴퓨터로 판독 가능한 매체에 저장된 컴퓨터 프로그램이 컴퓨팅 장치와 결합하여 사용자 디바이스를 위한 임베딩 테이블 크기를 조절 - 상기 임베딩 테이블은 포함하고 있는 모든 아이템 각각에 대한 가중치값이 부여되어 있으며, 상기 컴퓨터 프로그램은 하나 이상의 특정 서비스에 대한 모든 아이템을 포함하는 임베딩 테이블을 포함하고 있음 - 하는 방법에 있어서, 상기 컴퓨터로 판독 가능한 매체에 저장된 컴퓨터 프로그램은,
    (AA) 상기 사용자 디바이스의 메모리 용량 정보에 따른 초기 설정값 개수인 k(k는 양의 정수)개 만큼의 아이템을 포함하는 제1 임베딩 테이블을 상기 사용자 디바이스에 발송하고, 소정의 처리를 진행하여 상기 사용자 디바이스가 포함하는 추천 모델의 구동에 대한 허용 기준을 만족하는 제N(N은 양의 정수) 임베딩 테이블이 포함하는 아이템의 개수인 K(K는 양의 정수)를 결정하는 제1 단계; 및
    (BB) 상기 결정한 K에 따라 상기 사용자 디바이스에 발송한 K개의 아이템을 포함하는 제N 임베딩 테이블에 대하여 상기 추천 모델의 학습에 의해 갱신된 상기 K개의 아이템에 대한 가중치값을 포함하는 제N′ 임베딩 테이블을 수신하고, 소정의 처리를 진행하여 재선정한 K개의 아이템을 포함하는 제N+1 임베딩 테이블을 상기 사용자 디바이스에 발송하는 제2 단계;
    를 실행하며,
    상기 제1 임베딩 테이블과 제N+1 임베딩 테이블의 크기는 상이한,
    컴퓨터로 판독 가능한 매체에 저장된 컴퓨터 프로그램에 있어서,
    상기 제1 단계는,
    상기 사용자 디바이스로부터 메모리 용량 정보를 수신하는 제1-1 단계;
    상기 수신한 메모리 용량 정보에 따른 초기 설정값 개수 k개 만큼의 아이템을 포함하는 제1 임베딩 테이블을 상기 사용자 디바이스에 발송하는 1-2 단계;
    상기 추천 모델이 상기 수신한 제1 임베딩 테이블이 허용 기준을 만족하는지 판단한 결과가 NO인 경우, 상기 제1 임베딩 테이블의 크기가 소정 크기 만큼 줄어들 수 있도록 상기 k를 재설정하는 제1-3 단계;
    상기 재설정한 k를 아이템의 개수로 포함하는 제2 임베딩 테이블을 상기 사용자 디바이스에 재발송하는 제1-4 단계; 및
    상기 추천 모델이 상기 수신한 제2 임베딩 테이블이 허용 기준을 만족하는지 판단한 결과가 YES인 경우, 상기 제2 임베딩 테이블에 대하여 재설정한 k를 상기 사용자 디바이스에 대한 K로 결정하는 제1-5 단계;
    를 포함하며,
    상기 추천 모델이 상기 사용자 디바이스의 메모리 용량에 기초하여 상기 제1 임베딩 테이블을 정상적으로 구동할 수 있는지 여부에 대한 제1 허용 기준 및 상기 추천 모델이 특정 서비스에 대하여 상기 제1 임베딩 테이블을 구동하는 경우 소요되는 시간이 상기 특정 서비스가 추구하는 시간 기준을 만족하는지 여부에 대한 제2 허용 기준 중 어느 하나 이상을 포함하는,
    컴퓨터로 판독 가능한 매체에 저장된 컴퓨터 프로그램.
KR1020220177168A 2022-12-16 2022-12-16 사용자 디바이스를 위한 임베딩 테이블 크기를 조절하는 방법 및 이를 위한 장치 KR102593134B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220177168A KR102593134B1 (ko) 2022-12-16 2022-12-16 사용자 디바이스를 위한 임베딩 테이블 크기를 조절하는 방법 및 이를 위한 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220177168A KR102593134B1 (ko) 2022-12-16 2022-12-16 사용자 디바이스를 위한 임베딩 테이블 크기를 조절하는 방법 및 이를 위한 장치

Publications (1)

Publication Number Publication Date
KR102593134B1 true KR102593134B1 (ko) 2023-10-24

Family

ID=88515039

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220177168A KR102593134B1 (ko) 2022-12-16 2022-12-16 사용자 디바이스를 위한 임베딩 테이블 크기를 조절하는 방법 및 이를 위한 장치

Country Status (1)

Country Link
KR (1) KR102593134B1 (ko)

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103530304A (zh) * 2013-05-10 2014-01-22 Tcl集团股份有限公司 基于自适应分布式计算的在线推荐方法、系统和移动终端
KR20210018384A (ko) 2019-08-08 2021-02-17 네이버 주식회사 개인화 컨텐츠 추천을 위한 실시간 그래프기반 임베딩 구축 방법 및 시스템
KR20210086008A (ko) * 2019-12-31 2021-07-08 삼성전자주식회사 컨텐츠 추천 모델을 개인화하는 방법 및 장치
US20210264220A1 (en) * 2020-02-21 2021-08-26 Alibaba Group Holding Limited Method and system for updating embedding tables for machine learning models
KR20220032805A (ko) * 2020-09-08 2022-03-15 연세대학교 산학협력단 메모리 관리 장치 및 방법
KR20220064833A (ko) * 2020-11-12 2022-05-19 주식회사 엔씨소프트 아이템 임베딩 장치 및 방법
KR20220075602A (ko) * 2020-11-30 2022-06-08 연세대학교 산학협력단 네트워크 임베딩을 이용한 다양성 강화 추천 장치 및 방법
KR20220087922A (ko) * 2020-12-18 2022-06-27 에스케이하이닉스 주식회사 메모리 시스템 및 그 동작 방법
KR102413588B1 (ko) * 2021-11-15 2022-06-27 주식회사 테스트웍스 학습 데이터에 따른 객체 인식 모델 추천 방법, 시스템 및 컴퓨터 프로그램
KR20220132950A (ko) * 2021-03-24 2022-10-04 한국전자통신연구원 혼합 샘플링 기반 학습 데이터 유형 분류 성능 개선 방법 및 장치
KR20220145656A (ko) * 2021-04-22 2022-10-31 에스케이하이닉스 주식회사 호스트 및 이를 포함하는 컴퓨팅 시스템
KR20220151521A (ko) * 2021-05-06 2022-11-15 네이버 주식회사 임베딩 유사도에 기반한 상품 검색 방법, 컴퓨터 장치, 및 컴퓨터 프로그램

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103530304A (zh) * 2013-05-10 2014-01-22 Tcl集团股份有限公司 基于自适应分布式计算的在线推荐方法、系统和移动终端
KR20210018384A (ko) 2019-08-08 2021-02-17 네이버 주식회사 개인화 컨텐츠 추천을 위한 실시간 그래프기반 임베딩 구축 방법 및 시스템
KR20210086008A (ko) * 2019-12-31 2021-07-08 삼성전자주식회사 컨텐츠 추천 모델을 개인화하는 방법 및 장치
US20210264220A1 (en) * 2020-02-21 2021-08-26 Alibaba Group Holding Limited Method and system for updating embedding tables for machine learning models
KR20220032805A (ko) * 2020-09-08 2022-03-15 연세대학교 산학협력단 메모리 관리 장치 및 방법
KR20220064833A (ko) * 2020-11-12 2022-05-19 주식회사 엔씨소프트 아이템 임베딩 장치 및 방법
KR20220075602A (ko) * 2020-11-30 2022-06-08 연세대학교 산학협력단 네트워크 임베딩을 이용한 다양성 강화 추천 장치 및 방법
KR20220087922A (ko) * 2020-12-18 2022-06-27 에스케이하이닉스 주식회사 메모리 시스템 및 그 동작 방법
KR20220132950A (ko) * 2021-03-24 2022-10-04 한국전자통신연구원 혼합 샘플링 기반 학습 데이터 유형 분류 성능 개선 방법 및 장치
KR20220145656A (ko) * 2021-04-22 2022-10-31 에스케이하이닉스 주식회사 호스트 및 이를 포함하는 컴퓨팅 시스템
KR20220151521A (ko) * 2021-05-06 2022-11-15 네이버 주식회사 임베딩 유사도에 기반한 상품 검색 방법, 컴퓨터 장치, 및 컴퓨터 프로그램
KR102413588B1 (ko) * 2021-11-15 2022-06-27 주식회사 테스트웍스 학습 데이터에 따른 객체 인식 모델 추천 방법, 시스템 및 컴퓨터 프로그램

Similar Documents

Publication Publication Date Title
US10504024B2 (en) Normalization of predictive model scores
US10896061B2 (en) Burst throttling for multi-tenant storage services
US20220300177A1 (en) Configurable machine learning systems through graphical user interfaces
US8843427B1 (en) Predictive modeling accuracy
US20190102695A1 (en) Generating machine learning systems using slave server computers
US8489632B1 (en) Predictive model training management
US20190095785A1 (en) Dynamic tuning of training parameters for machine learning algorithms
US9400840B2 (en) Combining topic suggestions from different topic sources to assign to textual data items
US20140046880A1 (en) Dynamic Predictive Modeling Platform
EP2668545A1 (en) Dynamic predictive modeling platform
US9697028B1 (en) Directed placement for request instances
EP2865167B1 (en) User-specific roaming settings
US20230096647A1 (en) Management of indexed data to improve content retrieval processing
JPWO2020026741A1 (ja) 情報処理方法、情報処理装置及び情報処理プログラム
US20150095321A1 (en) Systems and methods for determining application installation likelihood based on probabilistic combination of subordinate methods
US10320698B1 (en) Determining network connectivity for placement decisions
US11853692B1 (en) Performing server-side and client-side operations on spreadsheets
CN109902850B (zh) 确定库存控制策略的方法、装置及存储介质
US10678800B2 (en) Recommendation prediction based on preference elicitation
KR102593134B1 (ko) 사용자 디바이스를 위한 임베딩 테이블 크기를 조절하는 방법 및 이를 위한 장치
US9998392B1 (en) Iterative network graph placement
US11100158B1 (en) Fast feature selection for search models
US20170132590A1 (en) Systems and methods for providing online access to resources
US20200137195A1 (en) Techniques and architectures for managing operation flow in a complex computing environment
US11023440B1 (en) Scalable distributed data processing and indexing

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant