CINXE.COM

<!DOCTYPE html> <html lang="ko"> <head> <meta charset="utf-8"> <title id="browserTitleArea">알고리즘 안내 : 네이버 뉴스 </title> <meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0,user-scalable=no"> <link rel="shortcut icon" type="image/x-icon" href="https://mimgnews.pstatic.net/image/news/m/2023/favicon/favicon.ico" /> <script> function isMobileDevice() { return /^.*(iPhone|iPod|iPad|Android).*/.test(navigator.userAgent); } </script> <script> (function () { try { if (isMobileDevice() && isAbleApplyPrefersColorScheme()) { document.querySelector("html").classList.add("DARK_THEME"); } } catch(e) {} function isAbleApplyPrefersColorScheme() { if (window.matchMedia("(prefers-color-scheme)").matches === false) { return false; } var userAgent = navigator.userAgent; if (userAgent.indexOf("NAVER") > -1) { if (/.*NAVER\([a-zA-Z]*;\s[a-zA-Z]*;\s([0-9]*);/.test(userAgent)) { return Number(RegExp.$1) >= 1000; } } else { return document.cookie.indexOf("NSCS=1") > -1; } return false; } })(); </script> <meta property="og:title" content="뉴스 AI 알고리즘 안내"/> <meta property="og:type" content="website"/> <meta property="og:url" content="https://media.naver.com/algorithm"/> <meta property="og:image" content="https://mimgnews.pstatic.net/image/news/ogtag/navernews_algorithm_20230626.png"/> <meta property="og:article:author" content="네이버 뉴스"/> <meta property="og:description" content="추천 알고리즘에 대해 자세히 설명드립니다"/> <meta name="twitter:card" content="summary"> <meta name="twitter:title" content="뉴스 AI 알고리즘 안내"> <meta name="twitter:site" content="네이버 뉴스"> <meta name="twitter:creator" content="네이버 뉴스"> <meta name="twitter:image" content="https://mimgnews.pstatic.net/image/news/ogtag/navernews_algorithm_20230626.png"> <meta name="twitter:description" content="추천 알고리즘에 대해 자세히 설명드립니다"> <script> var g_ssc = 'news.v3_algo' || null; </script> <link rel="stylesheet" type="text/css" href="https://ssl.pstatic.net/static.news/mnews/resources/20250123_012152/css/generated/other.css" /> <script> document.documentElement.setAttribute('data-useragent', navigator.userAgent); function showNoImage(elImg, type) { switch (type) { case "remove": try { elImg.parentNode.removeChild(elImg); } catch(e) {} break; case "removeParent": try { elImg.parentNode.outerHTML = ''; } catch(e) {} break; case "alt": elImg.outerHTML = ('<span class="noimage_text {imgClassName}">' + (elImg.alt || "") + '</span>') .replace('{imgClassName}', elImg.className); break; case "class" : var outerHTMLSource = Number(elImg.getAttribute("height")) > 0? '<span class="noimage_wrap {imgClassName}" style="height:' + elImg.getAttribute("height") + 'px;"><span class="noimage"></span></span>': '<span class="noimage_wrap {imgClassName}"><span class="noimage"></span></span>'; elImg.outerHTML = outerHTMLSource.replace('{imgClassName}', elImg.className); break; case "pressname" : var pressname = elImg.getAttribute("data-pressname"); elImg.outerHTML = '<span class="cjs_broadcast_noimg"><span class="noimg_text">' + pressname + '</span></span>'; break; case "noHeight": elImg.outerHTML = '<span class="noimage_wrap"><span class="noimage"></span></span>'; break; default: elImg.outerHTML = Number(elImg.getAttribute("height")) > 0? '<span class="noimage_wrap" style="height:' + elImg.getAttribute("height") + 'px;"><span class="noimage"></span></span>': '<span class="noimage_wrap"><span class="noimage"></span></span>'; } } function doAfterLoadEnd(callback, callbackOnPersisted) { var eventName = "onpageshow" in window ? "pageshow" : "load"; callback = callback || function(){}; callbackOnPersisted = callbackOnPersisted || function(){}; window.addEventListener(eventName, function(e) { try{ if(Boolean(e.persisted)){ callbackOnPersisted(); return; } }catch(e){} callback(); }); } </script> </head> <body> <section class="algorithm_header _algorithm_header"> <header role="banner"> <div class="algo_header"> <div class="algorithm_header_inner"> <h1 class="algorithm_header_title"> <a href="https://www.naver.com" class="algorithm_header_logo" onclick="nclk(event,'sta.naver','','');"> <span class="blind">NAVER</span> </a> <a href="https://m.news.naver.com" data-mpurl='{"m":"https://m.news.naver.com","p":"https://news.naver.com"}' class="algorithm_header_news" onclick="nclk(event,'sta.news','','');"> <span class="blind">뉴스</span> </a> </h1> <h2 class="algorithm_header_service_title">네이버 뉴스<br>AI 알고리즘 안내</h2> <p class="algorithm_hedaer_service_desc _algorithm_hedaer_service_desc">네이버뉴스 추천 알고리즘에 대해 자세히 설명드립니다.</p> <div class="algorithm_lnb _algorithm_lnb"> <div class="algorithm_lnb_menu _algorithm_lnb_menu"> <div class="algorithm_lnb_inner _scroll"> <ul class="algorithm_lnb_list _algorithm_lnb_list is_scroll" role="tablist"> <li class="algorithm_lnb_item _algorithm_lnb_item" role="tab" aria-selected="true" data-link="_tech" nclk="gnb.menu1"> <a href="javascript:;" class="algorithm_lnb_link"> <span class="algorithm_lnb_text" title="도입 배경">도입 배경</span> </a> </li> <li class="algorithm_lnb_item _algorithm_lnb_item" role="tab" aria-selected="false" data-link="_airs" nclk="gnb.menu2"> <a href="javascript:;" class="algorithm_lnb_link"> <span class="algorithm_lnb_text" title="AiRS 추천">AiRS 추천</span> </a> </li> <li class="algorithm_lnb_item _algorithm_lnb_item" role="tab" aria-selected="false" data-link="_feature" nclk="gnb.menu3"> <a href="javascript:;" class="algorithm_lnb_link"> <span class="algorithm_lnb_text" title="알고리즘 팩터">알고리즘 팩터</span> </a> </li> <li class="algorithm_lnb_item _algorithm_lnb_item" role="tab" aria-selected="false" data-link="_cluster" nclk="gnb.menu4"> <a href="javascript:;" class="algorithm_lnb_link"> <span class="algorithm_lnb_text" title="클러스터링">클러스터링</span> </a> </li> <li class="algorithm_lnb_item _algorithm_lnb_item" role="tab" aria-selected="false" data-link="_history" nclk="gnb.menu5"> <a href="javascript:;" class="algorithm_lnb_link"> <span class="algorithm_lnb_text" title="기술 고도화">기술 고도화</span> </a> </li> <li class="algorithm_lnb_item _algorithm_lnb_item" role="tab" aria-selected="false" data-link="_review" nclk="gnb.menu6"> <a href="javascript:;" class="algorithm_lnb_link"> <span class="algorithm_lnb_text" title="검토위 진행">검토위 진행</span> </a> </li> <li class="algorithm_lnb_item _algorithm_lnb_item" role="tab" aria-selected="false" data-link="_faq" nclk="gnb.menu7"> <a href="javascript:;" class="algorithm_lnb_link"> <span class="algorithm_lnb_text" title="FAQ">FAQ</span> </a> </li> </ul> </div> </div> </div> </div> </div> </header> </section> <hr> <div id="ct" role="main" class="algorithm_detail_wrap"> <div class="algorithm_detail"> <div class="algorithm_detail_tech _algorithm_detail _tech" style="display: block"> <section class="algorithm_detail_inner"> <h3 class="blind">도입 배경</h3> <div class="desc_section"> <strong class="sbj">AI 기술의 도입 배경</strong> <p>네이버뉴스는 한국에서 사용자 규모가 가장 큰 포털이 제공하는 온라인 뉴스 서비스입니다. 하루 1,300만여 명에 달하는 사용자가 네이버뉴스를 방문하며, 2만 5천여 건의 기사가 사용자에게 제공됩니다. 언론사가 제공하는 수많은 기사들 가운데, 네이버는 기존 수동 배열 방식으로 '모든 사용자에게, 관심 있는 주제와 취향에 부합하는 기사를 제공하는 것은 어렵다'고 봤습니다.</p> <p>당시 학계와 산업계에선 콘텐츠 추천 기술에 대한 여러 연구가 진행되고 있었습니다. 이런 추천 기술들은 사용자의 기사소비 이력과 제목, 본문 등 기사내용의 관계를 분석해 각 사용자가 관심을 가질 만한 기사를 예측하는 모델이 주를 이뤘습니다. 이런 기술이 가능하게 된 배경에는 스마트폰의 대중화로 접속 환경이 모바일로 변화, 로그인 사용자의 비율이 대폭 증가한 것을 우선 들 수 있습니다. 일상에서 스마트폰에 항상 노출된 사용자는 어플리케이션을 설치하고 로그인 상태로 서비스를 이용합니다. 자연스럽게 사용자의 기사소비 이력이 축적되고 이를 알고리즘 추천에 활용할 수 있게 됩니다. 또한 대용량 데이터를 빠르게 처리하는 빅데이터 기술과 머신러닝(machine learning), 딥러닝(deep learning) 같은 AI학습 기술의 비약적인 발전도 중요합니다.</p> <p>네이버 역시 환경의 변화와 기술의 발전이란 시대적 흐름 속에서, 언론사의 수많은 기사와 사용자가 남긴 로그데이터(Log Data)를 학습하는 인공지능 기술을 활용하게 됐습니다.</p> </div> <div class="desc_section"> <strong class="sbj">알고리즘 서비스 영역 소개</strong> <p>네이버는 2019년부터 자체 기사배열을 중단하고, 언론사가 직접 편집한 기사를 사용자가 선택하는 구독 기반의 서비스를 제공하고 있습니다. '언론사 편집(채널)'이라고 불리는 이 서비스는 <b>'생산자에게는 주요 기사의 편집권을, 사용자에게는 관심 있는 언론사의 선택권'</b>을 제공합니다. 다만, 사용자가 '언론사 편집' 모델만으로 네이버 내 다양한 형태의 기사를 모두 경험할 수 없기에, AI 알고리즘에 기반한 추천 서비스를 '언론사 편집' 모델의 보완으로 제공하고 있습니다.</p> <p>네이버가 사용하는 AI 알고리즘은 크게 <b>1. AiRS(AI Recommender System)</b>라는 개인화 추천과 <b>2. 뉴스 클러스터링(News Clustering)</b>이라는 기사의 그룹핑으로 구분할 수 있습니다. 각각의 기술들은 'MY뉴스(모바일 제공)'와 '섹션별 뉴스(모바일/PC 제공)' 영역에서 상호 보완적으로 작동하며, 사용자에게 양질의 기사를 제공합니다.</p> </div> <div class="tech_img_box"> <img src="https://ssl.pstatic.net/static.news/image/news/m/2023/06/15/algorithm_tech.png" alt="" class="light_type"> <img src="https://ssl.pstatic.net/static.news/image/news/m/2023/06/15/algorithm_tech_dark.png" alt="" class="dark_type"> </div> </section> </div> <div class="algorithm_detail_airs _algorithm_detail _airs" style="display: none"> <section class="algorithm_detail_inner"> <h3 class="blind">AiRS 추천</h3> <div class="desc_section"> <strong class="sbj">AiRS추천 설계 고려 사항</strong> <p>‘AiRS(AI Recommender System, 에어스)’는 네이버가 뉴스 추천을 목적으로 자체 개발한 AI 알고리즘으로, 공기(AIR)와 같이 항상 사용자 곁에서 유용한 콘텐츠를 추천하겠다는 의미를 가지고 있습니다. 에어스 알고리즘은 사용자가 관심을 갖고 볼만한 기사를 찾아줌으로써, 기사 소비의 편의성과 사용자 만족을 추구합니다. 이를 위해 아래의 사항을 설계 단계에서 주요하게 반영, 뉴스 서비스의 특성을 추천 과정에 담아냈습니다.</p> </div> <div class="airs_card1_wrap"> <div class="airs_card1"> <img src="https://ssl.pstatic.net/static.news/image/news/m/2023/06/15/algorithm_airs_card1-1.png" alt=""> <strong>실시간으로 사용자의<br>선호도를 예측할 것</strong> <p>매일 수만 건의 기사가 생산되는 뉴스 서비스의 특성을 감안, 사용자의 선호도를 즉각적으로 예측하는 추천 모델이 필요합니다.</p> </div> <div class="airs_card1"> <img src="https://ssl.pstatic.net/static.news/image/news/m/2023/06/15/algorithm_airs_card1-2.png" alt=""> <strong>자동화된 방식으로<br>뉴스 품질을 측정할 것</strong> <p>저품질의 기사가 추천되면, 사용자가 관심 있는 주제라도 만족도는 낮습니다. 따라서 유사한 내용의 기사라면 품질이 높은 기사가 사용자에게 추천돼야 하고, 이를 위한 정량화된 방식의 기사 품질 측정 과정이 필요합니다.</p> </div> <div class="airs_card1"> <img src="https://ssl.pstatic.net/static.news/image/news/m/2023/06/15/algorithm_airs_card1-3.png" alt=""> <strong>대다수 사용자에게 추천 가능한<br>주요 이슈를 감지할 것</strong> <p>매일 생산되는 수많은 기사 중에서 많은 언론사가 공통적으로 다루는 주제의 기사가 있습니다. 이런 기사는 사용자의 평소 선호와 무관하게, 모두가 관심을 가지는 '주요 이슈'로 볼 수 있습니다.</p> </div> </div> <div class="desc_section"> <p>알고리즘 설계 과정에 대해 보다 자세한 내용을 알고 싶으면, <a href="https://blog.naver.com/naver_search/222439351406" target="_blank">'네이버 검색&테크 블로그의 공식 게시물'</a>에서 확인할 수 있습니다. 이어지는 내용은 앞서 고려한 설계 요소들이 'CF, CBF, QE, SI (사용자/언론사)' 라는 이름의 추천 모델로 구현되어 어떻게 역할을 하는지 설명하겠습니다.</p> </div> </section> <section class="algorithm_detail as_point"> <div class="algorithm_detail_inner"> <div class="desc_section"> <strong>AiRS 알고리즘의 추천 과정</strong> </div> <div class="airs_card2_wrap"> <div class="airs_card2"> <div class="card_desc_section"> <strong><span class="step">STEP 1</span>로그인 사용자가 기사를 소비한다</strong> <p>네이버 뉴스에 접속한 사용자가 특정 기사를 읽으면, 해당 기사에 대한 소비 이력이 생성됩니다.</p> </div> <div class="img_box"> <img src="https://ssl.pstatic.net/static.news/image/news/m/2023/06/15/algorithm_airs_card2-1_m.png" alt="" class="light_type"> <img src="https://ssl.pstatic.net/static.news/image/news/m/2023/06/15/algorithm_airs_card2-1_m_dark.png" alt="" class="dark_type"> </div> </div> <div class="airs_card2"> <div class="card_desc_section"> <strong><span class="step">STEP 2</span>5개의 추천 모델로부터 기사 추천 후보군을 생성한다</strong> <p>'CF, CBF, QE, SI(사용자/언론사)' 5가지 모델이 사용자에게 추천할 기사 후보군을 생성합니다. 각, 모델을 설명하면, 우선 CF(Collaborative Filtering, 협업 필터) 모델은 나와 비슷한 관심사를 가진 사용자를 그룹으로 묶어냅니다. 그리고 그룹 내 인원들이 '함께 많이 본 기사'를 찾아, 해당 사용자가 선호할 것으로 예측된 기사를 추천합니다. CBF(Content-Based Filtering, 내용 기반 필터링) 모델은 딥러닝 기술인 셀프 어텐션 방식(Self-attention mechanism)을 활용합니다. 이용자가 과거 조회한 기사에서 등장한 단어와 그 기사의 중요도를 차별화하고, 중요도가 높은 단어나 관련성이 높은 기사를 선별합니다. QE(Quality Estimation, 품질 측정) 모델은 인공신경망(Neural Network)을 이용해 기사 내 정보량이 풍부하고 사용자 만족도가 높은 기사를 선별합니다. 기사 내 문서 피처(기사 제목, 본문, 이미지, 작성시간 등)와 사용자의 피드백 피처(기사 조회수, 체류시간 등)를 활용해 자동으로 기사의 품질을 판단합니다.<br>마지막으로 SI(Social Impact, 사회적 영향도) 모델은 단기간에 급부상한 사회적 이슈를 찾아냅니다. 이를 위해 뉴스 소비자(단기간에 다수가 특정 이슈를 집중 소비)와 뉴스 공급자(단기간에 언론사가 특정 이슈를 기사화) 관점에서 소셜 임팩트 지수라는 지표를 개발, 사회적 이슈를 감지하고 사용자에게 추천할 기사 후보군을 생성합니다.</p> </div> <div class="img_box _img_box_330" style="padding-right: 10px;"> <img src="https://ssl.pstatic.net/static.news/image/news/m/2023/08/14/algorithm_airs_card2-2_m.png" alt="" class="light_type"> <img src="https://ssl.pstatic.net/static.news/image/news/m/2023/08/14/algorithm_airs_card2-2_m_dark.png" alt="" class="dark_type"> </div> </div> <div class="airs_card2"> <div class="card_desc_section"> <strong><span class="step">STEP 3</span>생성된 후보군 중에서 다양한 피처를 반영해 기사 간 랭킹을 매긴다.</strong> <p>형성된 기사 후보군에 개인화 피처(NPMI, 언론사, 키워드, 섹션, 기자구독 여부, 선호하는 주제, 숨김 언론사)와 비개인화 피처(최신성, 품질, 인기, 클러스터, 소셜임팩트, 지면 위치, 심층기획 기사, 노출 균형)로 사용자의 선호도를 예측하고 추천 점수와 랭킹을 매깁니다.</p> </div> <div class="img_box _img_box_350"> <img src="https://ssl.pstatic.net/static.news/image/news/m/2023/08/14/algorithm_airs_card2-3_m.png" alt="" class="light_type"> <img src="https://ssl.pstatic.net/static.news/image/news/m/2023/08/14/algorithm_airs_card2-3_m_dark.png" alt="" class="dark_type"> </div> </div> <div class="airs_card2"> <div class="card_desc_section"> <strong><span class="step">STEP 4</span>서비스 화면에 사용자 별로 뉴스를 추천한다</strong> <p>최종 단계에서는 AiRS 추천뉴스라는 이름으로 이하의 서비스 영역(모바일 MY뉴스, PC/모바일 섹션홈 뉴스, PC우측 분야별 주요뉴스, 모바일 기사본문 '함께 볼만한 뉴스' 등)에서 사용자에게 제공됩니다.</p> </div> <div class="img_box _img_box_350"> <img src="https://ssl.pstatic.net/static.news/image/news/m/2023/06/15/algorithm_airs_card2-4_m.png" alt="" class="light_type"> <img src="https://ssl.pstatic.net/static.news/image/news/m/2023/06/15/algorithm_airs_card2-4_m_dark.png" alt="" class="dark_type"> </div> </div> </div> </div> </section> </div> <div class="algorithm_detail_feature _algorithm_detail _feature" style="display: none"> <section class="algorithm_detail_inner"> <h3 class="blind">알고리즘 팩터</h3> <div class="desc_section"> <strong>AiRS 알고리즘 19개 주요 팩터</strong> <p>앞서 AiRS 추천 과정에 대해 전체적으로 설명드렸지만, 추천에 영향을 미치는 팩터(학술 용어로 피처) 항목에 대해선 많은 분들이 궁금해하셨습니다. 이에 사용자 여러분의 이해를 돕고자, 개인화와 비개인화를 기준으로 각 피처들이 무엇을 의미하는지 정리했습니다. 보다 세부적인 내용은 <a href="https://blog.naver.com/naver_search/222439504418" target="_blank">'네이버 검색&테크 블로그의 공식 게시물'</a>에서도 확인할 수 있습니다.</p> </div> <div class="airs_table_section"> <div class="airs_table_title is_view_m"> <strong class="model">모델/피처</strong> <strong>설명</strong> </div> <div class="airs_table_title is_view_pc"> <strong class="model">추천모델</strong> <strong class="feature_text">피처(Feature)</strong> <strong>설명</strong> </div> <div class="airs_table"> <strong><span>개인화 </span>(CF모델)</strong> <div class="airs_desc"> <div class="desc"> <div class="feature"> <i>1</i> <strong>NPMI(Normalized Point-wise Mutual Information) 점수</strong> </div> <div class="text"> 협업 필터(Collaborative Filtering) 알고리즘의 하나인 NPMI 모델을 활용합니다. 사용자가 '최근 클릭한 기사'들과 '함께 많이 클릭되는 기사'들을 후보로 추출하고 추천 점수를 부여합니다. <ul> <li>두 개의 서로 다른 기사에 대해, 많은 사용자가 두 기사를 함께 읽을수록 상호간 더 높은 NPMI 점수를 갖게 됩니다.</li> <li>사용자가 클릭한 n개의 기사가 있을 때, 각 기사별로 NPMI 점수가 높은 최대 m개의 후보를 추출합니다. 따라서 최대 n X m개의 추천기사 후보의 추출이 가능합니다.</li> </ul> </div> </div> <div class="desc"> <div class="feature"> <i>2</i> <strong>NRMS(Neural news Recommendation with Multi-head Self-attention)</strong> </div> <div class="text"> 내용 기반 필터링(Content-Based Filtering) 알고리즘의 하나인 NRMS 모델을 활용합니다. 기사 내 단어의 중요도와 단어 사이의 관계를 분석하고, 주요 주제를 추론합니다. 이를 바탕으로 사용자가 읽은 기사에서 ‘사용자의 선호도를 나타내는 중요 뉴스’가 무엇인지 추론합니다. <ul> <li>NRMS 점수는 '학습된 기사/유저 벡터'에 대해 벡터 내적 연산을 적용, 사용자 벡터와 뉴스 벡터 사이의 유사도를 계산합니다. 즉, 유사도 점수가 높을수록 사용자의 해당 기사에 대한 예상 선호도가 높다는 의미입니다.</li> </ul> </div> </div> </div> </div> <div class="airs_table"> <strong>개인화</strong> <div class="airs_desc"> <div class="desc"> <div class="feature"> <i>3</i> <strong>섹션 선호도</strong> </div> <div class="text">사용자의 뉴스 섹션에 대한 선호도 : 사용자가 최근에 해당 섹션의 기사를 많이 클릭할수록 더 높은 값을 부여합니다.</div> </div> <div class="desc"> <div class="feature"> <i>4</i> <strong>언론사 선호도</strong> </div> <div class="text">사용자의 언론사에 대한 선호도 : 사용자가 최근에 해당 언론사의 기사를 많이 클릭할수록 더 높은 값을 갖게 됩니다.</div> </div> <div class="desc"> <div class="feature"> <i>5</i> <strong><span>제목 키워드 </span>선호도</strong> </div> <div class="text"> 클릭한 기사의 제목에 존재하는 키워드에 대한 선호도 <ul> <li>키워드가 포함된 기사를 자주 클릭할수록, 선호도가 증가합니다.</li> <li>키워드가 전체 기사에서 드물게 등장하는 키워드일수록, 선호도의 클릭당 증가폭이 커집니다.</li> </ul> </div> </div> <div class="desc"> <div class="feature"> <i>6</i> <strong>엔터티(Entity) 키워드 선호도</strong> </div> <div class="text"> 클릭한 기사의 '제목+본문'에서 추출한 엔터티 키워드에 대한 선호도 : 엔터티 키워드가 포함된 기사를 자주 클릭할수록 선호도가 증가합니다. <ul> <li>엔터티(Entity)는 사람, 장소, 물건, 사건, 개념 등의 변별할 수 있는 사물이나 객체를 가리킴</li> </ul> </div> </div> <div class="desc"> <div class="feature"> <i>7</i> <strong>기자 구독 여부</strong> </div> <div class="text">기자 구독 여부 : 구독한 기자의 기사인 경우에 가산점을 부여합니다.</div> </div> <div class="desc"> <div class="feature"> <i>8</i> <strong><span>언론사 구독 </span>여부</strong> </div> <div class="text">언론사 구독 여부 : 구독한 언론사의 기사인 경우에 가산점을 부여합니다.</div> </div> <div class="desc"> <div class="feature"> <i>9</i> <strong>숨김 언론사</strong> </div> <div class="text">사용자가 숨김 설정한 언론사의 기사는 후순위로 추천됩니다.</div> </div> </div> </div> <div class="airs_table is_boldb"> <strong><span>비개인화 </span>(QE 모델)</strong> <div class="airs_desc"> <div class="desc"> <div class="feature"> <i>10</i> <strong>기사 품질 점수</strong> </div> <div class="text">QE 모델을 통해, 자동으로 예측한 기사 품질 점수 : 기사 제목/본문/섹션/콘텐츠 타입(e.g. 글, 글+사진, 글+동영상)/이미지를 기준으로 기사 품질 점수 예측</div> </div> </div> </div> <div class="airs_table"> <strong><span>비개인화 </span>(SI 모델)</strong> <div class="airs_desc"> <div class="desc"> <div class="feature"> <i>11</i> <strong>기사 최신 인기도<br>(Latest Popular) 점수</strong> </div> <div class="text"> SI(User) 모델을 통해, 기사의 클릭수로 측정한 인기도 점수입니다. <ul> <li>기사 클릭수가 증가하고 있으면, 기사의 사용자 인기도가 상승하는 것으로 가정하고 더 높은 값을 부여합니다.</li> <li>사용자 관점에서, 현재 '인기 있고+인기가 상승중인' 기사의 클릭수를 측정해 점수화합니다.</li> </ul> </div> </div> <div class="desc"> <div class="feature"> <i>12</i> <strong><span>기사 클러스터 </span>점수</strong> </div> <div class="text"> SI(Press) 모델을 통해, 제목과 본문이 유사한 기사들을 묶고 '기사 클러스터 점수'를 부여합니다. <ul> <li>클러스터를 구성하는 기사가 많고, 최근에 작성된 기사가 많을수록 더 높은 값을 가집니다.</li> <li>언론사 관점에서, 동일한 주제의 기사를 많이 다루고 있는지를 측정해 이를 점수화합니다.</li> </ul> </div> </div> <div class="desc"> <div class="feature"> <i>13</i> <strong><span>기사 클러스터 </span>최신성</strong> </div> <div class="text">최근에 생성된 기사 클러스터일수록 더 높은 값을 부여합니다.</div> </div> <div class="desc"> <div class="feature"> <i>14</i> <strong>SI(Social Impact) 점수</strong> </div> <div class="text"> SI(Press) 모델로 생성된 클러스터의 기사들이, SI(User) 모델에서 선정한 '최신인기(LP)' 기사에 해당하면 SI 점수 부여합니다. <ul> <li>공급자인 '언론사'와 소비자인 '사용자'가 동시에 주목하는 클러스터입니다. 사회적인 이슈로 간주하고 해당 클러스터의 기사에 가산점을 부여합니다.</li> <li>클러스터에 소속된 기사들 중에서, '최신인기(LP)'에 해당하는 기사가 많으면 더 높은 점수 부여합니다.</li> </ul> </div> </div> </div> </div> <div class="airs_table"> <strong>비개인화</strong> <div class="airs_desc"> <div class="desc"> <div class="feature"> <i>15</i> <strong>기사의 최신성</strong> </div> <div class="text">최근에 작성된 기사일수록 더 높은 값을 부여합니다.</div> </div> <div class="desc"> <div class="feature"> <i>16</i> <strong>심층기사 여부</strong> </div> <div class="text">언론사에서 심층·기획 기사로 선정한 기사에 대하여 가산점을 부여합니다.</div> </div> <div class="desc"> <div class="feature"> <i>17</i> <strong><span>시간당 기사 </span>생산량</strong> </div> <div class="text">기사량이 적은 주말 또는 새벽 시간대에 클러스터 내 기사에 가산점을 부여합니다.</div> </div> <div class="desc"> <div class="feature"> <i>18</i> <strong>지면 위치</strong> </div> <div class="text">온라인 신문 지면 위치를 뜻합니다. 앞 지면에 등장하는 기사일수록 가산점을 받습니다.</div> </div> <div class="desc"> <div class="feature"> <i>19</i> <strong>노출 균형</strong> </div> <div class="text"> 과거 언론사별 노출 비중을 바탕으로 확률적 추정을 진행합니다. 이를 통해 언론사별 추천 기사량의 불균형을 완화합니다. <ul> <li>과거 노출 비중을 바탕으로 베타 분포를 생성, 분포에 따라 확률 값을 1개 샘플링 합니다.</li> <li>언론사의 노출 비중이 평균보다 낮을 경우, 낮은 값의 노출 균형 피처가 추출됩니다. 해당 언론사의 기사에 가산점을 부여해 추천 증가를 유도합니다.</li> </ul> </div> </div> </div> </div> </div> </section> </div> <div class="algorithm_detail_cluster _algorithm_detail _cluster" style="display: none"> <section class="algorithm_detail_inner"> <h3 class="blind">클러스터링</h3> <div class="desc_section"> <strong>뉴스 클러스터링</strong> <p>뉴스 클러스터링(News Clustering)은 AiRS 알고리즘의 SI(Social Impact)모델과 함께, 주요한 사회적 이슈를 찾아내는 기술입니다. 같은 시간대 비슷한 내용의 기사 다수를 묶어낸다면, 해당 기사그룹을 하나의 '이슈'로 볼 수 있기 때문입니다. 클러스터링 과정은 10분마다 기계적인 자동 분류를 반복합니다.</p> </div> <div class="cluster_card_wrap"> <div class="cluster_card"> <div class="cluster_desc_section"> <strong><span class="step">STEP 1</span>먼저 클러스터로 묶을 기사를 선정합니다</strong> <p>네이버뉴스에서 제공하는 모든 기사를 대상으로 합니다. 평일과 주말의 기사량 차이를 고려해 최대 36시간 이내 기사까지 포함됩니다. 예컨대 기사가 많은 평일에는 당일 기사 중심으로, 기사가 적은 주말에는 하루 전 기사가 일부 포함됩니다. 연예, 스포츠, 일부 특화 영역에서 노출되는 기사는 제외합니다. 내용이 짧은 기사, 외국어로 된 기사도 클러스터링 품질에 좋지 않아 제외합니다.</p> </div> <div class="img_box" style="max-width: 300px;"> <img src="https://ssl.pstatic.net/static.news/image/news/m/2023/06/15/algorithm_cluster_card1_m.png" alt="" class="light_type"> <img src="https://ssl.pstatic.net/static.news/image/news/m/2023/06/15/algorithm_cluster_card1_m_dark.png" alt="" class="dark_type"> </div> </div> <div class="cluster_card"> <div class="cluster_desc_section"> <strong><span class="step">STEP 2</span>형태소를 분석합니다</strong> <p>선별한 기사를 대상으로 기사의 본문 및 제목의 형태소를 분석하고, 불규칙 활용이 발생한 용언은 원형으로 복원해 추출합니다.</p> </div> <div class="img_box" style="max-width: 331px;"> <img src="https://ssl.pstatic.net/static.news/image/news/m/2023/06/15/algorithm_cluster_card2_m.png" alt="" class="light_type"> <img src="https://ssl.pstatic.net/static.news/image/news/m/2023/06/15/algorithm_cluster_card2_m_dark.png" alt="" class="dark_type"> </div> </div> <div class="cluster_card"> <div class="cluster_desc_section"> <strong><span class="step">STEP 3</span>기사를 벡터화(Vector)합니다</strong> <p>각 기사별로 어떤 단어가 많이 사용됐는지 분석합니다. 이때, TF-IDF(Term Frequency – Inverse Document Frequency) 방식을 사용해 모든 기사에서 자주 나타난 단어는 중요도를 낮추고, 특정 기사에서만 자주 나타난 단어의 중요도는 높입니다. 이를 통해 해당 기사를 특징 짓는 중요 단어를 파악해 가중치를 주고, 기사를 벡터화(Vector) 할 수 있습니다.</p> </div> <div class="img_box" style="max-width: 369px;"> <img src="https://ssl.pstatic.net/static.news/image/news/m/2023/06/15/algorithm_cluster_card3_m.png" alt="" class="light_type"> <img src="https://ssl.pstatic.net/static.news/image/news/m/2023/06/15/algorithm_cluster_card3_m_dark.png" alt="" class="dark_type"> </div> </div> <div class="cluster_card"> <div class="cluster_desc_section"> <strong><span class="step">STEP 4</span>유사도를 측정합니다</strong> <p>기사를 수치인 벡터로 나타냈다면, 벡터간 유사도를 분석해 어떤 기사가 다른 기사와 얼마나 유사한지를 계산할 수 있습니다. 이를 위해 기사를 구성하는 중요 단어의 가중치, 횟수, 패턴 등을 중심으로 유사도를 판단하는 코사인 유사도(Cosine Similarity)를 통해 값을 측정합니다.</p> </div> <div class="img_box" style="max-width: 313px;"> <img src="https://ssl.pstatic.net/static.news/image/news/m/2023/06/19/algorithm_cluster_card4_m.png" alt="" class="light_type"> <img src="https://ssl.pstatic.net/static.news/image/news/m/2023/06/19/algorithm_cluster_card4_m_dark.png" alt="" class="dark_type"> </div> </div> <div class="cluster_card"> <div class="cluster_desc_section"> <strong><span class="step">STEP 5</span>유사한 기사끼리 묶습니다 (클러스터링)</strong> <p>앞서 구한 값을 기준으로 서로 유사하다고 판단되는 기사를 묶는 클러스터링 작업을 진행합니다. 이때 사용하는 방식은 Hierarchical agglomerative Clustering 으로, 유사도가 높은 그룹을 순차적이고 계층적인 순서로 묶습니다. 예컨대, 한 개의 기사를 크기가 1인 그룹으로 보고 이 둘을 묶어 기사가 두 개인 그룹으로 만들었다면, 이렇게 묶인 그룹과 다른 그룹의 유사도를 비교해 묶는 작업을 반복합니다.</p> </div> <div class="img_box" style="max-width: 444px;"> <img src="https://ssl.pstatic.net/static.news/image/news/m/2023/07/05/algorithm_cluster_card5_m.png" alt="" class="light_type"> <img src="https://ssl.pstatic.net/static.news/image/news/m/2023/07/05/algorithm_cluster_card5_m_dark.png" alt="" class="dark_type"> </div> </div> <div class="cluster_card"> <div class="cluster_desc_section"> <strong><span class="step">STEP 6</span>생성된 클러스터의 점수를 부여합니다</strong> <p>스코어링 과정에선 클러스터의 전체 기사수, 시간대에 따른 기사 비율을 고려합니다. 클러스터에 속한 기사의 총 개수가 많고, 최근 작성된 기사가 많을 수록 높은 점수를 갖게 됩니다.</p> </div> <div class="img_box" style="max-width: 412px;"> <img src="https://ssl.pstatic.net/static.news/image/news/m/2023/06/15/algorithm_cluster_card6_m.png" alt="" class="light_type"> <img src="https://ssl.pstatic.net/static.news/image/news/m/2023/06/15/algorithm_cluster_card6_m_dark.png" alt="" class="dark_type"> </div> </div> </div> <div class="desc_section"> <p>위 과정을 거쳐 약 250 개의 클러스터를 생산하고, 10분간 서비스에 노출합니다. 클러스터는 MY뉴스와 섹션홈(정치, 경제, 사회, IT, 생활, 세계)에서 하나의 기사처럼 추천 요소로 활용됩니다. 앞서 설명한 AiRS 알고리즘이 사용자에게 클러스터를 기사처럼 추천하고, 또한 클러스터 안에 묶인 기사 중에서 어떤 기사를 더 선호할지 사용자 별로 예측해 제공합니다.</p> </div> </section> </div> <div class="algorithm_detail_history _algorithm_detail _history" style="display: none"> <section class="algorithm_detail_inner"> <h3 class="blind">기술 고도화</h3> <div class="desc_section"> <strong>뉴스 서비스 투명성을 강화하고<br>AI 추천 기술을 고도화하고 있습니다</strong> </div> <div class="history_table_section"> <div class="history_table"> <div class="year">2023</div> <div class="history_desc"> <div class="desc"> <div class="month">07월</div> <div class="text"> <p><span>AiRS 추천 다양성 지수 (노출 균형 피처 적용 · 추천 다양성 알고리즘 개선) 도입</span><i>2차 검토위 권고</i></p> </div> </div> </div> </div> <div class="history_table"> <div class="year">2022</div> <div class="history_desc"> <div class="desc"> <div class="month">11월</div> <div class="text"> <p>기자구독 추천 피처 적용</p> </div> </div> <div class="desc"> <div class="month">10월</div> <div class="text"> <p>추천비중 설정 기능 도입</p> <a href="https://m.news.naver.com/ombudsman/noticeread?page=1&notiId=695" data-mpurl='{"m":"https://m.news.naver.com/ombudsman/noticeread?page=1&notiId=695","p":"https://news.naver.com/main/ombudsman/readView.naver?notiId=695"}' target="_blank">MY뉴스 '추천비중 설정' 기능 안내 (2022.10.27)</a> <p><span>AiRS 추천 Attention계열 기술 일부(MY뉴스하단&섹션카드) 적용</span><i>2차 검토위 권고</i></p> <a href="https://blog.naver.com/naver_search/222875360677" target="_blank">알고리즘 검토위원회의 검토 결과를 바탕으로 뉴스 알고리즘 개선 방향을 설명드립니다.(2022.09.15)</a> </div> </div> <div class="desc"> <div class="month">05월</div> <div class="text"> <p>국제 학회 ICDE 'AiRS 뉴스 추천 알고리즘' 발표</p> <a href="https://ieeexplore.ieee.org/document/9835494" target="_blank">Lim, Hongjun, et al. "AiRS: a large-scale recommender system at naver news." 2022 IEEE 38th International Conference on Data Engineering (ICDE). IEEE, 2022</a> </div> </div> <div class="desc"> <div class="month">04월</div> <div class="text"> <p><span>AiRS 추천 심층기획강화 적용</span><i>2차 검토위 권고</i></p> <a href="https://blog.naver.com/naver_search/222875360677" target="_blank">알고리즘 검토위원회의 검토 결과를 바탕으로 뉴스 알고리즘 개선 방향을 설명드립니다.(2022.09.15)</a> </div> </div> </div> </div> <div class="history_table"> <div class="year">2021</div> <div class="history_desc"> <div class="desc"> <div class="month">06월</div> <div class="text"> <p>언론사 숨김 기능 도입</p> <a href="https://m.news.naver.com/ombudsman/noticeread?notiId=565&page=4" data-mpurl='{"m":"https://m.news.naver.com/ombudsman/noticeread?notiId=565&page=4","p":"https://news.naver.com/main/ombudsman/readView.naver?notiId=565"}' target="_blank">MY뉴스 숨김 설정 기능 안내 (2021.06.17)</a> </div> </div> <div class="desc"> <div class="month">02월</div> <div class="text"> <p>비로그인 추천시 가중랜덤랭킹(언론사 구독수 고려한 가중치 부여) 적용</p> </div> </div> <div class="desc"> <div class="month">01월</div> <div class="text"> <p>AiRS 추천 섹션별 헤드라인 확대</p> <a href="https://m.news.naver.com/ombudsman/noticeread?page=1&notiId=543" data-mpurl='{"m":"https://m.news.naver.com/ombudsman/noticeread?page=1&notiId=543","p":"https://news.naver.com/main/ombudsman/readView.naver?notiId=543"}' target="_blank">'섹션별 헤드라인 뉴스' AiRS 개인화 추천 적용 (2021.01.21)</a> </div> </div> </div> </div> <div class="history_table"> <div class="year">2020</div> <div class="history_desc"> <div class="desc"> <div class="month">10월</div> <div class="text"> <p>AiRS 추천 함께볼만한뉴스 도입</p> <a href="https://m.news.naver.com/ombudsman/noticeread?page=1&notiId=509" data-mpurl='{"m":"https://m.news.naver.com/ombudsman/noticeread?page=1&notiId=509","p":"https://news.naver.com/main/ombudsman/readView.naver?notiId=509"}' target="_blank">전체랭킹 서비스 종료 및 랭킹 서비스 개편 안내(2020.10.22)</a> <p>AiRS 추천 소셜임팩트(SI) 기술 적용</p> </div> </div> </div> </div> <div class="history_table"> <div class="year">2018</div> <div class="history_desc"> <div class="desc"> <div class="month">12월</div> <div class="text"> <p>AiRS 추천 기사품질(QE) 기술 적용</p> </div> </div> <div class="desc"> <div class="month">05월</div> <div class="text"> <p>AiRS 추천 MY뉴스헤드라인 확대</p> <a href="https://blog.naver.com/naver_diary/221288277530" target="_blank">모바일 뉴스 메인 베타 체험판 &lt;AI 헤드라인&gt;을 오픈했습니다 (2018.05.31)</a> </div> </div> </div> </div> <div class="history_table"> <div class="year">2017</div> <div class="history_desc"> <div class="desc"> <div class="month">10월</div> <div class="text"> <p>뉴스 클러스터링 기술 도입</p> <a href="https://blog.naver.com/naver_diary/221118376457" target="_blank">네이버 뉴스의 ‘채널’과 ‘자동 클러스터링’을 경험해보세요 (2017.10.17)</a> </div> </div> <div class="desc"> <div class="month">09월</div> <div class="text"> <p>AiRS 추천 CF&amp;RNN 기술 적용</p> <a href="https://blog.naver.com/naver_diary/221104925153" target="_blank">CF기술·RNN기술의 장점이 융합된 ‘AiRS’가 모바일 뉴스판에 시범 적용됩니다 (2017.09.25)</a> </div> </div> <div class="desc"> <div class="month">02월</div> <div class="text"> <p>AiRS 추천 베타 도입</p> <a href="https://blog.naver.com/naver_diary/220936643956" target="_blank">인공지능 기반 추천 시스템 AiRS를 소개합니다 (2017.02.16)</a> </div> </div> </div> </div> </div> <div class="desc_section"> <p>cf. 뉴스 검색과 관련된 개선은 <a href="https://blog.naver.com/PostList.naver?blogId=naver_search&categoryNo=63" target="_blank">'Naver Search&Tech'</a> 블로그의 '뉴스 알고리즘' 카테고리에서 확인할 수 있습니다.</p> </div> </section> </div> <div class="algorithm_detail_review _algorithm_detail _review" style="display: none"> <section class="algorithm_detail_inner"> <h3 class="blind">검토위 진행</h3> <div class="desc_section"> <strong>'뉴스 알고리즘' 전문가 그룹 검토 결과</strong> <p>네이버는 한국에서 사용자가 가장 많은 포탈사업자로서 뉴스 알고리즘에 대한 사회적 기대와 책임을 엄중히 받아들이고 있습니다. 네이버는 이에 대한 노력의 일환으로 외부 전문가 그룹으로 이뤄진 <b>'뉴스 알고리즘 검토위원회'</b>를 발족, 주기적으로 알고리즘에 대한 외부 검토 및 의견 수렴을 진행하고 있습니다. 알고리즘 검토위원회는 2018년 1차, 2021년 2차에 걸쳐 뉴스추천 및 뉴스검색 알고리즘에 대한 검토를 진행했고, 다음과 같은 의견을 확인 받았습니다.</p> </div> <div class="review_table_wrap"> <table class="review_table"> <caption class="blind">알고리즘 전문가 검토 결과</caption> <colgroup> <col width="28%"> <col> </colgroup> <thead> <tr> <th>검토 기간</th> <th>검토위원 및 내용</th> </tr> </thead> <tbody> <tr> <td> <strong>1차</strong> 2018.05 ~ 2018.11 </td> <td> 맹성현 위원장 등 총 11인<br> <a href="https://blog.naver.com/naver_diary/221408763937" target="_blank">네이버 뉴스 알고리즘 검토위원회, 뉴스 서비스 검토 결과 발표 (2018.11.29)</a> </td> </tr> <tr> <td> <strong>2차</strong> 2021.06 ~ 2022.01 </td> <td> 고영중 위원장 등 총 13인<br> <a href="https://blog.naver.com/naver_diary/222631701600" target="_blank">제2차 네이버뉴스 알고리즘 검토위원회 검토 결과 발표 (2022.01.26)</a> </td> </tr> <tr> <td> <strong>3차</strong> 2023.하반기 ~ </td> <td>검토 진행 중</td> </tr> </tbody> </table> </div> <div class="desc_section"> <p>1차 알고리즘 검토위에서는 뉴스서비스에 대한 '데이터 확보 과정, 알고리즘에 반영되는 자질(feature), 이용자에게 서비스가 공개되는 과정, 전체 추천 과정에서 절차의 적절성' 등을 검토했습니다. 검토위는 "네이버가 편집자의 개입 없이 자동적으로 뉴스 이용자들의 피드백 데이터를 수집해 학습 데이터를 확보하고 있으며, 협력필터(Collaborative Filtering)와 품질모델(Quality Model)을 결합해 이용자의 기사 선호도와 기사 품질을 고려한 개인화된 추천 점수를 계산하는 알고리즘을 활용하고 있음"을 확인했습니다.</p> <p>2차 알고리즘 검토위에서는 '저널리즘 관점에서 알고리즘, 알고리즘의 중립성, 알고리즘 평가 및 구성 과정' 에 대해 중점 검토했습니다. 2차 검토위는 특히 '심층기획 기사의 노출 불균형'과 '언론사 간 기사량 차이에 따른 불균형'에 대해 검토 의견을 주었습니다. 이에 네이버는 6개월 정도의 준비 기간을 거쳐, 22년 9월 <a href="https://blog.naver.com/naver_search/222875360677" target="_blank">2차 검토위 결과에 대한 향후 개선 방향</a>을 공개했습니다. 우선 검토위의 의견을 수용해 심층기획 기사의 추천을 강화했고, 이에 대한 실제 서비스 개선이 이뤄졌음을 확인했습니다. 또한 '지니계수'를 활용해 다양성을 늘릴 수 있는 지표의 개발 계획도 공개했고, 23년 7월 실제 서비스에 적용되었습니다. 온라인 테스트 결과 PV, CTR, DAU 모두 늘어 사용자 만족도가 증가하는 것을 확인했고, 얼마나 다양한 기사를 추천하는지 측정한 '기사 다양성' 지표와 '노출 다양성' 지표 모두 증가하는 것을 확인했습니다. 또한, 전체 심층 기획 기사의 추천 비중도 기존 수준을 유지하였습니다. 이번 작업이 다양성 추천을 유도하고 동시에 사용자 만족도를 향상시키는데 유의미한 도움이 되는 것을 확인할 수 있었습니다.</p> <p>2023년 하반기에 예정된 3차 알고리즘 검토위원회에서는 이와 같은 개선 과제들이 적절하게 반영됐는지도 확인받을 예정입니다. 검토 결과는 추후 본 페이지에 업데이트하고 상세히 설명하겠습니다.</p> </div> <div class="desc_section"> <strong>알고리즘 다양한 고민과 시도</strong> <p>알고리즘을 통한 뉴스 추천만으로 미디어가 가진 중요한 가치를 담아내지 못한다는 우려도 있습니다. 네이버 역시 이런 외부의 지적에 대해 깊이 공감하며, 보다 나은 미디어 환경을 위한 다양한 고민과 시도를 멈추지 않고 있습니다.</p> <p>우선 MY뉴스판에서 <a href="/nSpecial/journalistAwards" target="_blank">'깊이가 느껴지는 시선'</a>이란 서비스를 개설했습니다. 해당 서비스는 주요 언론 단체가 선정한 우수보도상 기사를 모아서 보여주거나, 정기적으로 발행되는 주간지의 커버스토리처럼 공들여 쓴 기획기사를 모아서 제공합니다.이를 통해 사용자의 주목을 받지 못한 여러 '좋은 기사'들이 다시금 노출의 기회를 얻게 될 것입니다. 또한 알고리즘이 개인의 선호를 완벽히 반영하는데 한계가 있기에, 원하지 않는 언론사를 제외하는 <a href="/channel/excludeSettings" target="_blank">'언론사 숨김'</a> 기능도 도입했습니다. 사용자는 설정 영역에서 '언론사 숨김' 외에도 구독한 언론사를 더 노출하거나, 언론사의 심층기획 기사를 보다 노출되도록 <a href="/channel/recommendSettings" target="_blank">'추천비중'</a>도 개인화 할 수 있습니다. 이런 다양한 시도들은 사용자 선택권을 보장하고 AI 추천에 대한 만족도를 올려, 궁극적으로 뉴스 서비스 전체의 선순환으로 이어질 것입니다.</p> </div> <div class="review_card_wrap"> <div class="review_card"> <strong>깊이가 느껴지는 시선</strong> <p>속보와 이슈에 묻힌 좋은 기사를 찾아<br>사용자에게 제공합니다.</p> <div class="img_box"> <img src="https://ssl.pstatic.net/static.news/image/news/m/2023/06/15/algorithm_review_card1.png" alt=""> </div> </div> <div class="review_card"> <strong>언론사 숨김</strong> <p>원하지 않는 언론사를 제외하는<br>숨김 기능을 제공합니다.</p> <div class="img_box"> <img src="https://ssl.pstatic.net/static.news/image/news/m/2023/06/15/algorithm_review_card2.png" alt=""> </div> </div> <div class="review_card"> <strong>추천비중 설정</strong> <p>구독한 언론사와 심층기획 기사의 비중을<br>개인별로 설정합니다.</p> <div class="img_box"> <img src="https://ssl.pstatic.net/static.news/image/news/m/2023/06/15/algorithm_review_card3.png" alt=""> </div> </div> </div> </section> </div> <div class="algorithm_detail_faq _algorithm_detail _faq" style="display: none"> <section class="algorithm_detail_inner"> <h3 class="blind">FAQ</h3> <div class="desc_section"> <strong>알고리즘 서비스에 대한 FAQ</strong> </div> <div class="faq_section"> <div class="faq is_close"> <div class="f"> <i><span class="blind">질문</span></i> <p>네이버 뉴스에서 AiRS 추천이 이뤄지는 영역이 어디인지 궁금합니다.</p> <button class="is_close _is_close"><span class="blind">닫기</span></button> </div> <div class="a"> <p>AiRS 알고리즘은 로그인한 사용자의 기사 소비 이력을 활용합니다. 따라서 '개인화 추천'은 로그인 사용자에게만 제공되며, 비로그인 사용자에겐 '글로벌 추천(개인화가 적용되지 않은 추천)' 이라는 별도 방식으로 기사를 제공합니다. AiRS 알고리즘이 제공되는 영역은 다음과 같습니다.</p> <ul> <li><b>01.</b> 모바일 MY뉴스 전영역 (http://m.naver.com/)</li> <li><b>02.</b> 모바일/PC 섹션(정치/경제/사회/생활/세계/IT)홈 상단의 '헤드라인 뉴스'</li> <li><b>03.</b> PC 우측영역의 '분야별 주요 뉴스'</li> <li><b>04.</b> 모바일 기사본문 하단 '함께 볼만한 뉴스'</li> </ul> </div> </div> <div class="faq is_close"> <div class="f"> <i><span class="blind">질문</span></i> <p class="q">AiRS 알고리즘에서 기사의 품질을 판단하는 기준이 무엇인가요?</p> <button class="is_close _is_close"><span class="blind">닫기</span></button> </div> <div class="a"> <p>기사의 콘텐츠 특성과 사용자 피드백(기사 클릭 수, 체류시간 등)을 고려하는 QE(Quality Estimation) 모델로 품질을 예측합니다. 이 모델은 기사 내용에서 다음의 피쳐 (feature, 고려 요소)를 입력 받아 품질 점수를 추론합니다.</p> <ul> <li class="dash">기사 제목</li> <li class="dash">본문</li> <li class="dash">섹션 정보</li> <li class="dash">콘텐츠 타입 정보</li> <li class="dash">이미지 혹은 동영상 관련 정보</li> </ul> <p>QE모델은 위에 언급된 피처들에 대해 기사가 충실한 정보를 담고 있는지를 Deep Neural Network 기반의 모델로 판단합니다. 자세한 내용은 <a href="https://blog.naver.com/naver_search/222439504418" target="_blank">'Part2 &gt; (S1) 후보 뉴스 기사 생성 단계 &gt; 자동화 방식의 뉴스 품질 측정'</a> 항목에서 확인할 수 있습니다.</p> </div> </div> <div class="faq is_close"> <div class="f"> <i><span class="blind">질문</span></i> <p class="q">심층기획 기사는 잘 보이지 않고, 속보나 이슈성 기사만 잘보입니다.<br>추천시 클릭이 많이 발생한 기사를 선호하나요?</p> <button class="is_close _is_close"><span class="blind">닫기</span></button> </div> <div class="a"> <p>뉴스 추천의 주요 모델들은 사용자 클릭에 기반해 추천하므로, 기본적으로 클릭이 많은 기사가 추천될 확률이 높습니다. 단, 클릭이 많지 않더라도 과거에 클릭한 기사와 연관성이 높다면 추천될 수 있습니다. 또한 여러 언론사가 함께 다루는 주제에 대해선 사회적 관심이 크다고 가정합니다. 따라서 뉴스 클러스터에 속한 기사에도 가산점을 부여합니다.</p> <p>심층기획 기사는 주로 단일 언론사가 각각 다른 내용으로 작성해 송고합니다. 전체 기사량 대비 비중이 매우 작고, 뉴스 클러스터에 포함될 가능성도 상대적으로 낮습니다. 이로 인해 일반기사가 심층기획 보다 뉴스 클러스터 가산점을 받을 확률이 더 높습니다.</p> <p>최근에는 이런 한계를 극복하고자 <a href="https://blog.naver.com/naver_search/222875360677" target="_blank">언론사가 직접 편집한 심층기획 기사를 추천 요소에 포함하는 개선</a>을 진행했습니다.</p> </div> </div> <div class="faq is_close"> <div class="f"> <i><span class="blind">질문</span></i> <p class="q">특정 정치성향을 선호 혹은 특정 성향에 유리하게 추천한다는 주장이 있습니다. 알고리즘을 통한 뉴스 추천은 공정한가요?</p> <button class="is_close _is_close"><span class="blind">닫기</span></button> </div> <div class="a"> <p>알고리즘 자체에는 기사 및 사용자의 정치 성향을 특정 짓거나 구분하는 부분이 전혀 없기에, 특정 성향에 유리하게 추천하는 것은 기술적으로 불가능합니다. 다만 사용자에게 제공된 추천은 알고리즘, 기사를 제공하는 생산자, 그리고 이를 소비하는 사용자의 상호작용의 결과물입니다.</p> <p>예컨대 생산자인 언론사는 사건이 발생하는 타이밍에 맞춰 기사를 작성하여, 더 많은 사용자가 클릭하도록 만들 수 있습니다. 마찬가지로 사용자는 특정 언론사를 구독하고 해당 언론사의 편집판에 자주 방문하여 더 많은 기사를 읽을 수 있습니다. 이런 생산자와 사용자의 행동은 모두 추천 데이터와 로그에 남게 되고, 추천의 재료로써 영향을 미칩니다. 그래서 추천의 공정성 문제는 알고리즘 자체보다는 생산자와 사용자의 상호작용 속에서 발생하는 측면이 크다는 것을 말씀드립니다. 알고리즘은 이를 가능한 왜곡하지 않고 반영하는 것이 바람직한 방향이며, 이를 위해 앞으로도 학계 및 언론계의 다양한 의견을 경청하겠습니다. 또한 주기적으로 추천 알고리즘과 데이터를 전문가 그룹에 공개, 공정한 추천 서비스를 위해 노력하겠습니다.</p> </div> </div> <div class="faq is_close"> <div class="f"> <i><span class="blind">질문</span></i> <p class="q">무심코 읽은 기사의 주제 (ex.가상화폐, 주식기사)가 너무 자주 추천됩니다. 내가 읽은 기사는 개인화 추천에 언제까지 영향을 미치나요?</p> <button class="is_close _is_close"><span class="blind">닫기</span></button> </div> <div class="a"> <p>CF 모델은 최근 2주간 읽은 기사를 기반으로, 같은 기사를 읽은 다른 사용자가 많이 소비한 기사를 추천합니다. 또한 최근 2주간 읽은 기사에서 주요 키워드를 추출, 이와 유사한 주제의 기사들에게 사용자 관심 키워드(Keyword) 점수를 부여합니다.</p> <p>과거 특정 키워드와 관련된 여러 기사를 반복적으로 클릭하고 읽었다면, 해당 키워드에 대한 사용자 관심도가 크다고 보고 이 키워드를 포함한 추천 기사에도 더 높은 키워드 점수를 부여합니다. 반면에, 특정 키워드의 기사를 우연히 한번만 클릭했다면 키워드 점수는 최소값을 부여합니다. 결론적으로 무심코 읽은 기사의 주제와 비슷한 주제가 추천되는 것은 최장 2주까지 가능합니다.</p> <p>덧붙여, 사용자가 장기간에 걸쳐 관심을 가진 키워드를 보다 잘 찾을 수 있도록 추가적인 개선도 계속 진행하고 있습니다. 해당 개선이 이뤄지게 된다면, 본 페이지에 자세한 내용을 공유하겠습니다.</p> </div> </div> <div class="faq is_close"> <div class="f"> <i><span class="blind">질문</span></i> <p class="q">기사에 존재하는 사용자 피드백(ex. 댓글, 감정표현 등)이 추천에도 영향을 주나요?</p> <button class="is_close _is_close"><span class="blind">닫기</span></button> </div> <div class="a"> <p>댓글이나 감정표현은 기사의 논란이나 사용자의 감정을 표현하는 용도로 사용되기에 추천 요소로는 사용하지 않습니다.</p> </div> </div> <div class="faq is_close"> <div class="f"> <i><span class="blind">질문</span></i> <p class="q">특정 언론사의 기사를 많이 읽는다면, 해당 언론사 기사가 더 많이 추천이 되나요? 이럴 경우 필터 버블(관심사에 맞춰 필터링된 정보로 인해 편향된 정보에 갇히는 현상) 등의 문제가 발생하지 않을까요?</p> <button class="is_close _is_close"><span class="blind">닫기</span></button> </div> <div class="a"> <p>특정 언론사의 기사를 많이 읽는다면 사용자의 해당 '언론사 선호도' 피처(feature, 고려 요소) 값이 증가하며, 이로 인해 기사 추천도 증가할 수 있습니다. 자세한 내용은 <a href="https://blog.naver.com/naver_search/222439504418" target="_blank">'Part2 &gt; (S2) 후보 뉴스 기사 랭킹 단계 &gt; press (ui, vj)'</a> 에서 확인할 수 있습니다.</p> <p>다만, 기사의 추천은 다양한 요소가 함께 영향을 주기 때문에, 하나의 요소만으로 전체 추천에 미치는 미치는 영향은 제한적입니다. 또한 필터 버블에 의한 편향이 생기지 않도록, 다음과 같은 방지 장치도 함께 마련되어 있습니다.</p> <p>우선 SI(user), SI(press)와 같은 비개인화 모델이 존재합니다. 해당 모델은 다른 사용자들이 많은 관심을 갖거나, 여러 언론사가 함께 관심을 갖는 이슈를 찾아 추천합니다. 이를 통해 사용자 선호에만 국한되지 않고 다양한 이슈를 추천합니다. 또한 CF(NPMI) 모델은 평소 관심 주제가 아닌 신규 주제의 기사도 빠르게 사용자의 기사 선호도를 계산해 추천합니다. 마지막으로 사용자가 클릭해 읽은 기사는 재추천 되지 않도록 후처리 로직을 통해, 다음 추천에서 최하위로 순위가 조정됩니다. 따라서 한 언론사의 기사를 모두 클릭하게 된다면, 해당 언론사의 기사는 다음 추천에서 제외되게 됩니다.</p> </div> </div> <div class="faq is_close"> <div class="f"> <i><span class="blind">질문</span></i> <p class="q">내가 구독한 언론사의 기사가 개인화 추천에도 영향을 주는지 궁금합니다.</p> <button class="is_close _is_close"><span class="blind">닫기</span></button> </div> <div class="a"> <p>네, 사용자가 구독한 언론사의 기사는 개인화 추천에 영향을 줍니다.</p> <p>구체적으로는 '내가 구독한 언론사 선호도'에서 가산점이 부여되어 구독 전보다 해당 언론사의 기사가 추천될 확률이 증가합니다. 다만, 추천 과정에서 다양한 요소가 함께 영향을 주기에 언론사 구독만으로 전체 추천에 미치는 영향은 제한적입니다. 자세한 내용은 <a href="https://blog.naver.com/naver_search/222439504418" target="_blank">'Part2 &gt; (S2) 후보 뉴스 기사 랭킹 단계 &gt; press(ui, vj)'</a>에서 확인할 수 있습니다.</p> </div> </div> <div class="faq is_close"> <div class="f"> <i><span class="blind">질문</span></i> <p class="q">선호하지 않는 언론사의 기사가 너무 자주 추천됩니다. 해당 언론사의 기사를 보고 싶지 않으면 추천받고 싶지 않다면 어떻게 해야 될까요?</p> <button class="is_close _is_close"><span class="blind">닫기</span></button> </div> <div class="a"> <p><a href="/channel/settings" target="_blank">'언론사 구독설정'</a> 페이지에서 'MY뉴스 숨김' 기능을 통해 제외할 수 있습니다. 단, 숨김한 언론사가 너무 많거나 기사가 부족하면, 숨김 처리한 언론사의 기사가 추천될 수 있습니다.</p> </div> </div> </div> </section> </div> </div> </div> <hr /> <div class="footer_algorithm"> <footer role="contentinfo"> <div class="algo_share"> <span class="algo_share_text">네이버 알고리즘 공유하기</span> <div id="spi" class="naver-splugin" data-style="outer_news" data-url="https://media.naver.com/algorithm" data-title="뉴스 AI 알고리즘 안내" data-blog-display="on" data-cafe-display="on" data-facebook-display="on" data-kakaotalk-display="on" data-kakaotalk-image-url="https://mimgnews.pstatic.net/image/news/ogtag/navernews_algorithm_20230626.png" data-keep-display="off" data-memo-display="off" data-band-display="off" data-x-display="off" data-kakaostory-display="off" > </div> </div> <p class="u_cr"> <span class="u_ftm _footer_login"> <span class="u_cri u_cri_v1"><a href="https://m.naver.com/services.html" data-mpurl='{"m":"https://m.naver.com/services.html","p":"https://www.naver.com/more.html"}' class="u_cra" onclick="nclk(event,'fot.serviceall','','');">전체서비스</a></span> </span> <span class="u_ftm"> <span class="u_cri u_cri_v1"><a href="https://m.news.naver.com/ombudsman/index" data-mpurl='{"m":"https://m.news.naver.com/ombudsman/index","p":"https://news.naver.com/main/ombudsman/index.naver"}' class="u_cra" onclick="nclk(event,'fot.guide','','');">서비스안내</a></span> <span class="u_cri u_cri_v1"><a href="https://help.naver.com/alias/news/news_001.naver" data-mpurl='{"m":"https://help.naver.com/alias/news/news_001.naver","p":"https://help.naver.com/alias/news/news_001.naver"}' class="u_cra" onclick="nclk(event,'fot.report','','');">오류신고</a></span> <span class="u_cri u_cri_v1"><a href="https://help.naver.com/alias/news/news_007.naver" data-mpurl='{"m":"https://help.naver.com/alias/news/news_007.naver","p":"https://help.naver.com/alias/news/news_007.naver"}' class="u_cra" onclick="nclk(event,'fot.help','','');">고객센터</a></span> </span> <span class="cr_rule"> <span class="cr_rulea">청소년 보호 책임자 : 이정규</span> </span> <span class="u_copyright">이 콘텐츠의 저작권은 저작권자 또는 제공처에 있으며, 이를 무단 이용하는 경우 저작권법 등에 따라 법적 책임을 질 수 있습니다.</span> <span class="u_naverlogo"><a href="https://www.navercorp.com/" data-mpurl='{"m":"https://www.navercorp.com/","p":"https://www.navercorp.com/"}' class="u_naverlogo_a" id="nhnLink" onclick="nclk(event,'fot.navercorp','','');">NAVER</a></span> </p> </footer> </div> <script type="text/javascript" src="https://ssl.pstatic.net/static.news/mnews/resources/20250123_012152/js/generated/news.mobile.js"></script> <script type="text/javascript" src="https://ssl.pstatic.net/static.news/mnews/resources/20250123_012152/js/generated/statistics_jquery.js"></script> <script type="text/javascript" src="https://ssl.pstatic.net/static.news/mnews/resources/20250123_012152/js/generated/algorithm.dependency.js"></script> <script type="text/javascript"> /** * 이 파일은 모바일 뉴스 서비스 전체 페이지에 적용되는 스크립트로써, * 코드 추가 시 Front-End 성능 관점에서 주의를 요합니다. */ jQuery(window).on('load', function(){ setTimeout(onload, 10); function onload(){ var oLnb = new news.Lnb('._lnb_scroll'); new news.ImageLazyLoader().load("img[data-src]"); new news.MoveTopButton("._go_top"); new news.HistoryManager().init("naver_mobile_news_history", ""); // iframe lazy-loading (function(){ try { Array.prototype.slice.apply(document.querySelectorAll('iframe[data-src]')) .forEach(function(iframeEl) { var originSrc = iframeEl.getAttribute('data-src'); if(originSrc) { iframeEl.setAttribute('src', originSrc); } }); }catch(e) {} })(); if(typeof init === "function"){ init(); } var cookie = news.Cookie.getInstance(); var isShownNewLnb = cookie.getItem("isShownNewLnb"); if(isShownNewLnb == null) { isShownNewLnb = "Y"; cookie.setItem("isShownNewLnb", isShownNewLnb, 3650, "", "/"); $("._isNew").addClass("is_new"); } { var footerLogin = jQuery(document).find('._footer_login'); if(footerLogin <= 0) { return; } // 디바이스에 따라 로그인, 로그아웃 URL 분기 var loginUrl = "https://nid.naver.com/nidlogin.login"; var logoutUrl = "https://nid.naver.com/nidlogin.logout?"; if (news.Util.getAgentInfo().bMobileOrTablet) { loginUrl = "https://nid.naver.com/nidlogin.login?svctype=262144"; logoutUrl = "https://nid.naver.com/nidlogin.logout?svctype=262144&"; } if(news.LoginAssistor.isLoginUser()) { footerLogin.prepend('<span class="u_cri u_cri_v1"><a href="javascript:news.Util.logout(\''+logoutUrl+'url=\'+encodeURIComponent(location.href));" class="u_cra" id="news_logout" onclick="nclk(event,\'fot.logout\',\'\',\'\');" >로그아웃</a></span>') }else { footerLogin.prepend('<span class="u_cri u_cri_v1"><a href="'+loginUrl+'" class="u_cra" id="news_login" onclick="nclk(event,\'fot.login\',\'\',\'\');" >로그인</a></span>') } } } }); </script> <script type="text/javascript"> $(document).ready(function() { AlgorithmManager.init(); }); doAfterLoadEnd(function () { try { GlobalMPUrlManager.init(); } catch (e) { } /* 공유하기 */ try { new news.JsLoader().setConfig({ 'sCharSet': 'utf-8' // default }).load(['https://ssl.pstatic.net/spi/js/release/ko_KR/splugin.m.js?v=' + Math.floor(new Date().getTime() / 1200000)], function() { window.__splugin = SocialPlugIn_Core({ // nEvent Key "evKey" : "news", "dimmed" : "fixed", "darkMode" : isDarkShareLayer(), "serviceName" : "뉴스", "sourceName" : "뉴스 AI 알고리즘 안내", "onClick" : function(button) {}, "onShow" : function() {}, "onHide" : function() {}, "onResize" : function(event) {}, "onRotate" : function(event) {} }); }); } catch (e) {} /* 공유하기 */ }); </script> <script type="text/javascript"> var config = { "neloCollectorUrl": "https://kr-col-ext.nelo.navercorp.com/_store", "projectName": "P638fcb_news-mobile-front", "host": "real" } try{ neloSender.init(config); }catch(e){} </script> <!-- LCS --> <script type="text/javascript"> function initMa(){ var data = { "service": "news", "baseInfo": { "category": (function(){ var result = ""; if(result !== ""){ return result; } try{ return document.querySelector('meta[property="og:title"]') .getAttribute('content') .replace(/[\s]*:+[\s]*네이버[\s]*뉴스/, ''); }catch(e){ return ""; } })() }, "extraInfo": {} }; try{ ma.init({ api: "https://ma.news.naver.com/l", data: data }); }catch(e){} } </script> <script type="text/javascript"> window.ntm_news = window.ntm_news || []; doAfterLoadEnd(function () { var ntmUrl = "https://ntm.pstatic.net/scripts/ntm_b7032129a433.js"; ntmInit(ntmUrl); }); </script> <script type="text/javascript"> // NLog pageview 전송 var eventType = "onpageshow" in window ? "pageshow" : "load"; jQuery(window).on(eventType, function() { var sti = ""; var gdid = ""; if (isMobileDevice()) { // mobile } else { // pc sti = "news" } // ma 전송 try { initMa(); } catch (e) { } ntmCustomPageViewSend({ sti: sti, gdid: gdid }); }); </script> <!-- //LCS --> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10