Code Monkey home page Code Monkey logo

news_recommend's Introduction

HI there! :D

news_recommend's People

Contributors

dudnwjs avatar in1004kyu avatar simonkim avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

news_recommend's Issues

PDVL Implementation

  • Include (upload) source code in the repository
  • describe how to test
  • describe where PDVL is located in the repository

GTT Implementation

  • Include(upload) source code in the repository
  • describe how to test
  • describe where GTT is located in the repository

형준 - 카테고리 1와 2의 차이

카테고리를 하나로 했을 경우 score를 임의로 정한 threshold와 비교를 해서 recommend 유무를 판단해야하는데 threshold의 조정이 이슈가 됩니다.

카테고리를 둘로 하면 like pvl, unlike pvl에 대해 계산하여 값을 구분해 판단할 수 있습니다. 판단은 쉬워지지만 좋아하는거 외엔 전부 싫어하는게 되버려 recommend를 하기 위해선 상당히 많은 training 문서가 필요하게 됩니다.
또한 카테고리를 둘로 했을 경우 pvl을 like와 unlike로 구분하기 위해 like pvl, unlike pvl 두개를 관리하거나 vector 구조체에 flag 값을 추가해서 해당 단어가 like인지 unlike인지 구분을 해야합니다.

구현상에 큰 어려움은 없지만 간단함을 따지면 카테고리 1인게 간단하긴 합니다. 하지만 threshold를 어떻게 잡아야 할지 모르겠고, 이렇게 하는게 맞는지도 모르겠습니다ㅋ
일단 카테고리가 하나와 둘에 대한 버전을 만들어 놓겠습니다.

case : category 1일때
float nve(struct vector_list* dvl, struct vector_list* pdvl);
struct vector{
int id;
int count;
};
struct vector_list{
int length;
struct vector* vector;
};

case : category 2일때
여기선 리턴 값 자체가 추천을 결정하게 됩니다.

define LIKE 1

define UNLIKE 0

int nve(struct vector_list* dvl, struct vector_list* pdvl);
struct vector{
int id;
int count;
int preference; //like, unlike 카테고리 구별을 위한 flag
};
struct vector_list{
int length;
struct vector* vector;
};

NVE CUDA Kernel Implementation

extend NVE CUDA (nvemuldiv/) Module to include the implementation of CUDA Kernel so we can call it instead of Thrust based implementation ( nvemuldiv_cuda_thrust() )

Evaluation Daemon Runtime Environment Design

Define Evaluation Daemon Runtime Environment, such as

  • Input File/Directory Organization: name, directory
  • Output File/Directory Organization:
  • Input Data Format: USER_ID, DOC_SIGNATURE, TEXT
  • Output Data Format: USER_ID, DOC_SIGNATURE, SCORE
  • PDVL File/Directory Organization

Also, Write a Dummy Program that Simulates,

  • Input Data Processing: From Directory/File
  • Dummy D2V: Text Input, Document Vector Output
  • Dummy PDVL: PDVL Input
  • Dummy NVE: Document Vector and PDVL Input, Score Output
  • Output Data Processing: To Directory/File

The Dummy Program and Runtime Environment can be used to,

  • Identify Possible Parallelization Points
  • Estimate I/O Overhead
  • Verify the API Designs of D2V, PDVL, and NVE Modules

Design Result:

  • Documents/Evaluation_Daemon_Runtime_Environment_Design.md
  • runtime_env/ : runtime directory structure structure
  • evaluation_daemon_dummy/ : source code of the evaluation daemon dummy program

NVE Module Implementation

Once #4 (NVE API Design) is done, with resulting documents and header files, start implementation of NVE module

D2V Implementation

  • Include (upload) source code in the repository
  • describe how to test
  • describe where D2V is located in the repository

Implement Evaluation Daemon

https://github.com/in1004kyu/news_recommend/tree/master/runtime 를 참고하여
https://github.com/in1004kyu/news_recommend/tree/master/src/evald 에 Evaluation Daemon을 구현 하시요.

  • 구체적으로 뭘 해야 되는지 알겠으면 알겠다고 아래에 댓글로 답변 하시요
  • 구체적으로 뭘 해야 되는지 모르겠거나 명확치 않은 부분이 있으면 아래에 댓글로 질문 하시요
  • 제발 위에 써진 글을 또박 또박 읽어 보시요

NVE API Design

To 인규,
Write NVE API Design Document

  • Data Type
  • Function Prototypes including return and arguments types

연산 결과값인 score를 가지고 어떻게 판단을 할까요??

카테고리를 하나로 했을 경우 score를 임의로 정한 threshold와 비교를 해서 recommend 유무를 판단해야하는데 threshold의 조정이 이슈가 됩니다.

카테고리를 둘로 하면 like pvl, unlike pvl에 대해 계산하여 값을 구분해 판단할 수 있습니다. 판단은 쉬워지지만 좋아하는거 외엔 전부 싫어하는게 되버려 recommend를 하기 위해선 상당히 많은 training 문서가 필요하게 됩니다.
또한 카테고리를 둘로 했을 경우 pvl을 like와 unlike로 구분하기 위해 like pvl, unlike pvl 두개를 관리하거나 vector 구조체에 flag 값을 추가해서 해당 단어가 like인지 unlike인지 구분을 해야합니다.

구현상에 큰 어려움은 없지만 간단함을 따지면 카테고리 1인게 간단하긴 합니다. 하지만 threshold를 어떻게 잡아야 할지 모르겠고, 이렇게 하는게 맞는지도 모르겠습니다ㅋ
일단 카테고리가 하나와 둘에 대한 버전을 만들어 놓겠습니다.

case : category 1일때
float nve(struct vector_list* dvl, struct vector_list* pdvl);
struct vector{
int id;
int count;
};
struct vector_list{
int length;
struct vector* vector;
};

case : category 2일때
여기선 리턴 값 자체가 추천을 결정하게 됩니다.

define LIKE 1

define UNLIKE 0

int nve(struct vector_list* dvl, struct vector_list* pdvl);
struct vector{
int id;
int count;
int preference; //like, unlike 카테고리 구별을 위한 flag
};
struct vector_list{
int length;
struct vector* vector;
};

PDVL API Design

To 형준,
Write PDVL API Design Document

  • Data Type
  • Function Prototypes including return and arguments types

Implement Trainer Daemon

https://github.com/in1004kyu/news_recommend/tree/master/runtime 를 참고하여
https://github.com/in1004kyu/news_recommend/tree/master/src/traind 에 Trainer Daemon을 구현 하시요.

  • 구체적으로 뭘 해야 되는지 알겠으면 알겠다고 아래에 댓글로 답변 하시요
  • 구체적으로 뭘 해야 되는지 모르겠거나 명확치 않은 부분이 있으면 아래에 댓글로 질문 하시요
  • 제발 위에 써진 글을 또박 또박 읽어 보시요!!!

Makefile tree

Support make command at the root of the source tree
$ make

Expected files are
(src)/Makefile
(src)/nve/Makefile
(src)/gtt/Makefile
(src)/pdvl/Makefile
(src)/d2v/Makefile
(src)/nvemuldiv/Makefile

D2V API Design

To 형준,
Write D2V API Design Document

  • Data Type
  • Function Prototypes including return and arguments types

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.