<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>sjh9_4.log</title>
        <link>https://velog.io/</link>
        <description></description>
        <lastBuildDate>Tue, 30 Jun 2026 06:25:02 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>sjh9_4.log</title>
            <url>https://velog.velcdn.com/images/sjh9_4/profile/ad8f1bf8-9693-44e6-91bd-409335fbc0bb/social_profile.png</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. sjh9_4.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/sjh9_4" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[ML/AI 기반 유전체-단백체
멀티오믹스 통합분석 방법론 - CH10]]></title>
            <link>https://velog.io/@sjh9_4/MLAI-%EA%B8%B0%EB%B0%98-%EC%9C%A0%EC%A0%84%EC%B2%B4-%EB%8B%A8%EB%B0%B1%EC%B2%B4%EB%A9%80%ED%8B%B0%EC%98%A4%EB%AF%B9%EC%8A%A4-%ED%86%B5%ED%95%A9%EB%B6%84%EC%84%9D-%EB%B0%A9%EB%B2%95%EB%A1%A0-CH10</link>
            <guid>https://velog.io/@sjh9_4/MLAI-%EA%B8%B0%EB%B0%98-%EC%9C%A0%EC%A0%84%EC%B2%B4-%EB%8B%A8%EB%B0%B1%EC%B2%B4%EB%A9%80%ED%8B%B0%EC%98%A4%EB%AF%B9%EC%8A%A4-%ED%86%B5%ED%95%A9%EB%B6%84%EC%84%9D-%EB%B0%A9%EB%B2%95%EB%A1%A0-CH10</guid>
            <pubDate>Tue, 30 Jun 2026 06:25:02 GMT</pubDate>
            <description><![CDATA[<h2 id="1-pathway-analysis">1. Pathway analysis</h2>
<ul>
<li><p>Pathway analysis는 유전자 하나하나를 따로 보는 것이 아니라 여러 유전자가 함께 작동하는 생물학적 경로 단위로 해석하는 분석임</p>
</li>
<li><p>예를 들어 어떤 질병에서 유전자 A, B, C가 각각 조금씩 변했다고 해도 이 유전자들이 모두 같은 면역 반응 pathway에 속한다면 이 질병에서는 면역 관련 pathway가 변했다고 해석할 수 있음</p>
<table>
<thead>
<tr>
<th>목적</th>
<th>설명</th>
</tr>
</thead>
<tbody><tr>
<td>해석력 향상</td>
<td>gene-level 결과보다 생물학적 의미를 이해하기 쉬움</td>
</tr>
<tr>
<td>통계적 검정력 향상</td>
<td>개별 유전자보다 gene set 단위로 보면 신호가 더 잘 보일 수 있음</td>
</tr>
<tr>
<td>질병 관련 기능 탐색</td>
<td>질병과 관련된 pathway나 biological process를 찾음</td>
</tr>
</tbody></table>
</li>
</ul>
</br>

<hr>
<h2 id="2-단일-오믹스에서의-pathway-analysis">2. 단일 오믹스에서의 pathway analysis</h2>
<ul>
<li>단일 오믹스 데이터에서는 보통 ORA나 GSEA를 사용함<img src = https://velog.velcdn.com/images/sjh9_4/post/afef9566-3655-4ace-bdbe-c6469d99583d/image.png width = 600>


</li>
</ul>
<table>
<thead>
<tr>
<th>방법</th>
<th>설명</th>
</tr>
</thead>
<tbody><tr>
<td>ORA</td>
<td>유의미한 유전자 목록 안에 특정 pathway 유전자가 과하게 포함되어 있는지 확인</td>
</tr>
<tr>
<td>GSEA</td>
<td>전체 유전자를 변화량 기준으로 정렬한 뒤, 특정 pathway 유전자들이 위쪽이나 아래쪽에 몰려 있는지 확인</td>
</tr>
</tbody></table>
</br>

<hr>
<h2 id="3-멀티오믹스-pathway-analysis">3. 멀티오믹스 pathway analysis</h2>
<ul>
<li><p>멀티오믹스에서는 RNA, protein, methylation, mutation 등 여러 데이터에서 나온 결과를 함께 봐야 함</p>
<img src = https://velog.velcdn.com/images/sjh9_4/post/d5660e26-9773-4c95-9e81-42dc3fc91c96/image.png width = 600>
</li>
<li><p>그래서 단일 오믹스처럼 하나의 p-value만 보는 것이 아니라 여러 오믹스에서 나온 p-value나 방향성을 통합해야 함</p>
</li>
</ul>
<table>
<thead>
<tr>
<th>방식</th>
<th>설명</th>
</tr>
</thead>
<tbody><tr>
<td>Gene-level p-value integration</td>
<td>유전자별로 여러 오믹스의 p-value를 먼저 합치고 pathway 분석 수행</td>
</tr>
<tr>
<td>Pathway-level p-value integration</td>
<td>각 오믹스별 pathway 분석을 먼저 한 뒤 pathway p-value를 통합</td>
</tr>
<tr>
<td>Directional p-value merging</td>
<td>p-value와 변화 방향을 함께 고려해 통합</td>
</tr>
</tbody></table>
</br>

<hr>
<h2 id="4-gene-level-p-value-integration">4. Gene-level p-value integration</h2>
<ul>
<li><p>Gene-level 방식은 먼저 각 유전자에 대해 여러 오믹스의 p-value를 합침</p>
</li>
<li><p>예를 들어 Gene A에 대해 RNA, protein, methylation 결과가 있다고 하면
각 데이터에서 나온 p-value를 하나로 합침</p>
</li>
<li><p>그 다음 통합된 gene-level p-value를 이용해 pathway analysis를 수행함</p>
</li>
</ul>
<blockquote>
<p>각 오믹스별 gene p-value → 유전자별 p-value 통합 → pathway analysis</p>
</blockquote>
<ul>
<li>이 방식은 유전자 단위에서 여러 오믹스 신호를 먼저 합친 뒤 그 결과로 pathway를 찾는 방법임</li>
</ul>
</br>

<hr>
<h2 id="5-pathway-level-p-value-integration">5. Pathway-level p-value integration</h2>
<ul>
<li><p>Pathway-level 방식은 순서가 반대임</p>
</li>
<li><p>먼저 각 오믹스 데이터에서 pathway analysis를 따로 수행하고 그 후 같은 pathway에 대해 여러 오믹스에서 나온 p-value를 통합함</p>
</li>
</ul>
<blockquote>
<p>각 오믹스별 pathway analysis → pathway별 p-value 통합</p>
</blockquote>
<ul>
<li>예를 들어 apoptosis pathway가 RNA에서도 유의하고, protein에서도 유의하다면 이를 통합해서 apoptosis pathway가 멀티오믹스 수준에서 의미 있다고 판단할 수 있음</li>
</ul>
</br>

<hr>
<h2 id="6-p-value-combination">6. P-value combination</h2>
<ul>
<li>멀티오믹스 pathway analysis에서는 여러 p-value를 하나로 합치는 과정이 중요함</li>
</ul>
<table>
<thead>
<tr>
<th>방법</th>
<th>특징</th>
</tr>
</thead>
<tbody><tr>
<td>Fisher’s method</td>
<td>여러 p-value를 로그 변환해 합치는 방법</td>
</tr>
<tr>
<td>Stouffer’s method</td>
<td>p-value를 z-score로 변환한 뒤 가중합하는 방법</td>
</tr>
<tr>
<td>Brown’s method</td>
<td>p-value들 사이에 상관성이 있을 때 사용하는 Fisher method의 확장</td>
</tr>
</tbody></table>
<h3 id="fishers-method">Fisher’s method</h3>
<ul>
<li>Fisher’s method는 여러 p-value를 하나의 통계량으로 합치는 방법임</li>
<li>p-value들이 독립적이라고 가정하고 작은 p-value들이 여러 개 있을수록 통합 p-value도 작아짐</li>
</ul>
<h3 id="stouffers-method">Stouffer’s method</h3>
<ul>
<li>Stouffer’s method는 p-value를 z-score로 바꾼 뒤 합치는 방법임</li>
<li>각 오믹스 데이터에 가중치를 줄 수 있다는 장점이 있음</li>
</ul>
<h3 id="browns-method">Brown’s method</h3>
<ul>
<li>Brown’s method는 Fisher’s method의 확장임</li>
<li>멀티오믹스 데이터에서는 RNA와 protein처럼 서로 관련 있는 데이터가 많음</li>
<li>p-value들이 완전히 독립적이지 않을 수 있고 Brown’s method는 p-value 간 상관성을 고려해서 더 적절하게 통합할 수 있음</br>

</li>
</ul>
<hr>
<h2 id="7-activepathways">7. ActivePathways</h2>
<ul>
<li><p>gene-level p-value integration 예시로 ActivePathways가 있음</p>
<img src = https://velog.velcdn.com/images/sjh9_4/post/19133f84-126f-4216-8a79-595acee072ee/image.png width = 700>
</li>
<li><p>ActivePathways는 여러 오믹스 데이터에서 나온 gene-level p-value를 통합한 뒤
enriched pathway를 찾는 방법임</p>
</li>
<li><p>입력은 크게 두 가지임</p>
</li>
</ul>
<table>
<thead>
<tr>
<th>입력</th>
<th>의미</th>
</tr>
</thead>
<tbody><tr>
<td>Gene p-value matrix</td>
<td>유전자별, 오믹스별 p-value</td>
</tr>
<tr>
<td>Functional gene sets</td>
<td>pathway, process, TF target 같은 gene set</td>
</tr>
</tbody></table>
<ul>
<li>출력은 enriched pathway, supporting omics evidence, 관련 유전자, pathway network 등임</li>
</ul>
<blockquote>
<p> 어떤 pathway가 유의한지뿐 아니라 그 pathway가 어떤 오믹스 데이터에서 지지되는지도 볼 수 있음</p>
</blockquote>
</br>

<hr>
<h2 id="8-directional-p-value-merging">8. Directional p-value merging</h2>
<ul>
<li><p>기존 p-value integration은 p-value의 크기만 본지만 오믹스 분석에서는 변화 방향도 중요함</p>
</li>
<li><p>예를 들어 RNA와 protein은 보통 같은 방향으로 변하는 것이 자연스러움</p>
<ul>
<li>RNA 증가 → protein 증가</li>
</ul>
</li>
<li><p>반면 DNA methylation과 RNA는 반대 방향일 수 있음</p>
<ul>
<li>DNA methylation 증가 → RNA 발현 감소</li>
</ul>
</li>
<li><p>Directional p-value merging은 이런 방향성을 함께 고려함</p>
</li>
</ul>
<table>
<thead>
<tr>
<th>정보</th>
<th>의미</th>
</tr>
</thead>
<tbody><tr>
<td>P-value matrix</td>
<td>각 오믹스 분석의 p-value</td>
</tr>
<tr>
<td>Direction matrix</td>
<td>fold-change 기반 증가/감소 방향</td>
</tr>
<tr>
<td>Constraint vector</td>
<td>오믹스 간 예상 관계 방향</td>
</tr>
</tbody></table>
</br>

<hr>
<h2 id="최종-정리">최종 정리</h2>
<ul>
<li><p>10강의 핵심은 여러 오믹스 결과를 pathway 단위로 통합하는 방법임</p>
</li>
<li><p>단일 오믹스에서는 ORA나 GSEA를 사용해 pathway를 찾지만 멀티오믹스에서는 RNA, protein, methylation 등 여러 데이터의 p-value와 방향성을 함께 통합해야 함</p>
</li>
<li><p>이를 위해 Fisher’s method, Stouffer’s method, Brown’s method 같은 p-value combination 방법이 사용되고 ActivePathways처럼 gene-level p-value를 통합해 pathway를 찾는 도구도 활용됨</p>
</li>
</ul>
<blockquote>
<p>멀티오믹스 패스웨이 분석은 여러 오믹스에서 나온 유전자 수준의 신호를 통합해 질병과 관련된 pathway와 생물학적 기능을 찾는 분석 방법임</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[ML/AI 기반 유전체-단백체
멀티오믹스 통합분석 방법론 - CH9]]></title>
            <link>https://velog.io/@sjh9_4/MLAI-%EA%B8%B0%EB%B0%98-%EC%9C%A0%EC%A0%84%EC%B2%B4-%EB%8B%A8%EB%B0%B1%EC%B2%B4%EB%A9%80%ED%8B%B0%EC%98%A4%EB%AF%B9%EC%8A%A4-%ED%86%B5%ED%95%A9%EB%B6%84%EC%84%9D-%EB%B0%A9%EB%B2%95%EB%A1%A0-CH9</link>
            <guid>https://velog.io/@sjh9_4/MLAI-%EA%B8%B0%EB%B0%98-%EC%9C%A0%EC%A0%84%EC%B2%B4-%EB%8B%A8%EB%B0%B1%EC%B2%B4%EB%A9%80%ED%8B%B0%EC%98%A4%EB%AF%B9%EC%8A%A4-%ED%86%B5%ED%95%A9%EB%B6%84%EC%84%9D-%EB%B0%A9%EB%B2%95%EB%A1%A0-CH9</guid>
            <pubDate>Tue, 23 Jun 2026 08:25:59 GMT</pubDate>
            <description><![CDATA[<h2 id="1-약물반응-예측이-필요한-이유">1. 약물반응 예측이 필요한 이유</h2>
<img src = https://velog.velcdn.com/images/sjh9_4/post/79c343a3-cb68-4a6f-a229-86827cfc4e37/image.png width = 600>

<ul>
<li><p>같은 약을 사용해도 환자마다 반응이 다르며 어떤 환자는 효과가 좋고 어떤 환자는 효과가 없거나 부작용이 클 수 있음</p>
</li>
<li><p>그래서 약물반응 예측의 목표는 환자의 분자적 특징을 바탕으로 어떤 약물이 효과적일지 미리 예측하는 것이며 이는 정밀의학과 연결됨</p>
</li>
<li><p>모든 환자에게 같은 치료를 적용하는 것이 아니라 환자의 유전체·전사체·단백체 정보에 맞는 치료를 선택하는 것임</p>
</li>
</ul>
</br>

<hr>
<h2 id="2-약물반응-예측에-필요한-데이터">2. 약물반응 예측에 필요한 데이터</h2>
<ul>
<li>약물반응 예측 모델을 만들기 위해서는 크게 세 가지 데이터가 필요함</li>
</ul>
<table>
<thead>
<tr>
<th>데이터</th>
<th>역할</th>
</tr>
</thead>
<tbody><tr>
<td>Drug response measurement</td>
<td>종속변수, 예측해야 하는 값</td>
</tr>
<tr>
<td>Molecular information</td>
<td>독립변수, 오믹스 데이터</td>
</tr>
<tr>
<td>Clinical information</td>
<td>환자 임상 정보</td>
</tr>
</tbody></table>
<ul>
<li><p>예를 들어 drug response는 IC50, AUC 같은 값으로 표현될 수 있음</p>
</li>
<li><p>오믹스 정보로는 mutation, copy number, gene expression, proteomics 등이 사용됨</p>
</li>
<li><p>모델은 <strong>오믹스 정보 + 임상 정보 → 약물 반응 예측</strong> 관계로 학습을 함</p>
</li>
</ul>
</br>

<hr>
<h2 id="3-실제-환자-데이터의-한계">3. 실제 환자 데이터의 한계</h2>
<ul>
<li><p>문제는 실제 인간 환자 데이터가 충분하지 않다는 것인데 질병은 매우 이질적이고 암종이나 subtype마다 충분한 샘플이 필요함</p>
</li>
<li><p>하지만 오믹스 데이터, 임상 정보, 약물 반응 정보가 모두 연결된 대규모 고품질 데이터셋은 많지 않아서 약물반응 예측 연구에서는 pre-clinical model 데이터를 많이 사용함
<img src="https://velog.velcdn.com/images/sjh9_4/post/6a28d1e2-5ab2-4e53-8f4d-5523ac293a68/image.png" alt=""></p>
</li>
</ul>
<table>
<thead>
<tr>
<th>데이터셋</th>
<th>특징</th>
</tr>
</thead>
<tbody><tr>
<td>GDSC</td>
<td>암 세포주와 약물 반응 데이터</td>
</tr>
<tr>
<td>CTD²</td>
<td>암 타깃 발굴 관련 데이터</td>
</tr>
<tr>
<td>PDX encyclopedia</td>
<td>환자 유래 종양 모델 데이터</td>
</tr>
<tr>
<td>Cell Model Passports</td>
<td>세포주별 mutation, copy number, gene expression, proteomics 정보</td>
</tr>
</tbody></table>
</br>

<hr>
<h2 id="4-pharmacogenomic-dataset">4. Pharmacogenomic dataset</h2>
<ul>
<li><p>Pharmacogenomic dataset은 약물 반응과 유전체 정보를 함께 포함한 데이터셋임</p>
</li>
<li><p>예를 들어 GDSC는 약 1,000개 암 세포주와 수백 개 약물에 대한 IC50/AUC 정보를 제공함
<img src="https://velog.velcdn.com/images/sjh9_4/post/22d0f0fb-fa0b-4928-b1f8-c4d983798b9f/image.png" alt=""></p>
</li>
<li><p>Cell Model Passports는 약 2,000개 cell line에 대해 mutation, copy number, gene expression, proteomics 정보를 포함함</p>
</li>
<li><p>이런 데이터셋을 이용하면 모델은 특정 mutation이나 gene expression 패턴을 가진 세포주는 어떤 약물에 민감한지를 학습할 수 있음</p>
</li>
</ul>
</br>

<hr>
<h2 id="5-머신러닝-기반-약물반응-예측">5. 머신러닝 기반 약물반응 예측</h2>
<ul>
<li>약물반응 예측에는 다양한 머신러닝 모델이 사용됨</li>
</ul>
<table>
<thead>
<tr>
<th>모델</th>
<th>설명</th>
</tr>
</thead>
<tbody><tr>
<td>Ridge regression</td>
<td>L2 regularization을 사용하는 회귀 모델</td>
</tr>
<tr>
<td>Lasso regression</td>
<td>L1 regularization으로 중요한 변수 선택</td>
</tr>
<tr>
<td>Elastic net</td>
<td>L1과 L2를 함께 사용하는 모델</td>
</tr>
<tr>
<td>Random forest</td>
<td>여러 decision tree를 결합한 ensemble 모델</td>
</tr>
<tr>
<td>SVM</td>
<td>고차원 데이터 분류/회귀에 사용</td>
</tr>
</tbody></table>
<ul>
<li><p>오믹스 데이터는 feature 수가 매우 많기 때문에 regularization이 중요함</p>
</li>
<li><p>Lasso는 불필요한 변수를 줄이고 Ridge는 계수를 안정화하며 Elastic Net은 두 방식을 섞어서 사용함</p>
</li>
</ul>
</br>

<hr>
<h2 id="6-딥러닝-기반-약물반응-예측">6. 딥러닝 기반 약물반응 예측</h2>
<ul>
<li>딥러닝은 오믹스 데이터와 약물 반응 사이의 복잡한 비선형 관계를 학습할 수 있음</li>
</ul>
<table>
<thead>
<tr>
<th>모델</th>
<th>특징</th>
</tr>
</thead>
<tbody><tr>
<td>DNN</td>
<td>완전연결 신경망</td>
</tr>
<tr>
<td>RNN</td>
<td>순차적 데이터 처리 가능</td>
</tr>
<tr>
<td>CNN</td>
<td>패턴 추출에 강함</td>
</tr>
<tr>
<td>Autoencoder</td>
<td>고차원 데이터를 압축</td>
</tr>
<tr>
<td>VAE</td>
<td>확률적 latent space 학습</td>
</tr>
<tr>
<td>Deep belief network</td>
<td>계층적 representation 학습</td>
</tr>
</tbody></table>
<ul>
<li>딥러닝은 여러 오믹스 데이터를 통합하거나 약물 구조 정보와 세포주 오믹스 정보를 함께 학습하는 데 활용될 수 있음</li>
</ul>
</br>

<hr>
<h2 id="7-moldi-모델">7. MOLDI 모델</h2>
<ul>
<li>MOLDI는 multi-omics late integration을 이용한 deep neural network 기반 약물반응 예측 모델임
<img src="https://velog.velcdn.com/images/sjh9_4/post/9b0cac02-87d1-430b-be69-48fb0f30040a/image.png" alt=""></li>
</ul>
<ul>
<li><p>MOLDI는 mutation, copy number, gene expression 데이터를 각각 처리한 뒤에 각 오믹스별 feature를 추출하고 마지막 단계에서 통합함</p>
</li>
<li><p>특징적으로 triplet loss를 사용함</p>
</li>
</ul>
<table>
<thead>
<tr>
<th>구성</th>
<th>의미</th>
</tr>
</thead>
<tbody><tr>
<td>Anchor</td>
<td>약물에 민감한 샘플</td>
</tr>
<tr>
<td>Positive</td>
<td>또 다른 민감한 샘플</td>
</tr>
<tr>
<td>Negative</td>
<td>약물에 저항성인 샘플</td>
</tr>
</tbody></table>
<ul>
<li>모델은 민감한 샘플끼리는 latent space에서 가깝게 민감한 샘플과 저항성 샘플은 멀어지도록 학습함</li>
</ul>
</br>

<hr>
<h2 id="8-약물반응-예측의-한계">8. 약물반응 예측의 한계</h2>
<ul>
<li>약물반응 예측에는 아직 한계가 있음</li>
</ul>
<table>
<thead>
<tr>
<th>한계</th>
<th>설명</th>
</tr>
</thead>
<tbody><tr>
<td>Cell line과 실제 환자 차이</td>
<td>세포주는 종양 미세환경, 면역세포, 저산소 환경 등을 반영하기 어려움</td>
</tr>
<tr>
<td>2D culture 한계</td>
<td>실제 종양의 3차원 구조와 다름</td>
</tr>
<tr>
<td>종양 이질성 부족</td>
<td>subclone 다양성과 상호작용을 충분히 반영하지 못함</td>
</tr>
<tr>
<td>약물 coverage 제한</td>
<td>모든 약물을 충분히 테스트하기 어려움</td>
</tr>
<tr>
<td>비현실적 약물 농도</td>
<td>실제 체내 약물 대사와 다를 수 있음</td>
</tr>
</tbody></table>
<ul>
<li>모델 성능이 좋아도 실제 환자 치료에 바로 적용하기는 어렵고 임상적 검증이 필요함</li>
</ul>
</br>

<hr>
<h2 id="최종-정리">최종 정리</h2>
<ul>
<li><p>9강의 핵심은 오믹스 데이터를 이용해 약물 반응을 예측하는 것임</p>
</li>
<li><p>약물반응 예측 모델은 drug response를 종속변수로 두고 mutation, copy number, gene expression, proteomics 같은 오믹스 데이터를 독립변수로 사용함</p>
</li>
<li><p>GDSC, Cell Model Passports 같은 pharmacogenomic dataset을 이용해 모델을 학습하고, 머신러닝이나 딥러닝 모델을 통해 약물 민감도나 저항성을 예측함</p>
</li>
</ul>
<blockquote>
<p>딥러닝 기반 약물반응 예측은 환자 또는 세포주의 오믹스 정보를 이용해 특정 약물에 대한 민감도와 저항성을 예측하고 정밀의학적 치료 선택을 돕는 분석 방법임</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[ML/AI 기반 유전체-단백체
멀티오믹스 통합분석 방법론 - CH8]]></title>
            <link>https://velog.io/@sjh9_4/MLAI-%EA%B8%B0%EB%B0%98-%EC%9C%A0%EC%A0%84%EC%B2%B4-%EB%8B%A8%EB%B0%B1%EC%B2%B4%EB%A9%80%ED%8B%B0%EC%98%A4%EB%AF%B9%EC%8A%A4-%ED%86%B5%ED%95%A9%EB%B6%84%EC%84%9D-%EB%B0%A9%EB%B2%95%EB%A1%A0-CH8-q8xicv1q</link>
            <guid>https://velog.io/@sjh9_4/MLAI-%EA%B8%B0%EB%B0%98-%EC%9C%A0%EC%A0%84%EC%B2%B4-%EB%8B%A8%EB%B0%B1%EC%B2%B4%EB%A9%80%ED%8B%B0%EC%98%A4%EB%AF%B9%EC%8A%A4-%ED%86%B5%ED%95%A9%EB%B6%84%EC%84%9D-%EB%B0%A9%EB%B2%95%EB%A1%A0-CH8-q8xicv1q</guid>
            <pubDate>Fri, 19 Jun 2026 08:19:29 GMT</pubDate>
            <description><![CDATA[<h2 id="1-autoencoder란">1. Autoencoder란</h2>
<ul>
<li>Autoencoder는 입력 데이터를 압축한 뒤 다시 복원하도록 학습하는 신경망이며 구조는 크게 세 부분으로 나뉨<img src = https://velog.velcdn.com/images/sjh9_4/post/cb6aea02-d19a-4135-b1ac-9cdeabbcd354/image.png width = 600>


</li>
</ul>
<table>
<thead>
<tr>
<th>구성</th>
<th>설명</th>
</tr>
</thead>
<tbody><tr>
<td>Encoder</td>
<td>입력 데이터를 저차원 표현으로 압축</td>
</tr>
<tr>
<td>Latent space</td>
<td>입력 데이터의 핵심 특징만 담은 압축 공간</td>
</tr>
<tr>
<td>Decoder</td>
<td>압축된 표현으로부터 원래 데이터를 복원</td>
</tr>
</tbody></table>
<ul>
<li>Autoencoder는 다음 흐름으로 작동함</li>
</ul>
<p>$$Input → Encoder → Latent space → Decoder → Reconstructed input$$</p>
<ul>
<li>오믹스 데이터에서는 feature 수가 매우 많기 때문에 autoencoder를 이용해 고차원 데이터를 더 낮은 차원의 latent representation으로 압축할 수 있음</li>
</ul>
</br>

<hr>
<h2 id="2-autoencoder의-한계">2. Autoencoder의 한계</h2>
<img src = https://velog.velcdn.com/images/sjh9_4/post/b788aac2-7140-4af2-ab56-692836bf11d8/image.png width = 500>


<ul>
<li><p>일반 autoencoder는 입력 데이터를 잘 복원하는 데는 유용하지만 새로운 데이터를 생성하는 데는 한계가 있음</p>
</li>
<li><p>이유는 latent space가 매끄럽고 연속적으로 정리되지 않을 수 있기 때문임</p>
</li>
<li><p>예를 들어 MNIST 숫자 이미지에서 각 숫자들이 latent space 안에서 cluster를 만들지만 cluster 사이에는 실제 데이터와 대응되지 않는 빈 공간이 생길 수 있음</p>
</li>
<li><p>이런 영역에서 샘플링하면 비현실적인 결과가 나올 수 있으며 반 autoencoder는 복원에는 강하지만 생성에는 약한 구조라고 볼 수 있음</p>
</li>
</ul>
</br>

<hr>
<h2 id="3-vae">3. VAE</h2>
<ul>
<li><p>VAE는 Variational Autoencoder의 약자이며 일반 autoencoder와 비슷하게 encoder와 decoder를 사용하지만 차이가 있음</p>
</li>
<li><p>일반 autoencoder는 하나의 고정된 latent vector를 만들지만 VAE는 latent vector를 하나의 점이 아니라 확률분포로 표현함</p>
<img src = https://velog.velcdn.com/images/sjh9_4/post/3661fdd0-10b9-4477-9a2d-218defc68418/image.png width = 500>


</li>
</ul>
<ul>
<li>보통 Gaussian distribution을 사용하고 encoder는 다음 두 값을 출력함</li>
</ul>
<table>
<thead>
<tr>
<th>값</th>
<th>의미</th>
</tr>
</thead>
<tbody><tr>
<td>$$μ$$</td>
<td>latent distribution의 평균</td>
</tr>
<tr>
<td>$$σ$$</td>
<td>latent distribution의 표준편차</td>
</tr>
</tbody></table>
<ul>
<li>그 다음 이 분포에서 z를 샘플링하고, decoder가 이를 복원함</li>
</ul>
<p>$$Input x → Encoder → μ, σ → Sampling z → Decoder → Reconstructed x$$ </p>
<ul>
<li>이렇게 하면 latent space가 더 매끄럽고 연속적인 구조를 가지게 되어 새로운 데이터 생성에도 더 적합함</li>
</ul>
</br>

<hr>
<h2 id="4-vae의-학습-목표">4. VAE의 학습 목표</h2>
<p>VAE는 단순히 입력을 잘 복원하는 것만 목표로 하지 않는다.
크게 두 가지를 동시에 학습한다.
<img src = https://velog.velcdn.com/images/sjh9_4/post/6cf1b13a-18de-4faf-bcbb-f137f88e598d/image.png width = 500></p>
<table>
<thead>
<tr>
<th>손실</th>
<th>의미</th>
</tr>
</thead>
<tbody><tr>
<td>Reconstruction loss</td>
<td>입력 데이터를 얼마나 잘 복원하는지</td>
</tr>
<tr>
<td>Regularization loss</td>
<td>latent space가 정해진 확률분포를 따르도록 조정</td>
</tr>
</tbody></table>
<ul>
<li>자료에서는 VAE가 ELBO(Evidence Lower Bound)를 사용해 입력 데이터 x에 대한 확률의 하한을 최대화한다고 설명함</li>
</ul>
<blockquote>
<p>VAE 핵심은 데이터를 잘 복원하면서도 latent space를 정돈된 확률분포 형태로 만드는 것</p>
</blockquote>
</br>

<hr>
<h2 id="5-vae가-멀티오믹스-통합에-쓰이는-이유">5. VAE가 멀티오믹스 통합에 쓰이는 이유</h2>
<ul>
<li><p>멀티오믹스 데이터는 gene expression, DNA methylation, miRNA expression, proteomics처럼 서로 다른 데이터 타입을 가짐</p>
</li>
<li><p>이 데이터를 그대로 합치면 차원도 다르고, 분포도 다르고, scale도 다름</p>
</li>
<li><p>VAE를 사용하면 여러 오믹스 데이터를 encoder를 통해 공통 latent space로 압축할 수 있음</p>
<ul>
<li>여러 오믹스 데이터 → Encoder → 공통 latent representation</li>
</ul>
</li>
<li><p>위와 같은 형채로 만들 수 있고 이 latent space는 이후 다음 작업에 활용될 수 있음</p>
</li>
</ul>
<table>
<thead>
<tr>
<th>Downstream task</th>
<th>설명</th>
</tr>
</thead>
<tbody><tr>
<td>Dimensionality reduction</td>
<td>고차원 오믹스 데이터를 저차원으로 시각화</td>
</tr>
<tr>
<td>Tumor type classification</td>
<td>암종 또는 subtype 분류</td>
</tr>
<tr>
<td>Biomarker discovery</td>
<td>중요한 feature 탐색</td>
</tr>
<tr>
<td>Data generation</td>
<td>새로운 데이터 생성 또는 결측 보완</td>
</tr>
<tr>
<td>Patient stratification</td>
<td>환자 그룹화</td>
</tr>
</tbody></table>
</br>

<hr>
<h2 id="6-omiembed-예시">6. OmiEmbed 예시</h2>
<ul>
<li><p>자료에서는 VAE 기반 멀티오믹스 통합 모델의 예시로 OmiEmbed가 소개됨</p>
<img src = https://velog.velcdn.com/images/sjh9_4/post/c8662162-b099-4f80-a608-a024de35ed4b/image.png width = 400>
</li>
<li><p>OmiEmbed는 gene expression, DNA methylation, miRNA expression 같은 여러 오믹스 데이터를 각각 encoder에 넣고, 이를 결합해 하나의 latent vector로 만듦</p>
</li>
<li><p>그 후 decoder를 통해 각 오믹스 데이터를 복원하고, 동시에 diagnostic task, prognostic task, demographic task 같은 downstream task도 수행함</p>
<ul>
<li>여러 오믹스 입력 → 오믹스별 Encoder → 통합 latent space → Decoder + 예측 task</li>
</ul>
</li>
</ul>
<blockquote>
<p>OmiEmbed는 단순히 데이터를 압축하는 것뿐 아니라 압축된 표현이 실제 암 분류나 예후 예측에도 도움이 되도록 학습함</p>
</blockquote>
</br>

<hr>
<h2 id="7-vae-기반-통합의-장점">7. VAE 기반 통합의 장점</h2>
<table>
<thead>
<tr>
<th>장점</th>
<th>설명</th>
</tr>
</thead>
<tbody><tr>
<td>비선형 관계 학습</td>
<td>오믹스 간 복잡한 관계를 신경망으로 학습</td>
</tr>
<tr>
<td>차원 축소</td>
<td>고차원 데이터를 latent space로 압축</td>
</tr>
<tr>
<td>데이터 통합</td>
<td>서로 다른 오믹스 데이터를 하나의 표현으로 결합</td>
</tr>
<tr>
<td>생성 모델</td>
<td>새로운 샘플 생성이나 결측값 보완 가능</td>
</tr>
<tr>
<td>downstream task 성능 향상</td>
<td>암종 분류, subtype 분석 등에 활용 가능</td>
</tr>
</tbody></table>
<img src = https://velog.velcdn.com/images/sjh9_4/post/e0fc4eb8-f60f-4c39-a747-c3bb39427198/image.png width = 500>

<ul>
<li>downstream task 예시에서도 multi-omics 정보를 함께 사용했을 때 tumor type classification 성능이 향상되는 결과가 나옴</li>
</ul>
</br>

<hr>
<h2 id="최종-정리">최종 정리</h2>
<ul>
<li><p>8강의 핵심은 VAE를 이용해 여러 오믹스 데이터를 공통 latent space로 통합하는 것임</p>
</li>
<li><p>Autoencoder는 입력 데이터를 압축하고 복원하는 모델이고 VAE는 latent space를 확률분포로 표현해 더 매끄럽고 생성 가능한 구조를 만듦</p>
</li>
<li><p>멀티오믹스에서는 VAE를 이용해 gene expression, DNA methylation, miRNA expression 같은 서로 다른 데이터를 하나의 latent representation으로 통합할 수 있음</p>
</li>
<li><p>이 통합 표현은 차원축소, 암종 분류, subtype 분석, 예후 예측 등에 활용됨</p>
</li>
</ul>
<blockquote>
<p>VAE 기반 멀티오믹스 통합은 여러 오믹스 데이터를 확률적 latent space로 압축해 복잡한 생물학적 패턴을 학습하고, 이를 분류·예측·시각화에 활용하는 방법임</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[ML/AI 기반 유전체-단백체
멀티오믹스 통합분석 방법론 - CH 7]]></title>
            <link>https://velog.io/@sjh9_4/MLAI-%EA%B8%B0%EB%B0%98-%EC%9C%A0%EC%A0%84%EC%B2%B4-%EB%8B%A8%EB%B0%B1%EC%B2%B4%EB%A9%80%ED%8B%B0%EC%98%A4%EB%AF%B9%EC%8A%A4-%ED%86%B5%ED%95%A9%EB%B6%84%EC%84%9D-%EB%B0%A9%EB%B2%95%EB%A1%A0</link>
            <guid>https://velog.io/@sjh9_4/MLAI-%EA%B8%B0%EB%B0%98-%EC%9C%A0%EC%A0%84%EC%B2%B4-%EB%8B%A8%EB%B0%B1%EC%B2%B4%EB%A9%80%ED%8B%B0%EC%98%A4%EB%AF%B9%EC%8A%A4-%ED%86%B5%ED%95%A9%EB%B6%84%EC%84%9D-%EB%B0%A9%EB%B2%95%EB%A1%A0</guid>
            <pubDate>Fri, 19 Jun 2026 00:33:06 GMT</pubDate>
            <description><![CDATA[<h2 id="1--클러스터링하는-이유">1 . 클러스터링하는 이유</h2>
<ul>
<li>같은 암 환자라도 모두 같은 특성을 가지는 것은 아니며 환자마다 유전자 변이, RNA 발현, 단백질 변화가 다를 수 있고, 이에 따라 예후나 치료 반응도 달라질 수 있음<img src = https://velog.velcdn.com/images/sjh9_4/post/383596f6-75f9-4ca2-a2cf-5ff61c9c6056/image.png width = 300>


</li>
</ul>
<ul>
<li><p>그래서 환자를 공통된 분자적 특징에 따라 나누는 것이 subtyping임</p>
</li>
<li><p>이런 분석은 정밀의학과 연결되는데 서브타입별로 다른 치료 전략이나 새로운 치료 타깃을 찾을 수 있기 때문임</p>
</li>
</ul>
</br>

<hr>
<h2 id="2-tcga와-서브타입-분석">2. TCGA와 서브타입 분석</h2>
<ul>
<li>TCGA는 여러 암종에 대해 mutation, copy number, gene expression, DNA methylation, miRNA, RPPA, clinical data 등을 수집한 대규모 암 오믹스 프로젝트임<img src = https://velog.velcdn.com/images/sjh9_4/post/33f395a4-1c59-4599-84ca-acadc0f0c2ec/image.png width =600>


</li>
</ul>
<ul>
<li><p>TCGA의 목표 중 하나는 암을 분자적으로 특성화하고, 암의 subtype을 찾는 것이었음</p>
</li>
<li><p>예를 들어 위암 TCGA 연구에서는 여러 오믹스 데이터를 기반으로 위암을 EBV, MSI, genomically stable, chromosomal instability 같은 subtype으로 나누었음</p>
</li>
<li><p>같은 위암이라도 분자적 특징에 따라 다른 그룹으로 나눌 수 있음을 보여준 사례임</p>
</li>
</ul>
</br>

<hr>
<h2 id="3-서브타입-분석-방법">3. 서브타입 분석 방법</h2>
<ul>
<li>서브타입 분석은 크게 single omics 기반 분석과 multiomics 기반 통합 분석으로 나눌 수 있음</li>
</ul>
<h3 id="3-1-single-omics-기반-분석">3-1. Single omics 기반 분석</h3>
<ul>
<li>하나의 오믹스 데이터만 사용해서 클러스터링하는 방법</li>
</ul>
<table>
<thead>
<tr>
<th>방법</th>
<th>설명</th>
</tr>
</thead>
<tbody><tr>
<td>Hierarchical clustering</td>
<td>샘플 간 거리 기반으로 계층적 군집 형성</td>
</tr>
<tr>
<td>K-means clustering</td>
<td>미리 정한 K개의 그룹으로 샘플 분류</td>
</tr>
<tr>
<td>NMF</td>
<td>데이터를 음수가 없는 행렬로 분해해 패턴 기반 군집화</td>
</tr>
</tbody></table>
<ul>
<li>단점은 하나의 데이터 층위만 보기 때문에, 암의 복잡한 특성을 충분히 반영하기 어려움</li>
</ul>
<h3 id="3-2-multiomics-기반-통합-클러스터링">3-2. Multiomics 기반 통합 클러스터링</h3>
<ul>
<li>여러 오믹스 데이터를 함께 사용해 환자 subtype을 찾는 방법</li>
</ul>
<img src = https://velog.velcdn.com/images/sjh9_4/post/56e128f7-314b-4f3d-9846-32df472ec41b/image.png width =500>


<table>
<thead>
<tr>
<th>방식</th>
<th>설명</th>
</tr>
</thead>
<tbody><tr>
<td>Concatenated clustering</td>
<td>여러 오믹스 데이터를 하나의 큰 matrix로 합친 뒤 클러스터링</td>
</tr>
<tr>
<td>Cluster of clusters</td>
<td>각 오믹스별로 먼저 클러스터링하고, 그 결과를 다시 통합</td>
</tr>
<tr>
<td>Integrative approaches</td>
<td>MOFA+, iCluster+, intNMF 같은 모델로 공통 latent space를 만든 뒤 클러스터링</td>
</tr>
</tbody></table>
<ul>
<li>최근에는 integrative approach가 많이 사용되는데 각 오믹스의 특성을 보존하면서 공통된 환자 구조를 찾을 수 있기 때문임</li>
</ul>
</br>

<hr>
<h2 id="4-클러스터-수-k-선택">4. 클러스터 수 K 선택</h2>
<ul>
<li><p>K-means, NMF, iCluster 같은 방법은 보통 미리 cluster 수 K를 정해야 함</p>
</li>
<li><p>하지만 K를 아무렇게나 정하면 안 되기 때문에 여러 평가 지표를 사용해 적절한 K를 선택함</p>
</li>
</ul>
<table>
<thead>
<tr>
<th>방법</th>
<th>의미</th>
</tr>
</thead>
<tbody><tr>
<td>Silhouette score</td>
<td>같은 클러스터 안에서는 가깝고, 다른 클러스터와는 잘 떨어져 있는지 평가</td>
</tr>
<tr>
<td>Elbow method</td>
<td>K가 증가할 때 WCSS나 explained variation의 변화가 꺾이는 지점 선택</td>
</tr>
<tr>
<td>BIC</td>
<td>모델 적합도와 복잡도를 함께 고려해 가장 적절한 K 선택</td>
</tr>
</tbody></table>
</br>

<hr>
<h2 id="5-icluster-계열-방법">5. iCluster 계열 방법</h2>
<ul>
<li>iCluster는 멀티오믹스 데이터를 통합해 subtype을 찾는 대표적인 방법임<img src = https://velog.velcdn.com/images/sjh9_4/post/46af1b87-bc16-49ec-a37e-6583dbde11e2/image.png width = 500>


</li>
</ul>
<ul>
<li>기본 아이디어는 여러 오믹스 데이터가 공통된 잠재공간, 즉 latent variable에서 나온다고 보는 것임</li>
</ul>
<table>
<thead>
<tr>
<th>기호</th>
<th>의미</th>
</tr>
</thead>
<tbody><tr>
<td>X(m)</td>
<td>m번째 오믹스 데이터</td>
</tr>
<tr>
<td>Z</td>
<td>샘플의 공통 latent space</td>
</tr>
<tr>
<td>W(m)</td>
<td>해당 오믹스 데이터의 weight matrix</td>
</tr>
<tr>
<td>ε(m)</td>
<td>오차항</td>
</tr>
</tbody></table>
<blockquote>
<p>여러 오믹스 데이터를 공통 latent space인 Z로 표현하고 그 Z를 이용해 환자들을 클러스터링함</p>
</blockquote>
</br>

<hr>
<h2 id="6-icluster-iclusterplus-iclusterbayes-차이">6. iCluster, iClusterPlus, iClusterBayes 차이</h2>
<table>
<thead>
<tr>
<th>방법</th>
<th>특징</th>
</tr>
</thead>
<tbody><tr>
<td>iCluster</td>
<td>Gaussian latent variable model. 연속형 데이터 중심</td>
</tr>
<tr>
<td>iClusterPlus</td>
<td>다양한 데이터 타입 처리 가능. 연속형, count, binary, categorical 데이터 지원</td>
</tr>
<tr>
<td>iClusterBayes</td>
<td>Bayesian 방식. parameter와 latent variable의 불확실성까지 추정</td>
</tr>
</tbody></table>
<ul>
<li><p>iCluster는 유전자 발현처럼 연속형 데이터에 적합함</p>
</li>
<li><p>하지만 실제 오믹스 데이터는 유전자 변이처럼 binary인 경우도 있고, copy number처럼 category 형태인 경우도 있고 iClusterPlus는 이런 다양한 데이터 타입을 함께 모델링할 수 있도록 확장된 방법임</p>
</li>
<li><p>iClusterBayes는 여기에 Bayesian 모델을 적용한 방식이고 단순한 점 추정값이 아니라 posterior distribution을 이용해 불확실성까지 제공함</p>
</li>
</ul>
</br>

<hr>
<h2 id="최종-정리">최종 정리</h2>
<ul>
<li><p>7강의 핵심은 멀티오믹스 데이터를 이용해 환자를 분자적 subtype으로 나누는 방법임</p>
</li>
<li><p>환자는 같은 암종이라도 서로 다른 분자적 특징을 가질 수 있고 이 차이는 예후, 진행 속도, 약물 반응과 연결될 수 있음</p>
</li>
<li><p>서브타입 분석에는 hierarchical clustering, K-means, NMF 같은 single omics 방법이 있고 멀티오믹스에서는 concatenated clustering, cluster of clusters, iCluster 계열 같은 통합 클러스터링 방법이 사용됨</p>
</li>
</ul>
<blockquote>
<p>멀티오믹스 기반 서브타입 분석은 여러 오믹스 데이터를 통합해 환자를 분자적 특성이 비슷한 그룹으로 나누고, 각 그룹의 예후와 치료 반응 차이를 해석하는 분석이다.</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[ML/AI 기반 유전체-단백체
멀티오믹스 통합분석 방법론 - CH6]]></title>
            <link>https://velog.io/@sjh9_4/MLAI-%EA%B8%B0%EB%B0%98-%EC%9C%A0%EC%A0%84%EC%B2%B4-%EB%8B%A8%EB%B0%B1%EC%B2%B4%EB%A9%80%ED%8B%B0%EC%98%A4%EB%AF%B9%EC%8A%A4-%ED%86%B5%ED%95%A9%EB%B6%84%EC%84%9D-%EB%B0%A9%EB%B2%95%EB%A1%A0-CH6</link>
            <guid>https://velog.io/@sjh9_4/MLAI-%EA%B8%B0%EB%B0%98-%EC%9C%A0%EC%A0%84%EC%B2%B4-%EB%8B%A8%EB%B0%B1%EC%B2%B4%EB%A9%80%ED%8B%B0%EC%98%A4%EB%AF%B9%EC%8A%A4-%ED%86%B5%ED%95%A9%EB%B6%84%EC%84%9D-%EB%B0%A9%EB%B2%95%EB%A1%A0-CH6</guid>
            <pubDate>Wed, 17 Jun 2026 05:51:16 GMT</pubDate>
            <description><![CDATA[<h2 id="1-요인분석">1. 요인분석</h2>
<ul>
<li><p>요인분석은 여러 관측 변수들 사이의 관계를 설명하는 숨겨진 요인을 찾는 분석 방법임</p>
</li>
<li><p>예를 들어 유전자 수천 개를 하나씩 보는 대신 그 유전자들의 변화를 설명하는 몇 개의 공통 요인을 찾는 것임</p>
</li>
</ul>
<blockquote>
<p>복잡한 데이터를 몇 개의 대표적인 숨겨진 패턴으로 압축하는 방법</p>
</blockquote>
</br>

<hr>
<h2 id="2-latent-variable-model">2. Latent variable model</h2>
<ul>
<li><p>Latent variable은 직접 관측되지는 않지만, 데이터 안의 패턴을 설명하는 숨겨진 변수임</p>
<img src = https://velog.velcdn.com/images/sjh9_4/post/04f07761-055c-476f-a89c-c15f3cf0704e/image.png width = 500>
</li>
<li><p>오믹스 데이터에서는 유전자, 단백질, 대사체 같은 값은 직접 측정할 수 있음</p>
</li>
<li><p>하지만 그 뒤에서 작동하는 생물학적 과정, 예를 들어 특정 signaling pathway 활성, 면역 반응, 세포 증식 같은 것은 직접 하나의 값으로 측정하기 어려움</p>
</li>
<li><p>이때 latent factor를 이용하면 이런 숨겨진 생물학적 패턴을 추정할 수 있음</p>
</li>
</ul>
</br>

<hr>
<h2 id="3-matrix-factorization">3. Matrix factorization</h2>
<ul>
<li>요인분석은 보통 데이터 행렬을 두 개의 행렬로 나누는 방식으로 이해할 수 있음<img src = https://velog.velcdn.com/images/sjh9_4/post/2c0820a8-0185-4fe9-b600-58fac6b63186/image.png width = 500>


</li>
</ul>
<table>
<thead>
<tr>
<th>기호</th>
<th>의미</th>
</tr>
</thead>
<tbody><tr>
<td>Y</td>
<td>실제 관측된 오믹스 데이터</td>
</tr>
<tr>
<td>W</td>
<td>각 feature가 factor와 얼마나 관련 있는지 나타내는 weight</td>
</tr>
<tr>
<td>Z</td>
<td>각 sample이 factor를 얼마나 가지고 있는지 나타내는 latent factor</td>
</tr>
</tbody></table>
<ul>
<li>관측 데이터 Y를 feature weight인 W와 sample factor인 Z의 조합으로 설명하는 것임</li>
</ul>
</br>

<hr>
<h2 id="4-오믹스-데이터에서-요인분석이-필요한-이유">4. 오믹스 데이터에서 요인분석이 필요한 이유</h2>
<ul>
<li><p>오믹스 데이터는 보통 변수가 매우 많음</p>
</li>
<li><p>예를 들어 유전자 수천 개, 단백질 수천 개, 대사체 수백 개가 한 번에 측정되는데 이런 데이터를 그대로 해석하면 너무 복잡함</p>
</li>
</ul>
<table>
<thead>
<tr>
<th>목적</th>
<th>설명</th>
</tr>
</thead>
<tbody><tr>
<td>차원 축소</td>
<td>수천 개 변수를 몇 개 factor로 요약</td>
</tr>
<tr>
<td>생물학적 과정 해석</td>
<td>factor가 특정 pathway나 biological process를 의미할 수 있음</td>
</tr>
<tr>
<td>데이터 통합</td>
<td>여러 오믹스 layer에서 공통으로 나타나는 신호를 찾음</td>
</tr>
<tr>
<td>샘플 구분</td>
<td>factor 값으로 환자 subtype이나 질병군을 구분</td>
</tr>
</tbody></table>
</br>

<hr>
<h2 id="5-mofa">5. MOFA</h2>
<ul>
<li>MOFA는 Multi-Omics Factor Analysis의 약자이며 여러 오믹스 데이터를 통합해 latent factor를 찾는 대표적인 방법임</li>
</ul>
<ul>
<li>MOFA는 genome, transcriptome, proteome 같은 여러 데이터 layer를 함께 넣고,
각 layer에서 공통적으로 나타나는 패턴과 특정 layer에만 나타나는 패턴을 factor로 추출함</li>
</ul>
<blockquote>
<p>여러 오믹스 데이터를 동시에 보고, 질병이나 subtype을 설명하는 숨겨진 공통 요인을 찾는 방법</p>
</blockquote>
</br>

<hr>
<h2 id="6-mofa의-기본-구조">6. MOFA의 기본 구조</h2>
<ul>
<li>MOFA도 기본적으로 다음 식으로 표현됨
$$Y = WZ + e$$<img src = https://velog.velcdn.com/images/sjh9_4/post/ed3eb6e8-63d5-4ee1-908a-eab5ec0184ba/image.png width = 600>

</li>
</ul>
<table>
<thead>
<tr>
<th>항목</th>
<th>의미</th>
</tr>
</thead>
<tbody><tr>
<td>$Y$</td>
<td>관측된 multi-omics 데이터</td>
</tr>
<tr>
<td>$W$</td>
<td>factor가 각 feature에 미치는 영향</td>
</tr>
<tr>
<td>$Z$</td>
<td>sample별 latent factor 값</td>
</tr>
<tr>
<td>$e$</td>
<td>설명되지 않는 noise</td>
</tr>
</tbody></table>
<ul>
<li><p>여기서 중요한 건 $Z$와 $W$임 </p>
<ul>
<li>$Z$: 샘플별 factor 값
→ 어떤 환자가 특정 factor를 강하게 가지는지 확인 가능</li>
<li>$W$: feature별 weight
→ 어떤 유전자나 단백질이 해당 factor와 관련 있는지 확인 가능</li>
</ul>
</li>
<li><p>$Z$로는 샘플을 해석하고, $W$로는 factor의 생물학적 의미를 해석할 수 있음</p>
</li>
</ul>
</br>

<hr>
<h2 id="7-mofa와-mofa">7. MOFA와 MOFA+</h2>
<ul>
<li>MOFA+는 MOFA를 확장한 버전임</li>
</ul>
<table>
<thead>
<tr>
<th>구분</th>
<th>MOFA</th>
<th>MOFA+</th>
</tr>
</thead>
<tbody><tr>
<td>모델링</td>
<td>선형 모델</td>
<td>선형 + 비선형 모델</td>
</tr>
<tr>
<td>유연성</td>
<td>제한적</td>
<td>높음</td>
</tr>
<tr>
<td>계산 속도</td>
<td>빠름</td>
<td>상대적으로 느리지만 강건함</td>
</tr>
<tr>
<td>확장성</td>
<td>중간</td>
<td>높음</td>
</tr>
<tr>
<td>결측치 처리</td>
<td>가능</td>
<td>sparse data와 missing data 처리 가능</td>
</tr>
<tr>
<td>적합한 데이터</td>
<td>단순한 multi-omics 데이터</td>
<td>복잡한 multi-omics 또는 single-cell 데이터</td>
</tr>
</tbody></table>
<blockquote>
<p>MOFA는 비교적 단순한 데이터에 적합하고 MOFA+는 더 복잡한 multi-modal single-cell 데이터나 sparse한 데이터에 적합함</p>
</blockquote>
</br>

<hr>
<h2 id="최종-정리">최종 정리</h2>
<ul>
<li><p>6강의 핵심은 멀티오믹스 데이터를 latent factor로 요약해서 해석하는 것임</p>
</li>
<li><p>오믹스 데이터는 변수가 너무 많고 복잡하기 때문에 요인분석을 통해 데이터 안의 숨겨진 생물학적 패턴을 찾음</p>
</li>
<li><p>MOFA는 여러 오믹스 데이터를 통합해 공통 factor와 데이터별 특이 factor를 찾는 대표적인 방법임</p>
</li>
<li><p>이를 통해 환자 subtype, 질병 관련 pathway, 오믹스 간 공통 신호를 해석할 수 있음</p>
</li>
</ul>
<blockquote>
<p>멀티오믹스 요인분석은 여러 오믹스 데이터에서 숨겨진 공통 패턴을 찾아 복잡한 생물학적 현상을 더 간단하게 해석하는 방법임</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[ML/AI 기반 유전체-단백체
멀티오믹스 통합분석 방법론 - CH5]]></title>
            <link>https://velog.io/@sjh9_4/MLAI-%EA%B8%B0%EB%B0%98-%EC%9C%A0%EC%A0%84%EC%B2%B4-%EB%8B%A8%EB%B0%B1%EC%B2%B4%EB%A9%80%ED%8B%B0%EC%98%A4%EB%AF%B9%EC%8A%A4-%ED%86%B5%ED%95%A9%EB%B6%84%EC%84%9D-%EB%B0%A9%EB%B2%95%EB%A1%A0-CH5</link>
            <guid>https://velog.io/@sjh9_4/MLAI-%EA%B8%B0%EB%B0%98-%EC%9C%A0%EC%A0%84%EC%B2%B4-%EB%8B%A8%EB%B0%B1%EC%B2%B4%EB%A9%80%ED%8B%B0%EC%98%A4%EB%AF%B9%EC%8A%A4-%ED%86%B5%ED%95%A9%EB%B6%84%EC%84%9D-%EB%B0%A9%EB%B2%95%EB%A1%A0-CH5</guid>
            <pubDate>Tue, 16 Jun 2026 07:35:30 GMT</pubDate>
            <description><![CDATA[<h2 id="1-다변량분석">1. 다변량분석</h2>
<ul>
<li><p>다변량분석은 여러 변수를 동시에 분석하는 통계 방법임</p>
</li>
<li><p>오믹스 데이터는 유전자, 단백질, 대사체처럼 변수가 매우 많기 때문에 하나씩 따로 보기 어려움</p>
</li>
<li><p>그래서 여러 변수를 함께 보고 데이터 안의 관계, 패턴, 구조를 찾는 다변량분석이 필요함</p>
</li>
</ul>
<table>
<thead>
<tr>
<th>구분</th>
<th>예시</th>
</tr>
</thead>
<tbody><tr>
<td>탐색적 분석</td>
<td>PCA, Factor analysis, Cluster analysis</td>
</tr>
<tr>
<td>예측/분류 분석</td>
<td>Multivariate regression, SVM, Random forest</td>
</tr>
<tr>
<td>변수 간 관계 분석</td>
<td>CCA, MANOVA</td>
</tr>
</tbody></table>
</br>

<hr>
<h2 id="2-오믹스-데이터에서-필요한-이유">2. 오믹스 데이터에서 필요한 이유</h2>
<ul>
<li><p>오믹스 데이터는 보통 고차원 데이터이며 샘플 수보다 변수 수가 훨씬 많음</p>
</li>
<li><p>예를 들어 환자는 100명인데 유전자는 수천~수만 개일 수 있고 이런 데이터에서는 단순 분석보다 중요한 패턴을 압축해서 보는 방법이 필요함</p>
</li>
<li><p>다변량분석을 사용하면 다음이 가능함</p>
</li>
</ul>
<table>
<thead>
<tr>
<th>목적</th>
<th>설명</th>
</tr>
</thead>
<tbody><tr>
<td>복잡한 생물학적 관계 파악</td>
<td>여러 유전자·단백질 사이의 관계를 함께 봄</td>
</tr>
<tr>
<td>차원 축소</td>
<td>중요한 특징만 남겨 데이터 복잡도 감소</td>
</tr>
<tr>
<td>예측 성능 향상</td>
<td>질병 분류, 환자 subtype 예측 등에 활용</td>
</tr>
<tr>
<td>숨겨진 패턴 발견</td>
<td>subtype, molecular signature 탐색</td>
</tr>
<tr>
<td>데이터 통합</td>
<td>여러 오믹스 layer를 함께 분석</td>
</tr>
</tbody></table>
</br>

<hr>
<h2 id="3-멀티오믹스-통합에서의-역할">3. 멀티오믹스 통합에서의 역할</h2>
<ul>
<li><p>멀티오믹스는 genome, transcriptome, proteome처럼 서로 다른 데이터 층위를 함께 분석함</p>
</li>
<li><p>문제는 각 데이터가 형태와 스케일이 다르다는 점인데 예를 들어 DNA 변이는 0/1 형태일 수 있고, RNA 발현량은 count 또는 normalized value이며, 단백질 데이터는 intensity 값일 수 있음</p>
</li>
<li><p>다변량분석은 이런 서로 다른 데이터를 통합해서 공통 패턴을 찾는 데 사용됨</p>
</li>
</ul>
<blockquote>
<p>여러 오믹스 데이터에서 공통적으로 질병을 설명하는 중요한 특징을 찾는 것</p>
</blockquote>
</br>

<hr>
<h2 id="4-pls">4. PLS</h2>
<ul>
<li><p>PLS는 Partial Least Squares의 약자임</p>
</li>
<li><p>PLS는 독립변수 X와 종속변수 Y의 관계를 잘 설명하는 새로운 축, 즉 latent component를 찾는 방법임</p>
</li>
<li><p>예를 들어 X가 유전자 발현 데이터이고 Y가 질병 여부라면 PLS는 질병 여부와 가장 관련 있는 유전자 조합 방향을 찾음</p>
</li>
<li><p>PLS의 핵심은 X와 Y 사이의 공분산을 최대화하는 component를 찾는 것이며 X 안에서 변동이 큰 축을 찾는 PCA와 달리, PLS는 Y와 관련이 큰 축을 찾음</p>
</li>
</ul>
<table>
<thead>
<tr>
<th>방법</th>
<th>핵심</th>
</tr>
</thead>
<tbody><tr>
<td>PCA</td>
<td>X의 분산을 가장 잘 설명하는 축을 찾음</td>
</tr>
<tr>
<td>PLS</td>
<td>X와 Y의 관계를 가장 잘 설명하는 축을 찾음</td>
</tr>
</tbody></table>
</br>

<hr>
<h2 id="5-pls-da">5. PLS-DA</h2>
<ul>
<li><p>PLS-DA는 PLS를 분류 문제에 사용하는 방법이고 DA는 Discriminant Analysis의 약자임</p>
</li>
<li><p>일반 PLS는 Y가 연속형일 때 사용하는데 예를 들어 약물 반응 수치, 생존기간, 발현량 같은 값임</p>
</li>
<li><p>반면 PLS-DA는 Y가 범주형일 때 사용하며 예를 들어 정상/암, responder/non-responder, subtype 1/2/3 같은 경우임</p>
</li>
<li><p>범주형 Y를 0과 1로 변환한 뒤 PLS를 적용하는 방식임</p>
</li>
</ul>
<table>
<thead>
<tr>
<th>샘플</th>
<th align="right">Subtype 1</th>
<th align="right">Subtype 2</th>
<th align="right">Subtype 3</th>
</tr>
</thead>
<tbody><tr>
<td>Sample A</td>
<td align="right">1</td>
<td align="right">0</td>
<td align="right">0</td>
</tr>
<tr>
<td>Sample B</td>
<td align="right">0</td>
<td align="right">1</td>
<td align="right">0</td>
</tr>
<tr>
<td>Sample C</td>
<td align="right">0</td>
<td align="right">0</td>
<td align="right">1</td>
</tr>
</tbody></table>
<ul>
<li>PLS-DA는 어떤 변수 조합이 그룹을 잘 구분하는지 찾는 방법임</li>
</ul>
</br>

<hr>
<h2 id="6-multi-block-pls">6. Multi-block PLS</h2>
<ul>
<li><p>멀티오믹스에서는 데이터가 하나가 아니라 여러 개이며 예를 들어 같은 환자에 대해 다음 데이터가 있을 수 있음</p>
<ul>
<li>X1: transcriptome</li>
<li>X2: proteome</li>
<li>X3: methylation</li>
<li>Y: disease subtype</li>
</ul>
</li>
<li><p>이런 경우 각 오믹스 데이터를 block으로 보고 함께 분석하는 방법이 Multi-block PLS임</p>
</li>
<li><p>Multi-block PLS는 여러 오믹스 데이터 사이의 관계를 고려하면서 Y를 잘 설명하는 공통 component를 찾음</p>
</li>
</ul>
<blockquote>
<p>RNA 데이터, 단백질 데이터, methylation 데이터를 함께 사용해서 환자 subtype을 잘 나누는 특징을 찾는 방법임</p>
</blockquote>
<img src = https://velog.velcdn.com/images/sjh9_4/post/3c6f2e4d-63a6-4cde-b431-66390a122ecc/image.png width = 600>



</br>

<hr>
<h2 id="7-diablo">7. DIABLO</h2>
<ul>
<li><p>DIABLO는 멀티오믹스 분석에서 많이 쓰이는 방법 중 하나임</p>
<img src = https://velog.velcdn.com/images/sjh9_4/post/0b8d928a-191a-4dea-af0b-70e4c0eefdd4/image.png width = 400>
</li>
<li><p>이름은 Data Integration Analysis for Biomarker Discovery using Latent Variable Approaches for Omics studies임</p>
</li>
</ul>
<table>
<thead>
<tr>
<th>용어</th>
<th>의미</th>
</tr>
</thead>
<tbody><tr>
<td>Multi-block</td>
<td>여러 오믹스 데이터를 함께 사용</td>
</tr>
<tr>
<td>Sparse</td>
<td>중요한 변수만 선택</td>
</tr>
<tr>
<td>PLS-DA</td>
<td>그룹 분류에 유용한 latent component 탐색</td>
</tr>
</tbody></table>
<ul>
<li>DIABLO는 여러 오믹스 데이터를 통합해서 질병군이나 subtype을 잘 구분하는 biomarker 조합을 찾는 방법임</li>
</ul>
</br>

<hr>
<h2 id="8-mixomics">8. mixOmics</h2>
<ul>
<li><p>mixOmics는 오믹스 데이터 다변량분석과 통합 분석을 위한 R 패키지이며 특히 DIABLO를 사용할 수 있는 대표적인 패키지임</p>
</li>
<li><p>멀티오믹스 데이터에서 다음과 같은 분석에 활용할 수 있음</p>
</li>
</ul>
<table>
<thead>
<tr>
<th>분석</th>
<th>설명</th>
</tr>
</thead>
<tbody><tr>
<td>PCA/PLS</td>
<td>데이터 구조와 변수 관계 탐색</td>
</tr>
<tr>
<td>PLS-DA</td>
<td>그룹 분류</td>
</tr>
<tr>
<td>sparse PLS</td>
<td>중요한 변수 선택</td>
</tr>
<tr>
<td>DIABLO</td>
<td>여러 오믹스 통합 및 biomarker 탐색</td>
</tr>
</tbody></table>
</br>

<hr>
<h2 id="최종정리">최종정리</h2>
<ul>
<li><p>5강의 핵심은 다변량분석을 이용해 멀티오믹스 데이터를 통합하고, 질병과 관련된 중요한 패턴을 찾는 것임</p>
</li>
<li><p>PLS는 X와 Y의 관계를 가장 잘 설명하는 latent component를 찾는 방법이고 PLS-DA는 이를 분류 문제에 적용한 방법임</p>
</li>
<li><p>멀티오믹스에서는 여러 데이터 block을 함께 분석하는 Multi-block PLS가 사용되며 DIABLO는 여러 오믹스 데이터를 통합해 subtype을 구분하고 biomarker를 찾는 대표적인 방법임</p>
</li>
</ul>
<blockquote>
<p>멀티오믹스 다변량분석은 여러 오믹스 데이터에서 질병이나 subtype을 잘 설명하는 공통 패턴과 biomarker 조합을 찾는 분석 방법임</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[ML/AI 기반 유전체-단백체 멀티오믹스 통합분석 방법론 - CH4]]></title>
            <link>https://velog.io/@sjh9_4/MLAI-%EA%B8%B0%EB%B0%98-%EC%9C%A0%EC%A0%84%EC%B2%B4-%EB%8B%A8%EB%B0%B1%EC%B2%B4-%EB%A9%80%ED%8B%B0%EC%98%A4%EB%AF%B9%EC%8A%A4-%ED%86%B5%ED%95%A9%EB%B6%84%EC%84%9D-%EB%B0%A9%EB%B2%95%EB%A1%A0-CH4</link>
            <guid>https://velog.io/@sjh9_4/MLAI-%EA%B8%B0%EB%B0%98-%EC%9C%A0%EC%A0%84%EC%B2%B4-%EB%8B%A8%EB%B0%B1%EC%B2%B4-%EB%A9%80%ED%8B%B0%EC%98%A4%EB%AF%B9%EC%8A%A4-%ED%86%B5%ED%95%A9%EB%B6%84%EC%84%9D-%EB%B0%A9%EB%B2%95%EB%A1%A0-CH4</guid>
            <pubDate>Mon, 15 Jun 2026 04:38:52 GMT</pubDate>
            <description><![CDATA[<h2 id="1-멀티오믹스-통합-분석의-목적">1. 멀티오믹스 통합 분석의 목적</h2>
<ul>
<li>멀티오믹스 통합 분석은 여러 오믹스 데이터를 함께 사용해 질병과 관련된 생물학적 패턴을 찾는 방법이며 주요 목적은 다음과 같음</li>
</ul>
<table>
<thead>
<tr>
<th>목적</th>
<th>설명</th>
</tr>
</thead>
<tbody><tr>
<td>질병 관련 분자 패턴 탐색</td>
<td>질병에서 반복적으로 나타나는 DNA, RNA, protein 변화 찾기</td>
</tr>
<tr>
<td>환자 subtype 분류</td>
<td>비슷한 분자적 특징을 가진 환자끼리 그룹화</td>
</tr>
<tr>
<td>약물 반응 예측</td>
<td>어떤 환자가 특정 약물에 잘 반응할지 예측</td>
</tr>
<tr>
<td>조절 과정 이해</td>
<td>DNA 변화가 RNA, protein 변화로 이어지는 과정 해석</td>
</tr>
</tbody></table>
<ul>
<li>단순히 데이터를 합치는 것이 아니라 질병을 더 잘 설명하는 분자적 구조를 찾는 것이 목표임</li>
</ul>
</br>

<hr>
<h2 id="2-어떤-오믹스-데이터가-사용되는가">2. 어떤 오믹스 데이터가 사용되는가?</h2>
<ul>
<li>멀티오믹스 연구에서는 다양한 데이터가 함께 사용되며 대표적으로는 다음과 같음</li>
</ul>
<table>
<thead>
<tr>
<th>데이터</th>
<th>의미</th>
</tr>
</thead>
<tbody><tr>
<td>Genomics</td>
<td>DNA 변이, copy number 변화</td>
</tr>
<tr>
<td>Epigenomics</td>
<td>DNA methylation 등 후성유전 정보</td>
</tr>
<tr>
<td>Transcriptomics</td>
<td>RNA 발현 정보</td>
</tr>
<tr>
<td>Proteomics</td>
<td>단백질 발현 정보</td>
</tr>
<tr>
<td>Metabolomics</td>
<td>대사체 정보</td>
</tr>
<tr>
<td>Microbiomics</td>
<td>미생물 군집 정보</td>
</tr>
</tbody></table>
<ul>
<li>암 연구에서는 특히 genomics, transcriptomics, proteomics 조합이 많이 사용되며 질병의 원인부터 실제 기능 변화까지 연결해서 보기 좋기 때문임</li>
</ul>
</br>

<hr>
<h2 id="3-멀티오믹스-데이터-통합-방식">3. 멀티오믹스 데이터 통합 방식</h2>
<ul>
<li>멀티오믹스 데이터를 통합하는 방식은 크게 세 가지로 나뉨<img src =  https://velog.velcdn.com/images/sjh9_4/post/09c17ee8-053a-4a64-9f87-648457b327ce/image.png width = 500>

</li>
</ul>
<table>
<thead>
<tr>
<th>방식</th>
<th>설명</th>
</tr>
</thead>
<tbody><tr>
<td>Early integration</td>
<td>여러 오믹스 데이터를 처음부터 하나로 합친 뒤 분석</td>
</tr>
<tr>
<td>Middle integration</td>
<td>각 오믹스의 특징을 반영한 통합 표현을 만든 뒤 분석</td>
</tr>
<tr>
<td>Late integration</td>
<td>각 오믹스를 따로 분석한 뒤 결과를 마지막에 통합</td>
</tr>
</tbody></table>
<ul>
<li>최근에는 middle integration 방식이 많이 사용되는데 각 오믹스 데이터의 특성을 어느 정도 보존하면서도 통합 분석이 가능하기 때문임</li>
</ul>
</br>

<hr>
<h2 id="4-대표적인-통합-분석-방법">4. 대표적인 통합 분석 방법</h2>
<ul>
<li>멀티오믹스 통합 분석 방법은 여러 종류가 있음<img src = https://velog.velcdn.com/images/sjh9_4/post/8cdf6cdc-fc47-4e15-82ed-a8b85187a1e8/image.png width =500>

</li>
</ul>
<h3 id="4-1-joint-dimensionality-reduction">4-1. Joint dimensionality reduction</h3>
<ul>
<li><p>여러 오믹스 데이터를 낮은 차원의 공통 공간으로 줄이는 방법이고 대표적인 방식은 CCA나 factor analysis임</p>
<img src = https://velog.velcdn.com/images/sjh9_4/post/8e770191-931f-4160-8291-7d1d0e762f71/image.png width = 500>
</li>
<li><p>예를 들어 RNA 데이터와 protein 데이터를 각각 따로 보는 대신 둘의 공통 패턴을 잘 설명하는 latent factor를 찾는 방식임</p>
</li>
<li><p>이 방법은 환자 subtype 분류나 샘플 clustering에 자주 사용됨 </p>
</li>
</ul>
<h3 id="4-2-kernel-based--similarity-based-approach">4-2. Kernel-based / Similarity-based approach</h3>
<ul>
<li><p>환자 간 유사도를 계산해서 통합하는 방법이며 대표적인 방법으로 Similarity Network Fusion, SNF가 있음</p>
<img src = https://velog.velcdn.com/images/sjh9_4/post/0a6027ac-c3f9-479e-ac13-635b7e7cd5cd/image.png width = 600>
</li>
<li><p>각 오믹스 데이터에서 환자 간 similarity network를 만들고 이 네트워크들을 합쳐 최종 환자 유사도 네트워크를 만듦 </p>
</li>
<li><p>쉽게 말하면 RNA 기준으로 비슷한 환자, DNA methylation 기준으로 비슷한 환자, protein 기준으로 비슷한 환자 이 정보를 합쳐 최종적으로 비슷한 환자 그룹을 찾는 방식이라고 보면 됨</p>
</li>
</ul>
<h3 id="4-3-network-based-approach">4-3. Network-based approach</h3>
<ul>
<li><p>유전자 조절 네트워크를 추론하는 방법임</p>
<img src = https://velog.velcdn.com/images/sjh9_4/post/71760fda-4c2b-41cc-b823-2370375a8b1c/image.png width = 450>
</li>
<li><p>여기서는 gene expression, copy number, DNA methylation 같은 데이터를 통합하고 protein-protein interaction이나 transcription factor-target interaction 같은 기존 생물학적 네트워크 정보도 함께 사용함</p>
</li>
<li><p>목표는 어떤 유전자가 어떤 유전자를 조절하는지 또는 질병에서 조절 네트워크가 어떻게 바뀌는지를 이해하는 것임</p>
</li>
</ul>
<h3 id="4-4-deep-learning-based-approach">4-4. Deep learning-based approach</h3>
<ul>
<li><p>딥러닝을 이용해 여러 오믹스 데이터 사이의 복잡한 패턴을 학습하는 방법임</p>
<img src= https://velog.velcdn.com/images/sjh9_4/post/78017710-4767-43ff-9745-fdddc37e5fb7/image.png width = 430>
</li>
<li><p>DNA, RNA, methylation, CNV 같은 여러 입력 데이터를 neural network에 넣고 환자 subtype, 질병 상태, 약물 반응 등을 예측할 수 있음</p>
</li>
<li><p>장점은 비선형적이고 복잡한 관계를 포착할 수 있다는 점이지만 단점은 해석이 어려울 수 있고, 많은 데이터가 필요할 수 있음</p>
</li>
</ul>
</br>

<hr>
<h2 id="5-multi-omics-pathway-analysis">5. Multi-omics pathway analysis</h2>
<ul>
<li><p>Pathway analysis는 유전자 하나하나보다 pathway 단위로 해석하는 분석임</p>
</li>
<li><p>오믹스 데이터는 feature가 너무 많기 때문에 gene-level 결과만 보면 해석이 어려워서 pathway 단위로 묶어서 보면 생물학적 의미를 더 쉽게 파악할 수 있음</p>
<img src = https://velog.velcdn.com/images/sjh9_4/post/1688ef4f-7070-42e7-bd1d-309a20baea88/image.png width =500></li>
<li><p>단일 오믹스에서는 ORA나 GSEA를 많이 사용하지만 멀티오믹스에서는 여러 오믹스의 pathway 결과를 통합해야 함</p>
</li>
<li><p>대표적인 통합 방식들</p>
</li>
</ul>
<table>
<thead>
<tr>
<th>방식</th>
<th>설명</th>
</tr>
</thead>
<tbody><tr>
<td>P-value integration</td>
<td>여러 오믹스에서 나온 p-value를 결합</td>
</tr>
<tr>
<td>Graph-based integration</td>
<td>pathway 구조와 네트워크 정보를 이용</td>
</tr>
<tr>
<td>ML-based integration</td>
<td>머신러닝으로 pathway와 phenotype 관계 학습</td>
</tr>
<tr>
<td><img src = https://velog.velcdn.com/images/sjh9_4/post/61a876bc-7284-4864-b49f-12cfae6c57a5/image.png width = 600></td>
<td></td>
</tr>
<tr>
<td><img src = https://velog.velcdn.com/images/sjh9_4/post/7aa6dc4f-35aa-41bb-9453-253221b184bd/image.png width = 600></td>
<td></td>
</tr>
</tbody></table>
<ul>
<li>멀티오믹스 pathway analysis는 DNA, RNA, protein 변화가 공통적으로 어떤 pathway를 가리키는지 찾는 분석이라고 보면 됨</li>
</ul>
</br>

<hr>
<h2 id="최종-정리">최종 정리</h2>
<ul>
<li><p>4강의 핵심은 멀티오믹스 통합 분석의 목적과 방법임</p>
</li>
<li><p>멀티오믹스 통합 분석은 질병 관련 분자 패턴을 찾고, 환자 subtype을 분류하고 약물 반응을 예측하며 생물학적 조절 과정을 이해하기 위해 사용됨</p>
</li>
<li><p>데이터 통합 방식은 early, middle, late integration으로 나뉘고 최근에는 middle integration 방식이 많이 사용됨 </p>
</li>
<li><p>대표적인 분석 방법으로는 joint dimensionality reduction, similarity-based approach, network-based approach, deep learning-based approach가 있으며, pathway 수준에서는 p-value integration, graph-based integration, ML-based integration이 사용됨</p>
</li>
</ul>
<blockquote>
<p>멀티오믹스 분석은 여러 오믹스 데이터를 통합해 질병의 분자적 패턴, 환자 subtype, pathway 변화, 약물 반응을 더 정밀하게 해석하는 방법이다.</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[ML/AI 기반 유전체-단백체
멀티오믹스 통합분석 방법론 - CH3]]></title>
            <link>https://velog.io/@sjh9_4/MLAI-%EA%B8%B0%EB%B0%98-%EC%9C%A0%EC%A0%84%EC%B2%B4-%EB%8B%A8%EB%B0%B1%EC%B2%B4%EB%A9%80%ED%8B%B0%EC%98%A4%EB%AF%B9%EC%8A%A4-%ED%86%B5%ED%95%A9%EB%B6%84%EC%84%9D-%EB%B0%A9%EB%B2%95%EB%A1%A0-CH3</link>
            <guid>https://velog.io/@sjh9_4/MLAI-%EA%B8%B0%EB%B0%98-%EC%9C%A0%EC%A0%84%EC%B2%B4-%EB%8B%A8%EB%B0%B1%EC%B2%B4%EB%A9%80%ED%8B%B0%EC%98%A4%EB%AF%B9%EC%8A%A4-%ED%86%B5%ED%95%A9%EB%B6%84%EC%84%9D-%EB%B0%A9%EB%B2%95%EB%A1%A0-CH3</guid>
            <pubDate>Tue, 09 Jun 2026 05:59:30 GMT</pubDate>
            <description><![CDATA[<h2 id="1-multiomics란">1. Multiomics란?</h2>
<ul>
<li><p>멀티오믹스는 여러 종류의 omics 데이터를 함께 분석하는 방법임</p>
</li>
<li><p>여기서 omics는 생명현상을 특정 층위에서 대량으로 측정한 데이터를 말함</p>
<img src = https://velog.velcdn.com/images/sjh9_4/post/76f86ace-e1c2-444f-8a1e-8c03e3f8cc42/image.png width =400>

</li>
</ul>
<table>
<thead>
<tr>
<th>Omics</th>
<th>의미</th>
</tr>
</thead>
<tbody><tr>
<td>Genome</td>
<td>DNA 변이, 유전체 정보</td>
</tr>
<tr>
<td>Epigenome</td>
<td>DNA methylation 같은 후성유전 정보</td>
</tr>
<tr>
<td>Transcriptome</td>
<td>RNA 발현 정보</td>
</tr>
<tr>
<td>Proteome</td>
<td>단백질 발현 정보</td>
</tr>
<tr>
<td>Metabolome</td>
<td>대사체 정보</td>
</tr>
<tr>
<td>Microbiome</td>
<td>미생물 군집 정보</td>
</tr>
</tbody></table>
<ul>
<li><p>단일 오믹스 데이터만 보면 생명현상의 한 부분만 볼 수 있으며 예를 들어 genome만 보면 DNA 변이는 알 수 있지만 그 변이가 실제로 RNA나 단백질 수준에서 어떤 변화를 만드는지는 알기 어려움</p>
</li>
<li><p>그래서 멀티오믹스는 여러 층위의 데이터를 통합해서 더 복잡한 생물학적 관계를 해석하려는 접근임</p>
</li>
</ul>
<blockquote>
<p>DNA에서 어떤 변화가 생겼고 그 변화가 RNA 발현에 영향을 줬는지 실제 단백질 변화로 이어졌는지 최종적으로 암의 특성이나 치료 반응과 관련되는지 보는 분석</p>
</blockquote>
<hr>
</br>

<h2 id="2-암-연구에서-멀티오믹스가-중요한-이유">2. 암 연구에서 멀티오믹스가 중요한 이유</h2>
<ul>
<li><p>암은 단순히 하나의 유전자 변이만으로 설명되기 어려움</p>
</li>
<li><p>암세포에서는 DNA 변이, copy number alteration, DNA methylation, RNA 발현 변화, 단백질 변화, phosphorylation 같은 post-translational modification이 복합적으로 일어남</p>
</li>
<li><p>따라서 하나의 데이터만 보는 것보다 여러 데이터를 함께 보는 것이 암의 원인과 특성을 더 잘 이해하는 데 도움이 됨</p>
</li>
<li><p>멀티오믹스 분석을 통해 할 수 있는 일</p>
</li>
</ul>
<table>
<thead>
<tr>
<th>분석 목적</th>
<th>설명</th>
</tr>
</thead>
<tbody><tr>
<td>Tumor subtyping</td>
<td>암 환자를 분자적 특성에 따라 subtype으로 나눔</td>
</tr>
<tr>
<td>Biomarker identification</td>
<td>진단, 예후, 치료 반응과 관련된 marker 탐색</td>
</tr>
<tr>
<td>Prognosis prediction</td>
<td>환자 예후 예측</td>
</tr>
<tr>
<td>Customized therapy</td>
<td>환자 맞춤 치료 전략 탐색</td>
</tr>
<tr>
<td>Pathway analysis</td>
<td>암에서 활성화된 생물학적 pathway 해석</td>
</tr>
</tbody></table>
<ul>
<li>멀티오믹스는 단순히 데이터를 많이 모으는 것이 아니라 암을 더 정밀하게 분류하고 치료 타깃을 찾기 위한 분석 방법임</li>
</ul>
<hr>
</br>


<h2 id="3-tcga-암-멀티오믹스-연구의-시작">3. TCGA: 암 멀티오믹스 연구의 시작</h2>
<ul>
<li><p>TCGA는 The Cancer Genome Atlas의 약자임</p>
</li>
<li><p>TCGA는 여러 암종에 대해 다양한 omics 데이터를 모아서 암을 이해하려고 한 대규모 프로젝트임</p>
</li>
<li><p>자료에서는 TCGA가 2006년부터 2017년까지 진행되었고 여러 오믹스 데이터를 결합해 암을 이해하려 한 초기 대규모 프로젝트로 설명됨</p>
<img src = https://velog.velcdn.com/images/sjh9_4/post/a17f0360-d320-44ba-9a1f-21d11fd977ad/image.png width =600>


</li>
</ul>
<ul>
<li>TCGA에서 다룬 데이터</li>
</ul>
<table>
<thead>
<tr>
<th>데이터</th>
<th>의미</th>
</tr>
</thead>
<tbody><tr>
<td>Mutation</td>
<td>유전자 변이</td>
</tr>
<tr>
<td>Copy number</td>
<td>유전자 복제 수 변화</td>
</tr>
<tr>
<td>Gene expression</td>
<td>RNA 발현량</td>
</tr>
<tr>
<td>DNA methylation</td>
<td>후성유전 조절</td>
</tr>
<tr>
<td>miRNA</td>
<td>microRNA 발현</td>
</tr>
<tr>
<td>RPPA</td>
<td>일부 단백질 발현</td>
</tr>
<tr>
<td>Clinical data</td>
<td>환자 임상 정보</td>
</tr>
</tbody></table>
<ul>
<li><p>TCGA의 중요한 점은 암을 단순히 조직 이름으로만 분류하지 않고 분자적 특성에 따라 subtype으로 나누고 pathway 수준에서 해석하려 했다는 점임</p>
</li>
<li><p>예를 들어 같은 유방암이라도 모든 환자가 같은 분자적 특성을 가지는 것이 아니라 유전자 변이, 발현 패턴, 단백질 신호가 다른 여러 subtype으로 나뉠 수 있음</p>
</li>
</ul>
<hr>
</br>

<h2 id="4-tcga의-한계">4. TCGA의 한계</h2>
<ul>
<li><p>TCGA가 주로 유전체, 후성유전체, 전사체 분석에 집중되었으며 단백체 분석에는 RPPA라는 방법이 사용되었는데 이 방식은 약 200~300개의 단백질 또는 phosphoprotein만 측정할 수 있었음</p>
</li>
<li><p>TCGA는 DNA와 RNA 쪽은 풍부했지만 실제로 세포 기능을 수행하는 단백질 정보는 충분하지 않았음</p>
</li>
<li><p>그러기에 DNA 변이가 있다고 해서 항상 단백질 변화가 생기는 것은 아니였고 RNA 발현이 증가했다고 해서 단백질 발현도 반드시 증가하는 것은 아님</p>
</li>
<li><p>단백질은 phosphorylation, acetylation, glycosylation 같은 번역 후 변형에 의해 기능이 크게 바뀔 수 있었기에 암을 더 정확히 이해하려면 단백체와 PTM 정보를 함께 봐야 함</p>
</li>
</ul>
<hr>
</br>


<h2 id="5-cptac와-proteogenomics">5. CPTAC와 Proteogenomics</h2>
<ul>
<li><p>TCGA의 한계를 보완하기 위해 등장한 대표적인 프로젝트가 CPTAC임</p>
</li>
<li><p>CPTAC는 Clinical Proteomic Tumor Analysis Consortium의 약자이며 2011년 미국 NCI에서 대규모 proteome과 genome 분석을 통해 암의 분자적 기반을 이해하기 위해 시작한 initiative임</p>
<img src = https://velog.velcdn.com/images/sjh9_4/post/115aa4b3-6e50-4c12-8aa4-5493801802f0/image.png width = 350>
</li>
<li><p>이 그림은 CPTAC에서 약 10개 암종, 약 1,000개 종양 샘플을 대상으로 다양한 오믹스 데이터를 수집했다는 것을 보여주며 바깥쪽에는 암종이 표시되어 있고 안쪽에는 WXS, WGS, methylation, RNA-seq, proteome, phosphoproteome, glycoproteome 등 분석된 데이터 종류가 표시되어 있음</p>
</li>
<li><p>CPTAC의 핵심은 proteogenomics인데 Proteogenomics는 genome과 proteome을 통합해서 분석하는 접근이며 유전자 변이가 실제 단백질 발현이나 단백질 기능 변화로 이어지는지 확인하는 분석이라고 보면 됨</p>
</li>
<li><p>예를 들어 어떤 암 환자에게 특정 유전자 변이가 있을 때 그 변이가 mRNA 변화로 이어지는지 단백질 abundance 변화로 이어지는지를 phosphorylation 변화로 signaling pathway를 바꾸는지 확인할 수 있음</p>
</li>
</ul>
<hr>
</br>

<h2 id="6-proteogenomics로-얻을-수-있는-insight">6. Proteogenomics로 얻을 수 있는 insight</h2>
<table>
<thead>
<tr>
<th>분석</th>
<th>의미</th>
</tr>
</thead>
<tbody><tr>
<td>Novel molecular subtypes</td>
<td>새로운 암 subtype 발견</td>
</tr>
<tr>
<td>Immune landscape</td>
<td>암 주변 면역 환경 분석</td>
</tr>
<tr>
<td>PTM effects</td>
<td>phosphorylation 등 번역 후 변형의 영향 분석</td>
</tr>
<tr>
<td>Proteogenomic effect of CNA/DNA methylation</td>
<td>유전체 변화가 RNA/protein/PTM에 미치는 영향 분석</td>
</tr>
<tr>
<td>CNA and RNA-protein correlation</td>
<td>copy number와 RNA/protein 간 상관 분석</td>
</tr>
<tr>
<td>Tumor vs NAT analysis</td>
<td>암 조직과 인접 정상 조직 비교</td>
</tr>
<tr>
<td>Outlier analysis</td>
<td>특정 샘플에서 비정상적으로 높은 kinase/phosphatase 탐색</td>
</tr>
<tr>
<td><img src="https://velog.velcdn.com/images/sjh9_4/post/01e37d7e-8cf4-431e-b35a-d47ae8143d27/image.png" alt=""></td>
<td></td>
</tr>
</tbody></table>
<ul>
<li><p>핵심은 DNA 변화가 실제 기능적 결과로 이어지는지 확인하는 것임</p>
</li>
<li><p>DNA 변이만 보고 어떤 유전자가 중요하다고 판단하는 것보다 그 변이가 단백질이나 pathway 변화로 이어지는지 확인하면 더 강한 근거를 얻을 수 있음</p>
</li>
</ul>
<hr>
</br>


<h2 id="7-cis-effect와-trans-effect">7. cis-effect와 trans-effect</h2>
<ul>
<li>3강에서 중요한 개념 중 하나가 cis-effect와 trans-effect임</li>
</ul>
<table>
<thead>
<tr>
<th>개념</th>
<th>의미</th>
<th>예시</th>
</tr>
</thead>
<tbody><tr>
<td>cis-effect</td>
<td>유전체 변화가 자기 자신 유전자나 단백질에 영향을 주는 것</td>
<td>A 유전자 변이 → A 단백질 변화</td>
</tr>
<tr>
<td>trans-effect</td>
<td>유전체 변화가 다른 유전자나 단백질에 영향을 주는 것</td>
<td>A 유전자 변이 → B, C, D pathway 변화</td>
</tr>
</tbody></table>
<ul>
<li><p>cis-effect는 자기 자신에게 미치는 영향이고 trans-effect는 다른 곳으로 퍼지는 영향임</p>
</li>
<li><p>예를 들어 A라는 유전자에 copy number amplification이 생겼다고 해보면 A 유전자의 mRNA와 A 단백질이 증가하면 cis-effect인데 A 유전자 변화 때문에 다른 pathway의 단백질들이 함께 바뀐다면 trans-effect임</p>
</li>
<li><p>암 연구에서는 trans-effect가 중요한 이유는 실제 암의 특성은 하나의 유전자 변화가 여러 signaling pathway에 영향을 주면서 나타나는 경우가 많기 때문임</p>
</li>
<li><p>genomic change가 자기 자신의 단백질뿐 아니라 다른 단백질까지 어떻게 drive하는지 보는 것이 중요함</p>
</li>
</ul>
<hr>
</br>



<h2 id="8-조기-발병-위암-사례">8. 조기 발병 위암 사례</h2>
<ul>
<li><p>45세 미만 조기 발병 위암 환자 80명을 대상으로 한 proteogenomics 연구에서는 Exome-seq, RNA-seq, mass spectrometry 기반 proteomics를 함께 분석함</p>
</li>
<li><p>그 결과 유전자 변이, RNA 발현, 단백질 발현, phosphorylation, glycosylation 정보를 통합해 암의 subtype을 구분했음</p>
</li>
<li><p>조기 발병 위암은 최종적으로 다음과 같은 subtype으로 정리됨</p>
</li>
</ul>
<table>
<thead>
<tr>
<th>Subtype</th>
<th>특징</th>
</tr>
</thead>
<tbody><tr>
<td>Subtype 1</td>
<td>Proliferative</td>
</tr>
<tr>
<td>Subtype 2</td>
<td>Immunogenic</td>
</tr>
<tr>
<td>Subtype 3</td>
<td>Metabolic</td>
</tr>
<tr>
<td>Subtype 4</td>
<td>Invasive/metastatic</td>
</tr>
</tbody></table>
<ul>
<li>같은 위암이라도 환자마다 주된 생물학적 특징이 다를 수 있다는 것을 보여줌</li>
</ul>
<hr>
</br>

<h2 id="9-pan-cancer-proteogenomics">9. Pan-cancer proteogenomics</h2>
<ul>
<li><p>Pan-cancer 분석은 여러 암종을 함께 비교하는 분석임</p>
</li>
<li><p>이를 통해 특정 driver mutation이 여러 암종에서 공통적으로 작용하는지 또는 암종마다 다른 단백질 변화와 pathway 변화를 만드는지 확인할 수 있음</p>
</li>
<li><p>하나의 암종만 보는 것이 아니라 암 전반에서 공통적인 driver pathway와 기능적 상태를 찾는 접근임</p>
</li>
</ul>
<hr>
</br>

<h2 id="10-immunogenicity와-neoantigen">10. Immunogenicity와 Neoantigen</h2>
<ul>
<li><p>암세포에 변이가 생기면 새로운 단백질 조각이 만들어질 수 있는데 이것이 면역계에 의해 인식될 수 있으면 neoantigen이라고 함</p>
</li>
<li><p>Neoantigen이 많으면 T cell infiltration과 관련될 수 있고 이는 면역치료 반응 가능성과 연결될 수 있음</p>
</li>
<li><p>멀티오믹스 분석은 암의 면역원성과 면역치료 가능성을 예측하는 데도 활용될 수 있음</p>
</li>
</ul>
<hr>
</br>


<h2 id="최종-정리">최종 정리</h2>
<ul>
<li><p>멀티오믹스는 genome, transcriptome, proteome 데이터를 통합해 암을 더 입체적으로 이해하는 분석 방법임</p>
</li>
<li><p>TCGA는 암 유전체 연구의 기반을 만들었지만 단백체 정보가 부족했고 CPTAC는 이를 보완해 proteogenomics 연구를 발전시킴</p>
</li>
<li><p>결국 멀티오믹스 분석의 핵심은 DNA 변이가 RNA와 protein 수준에서 어떤 변화로 이어지고그것이 암 subtype, pathway 변화, 치료 가능성과 어떻게 연결되는지 해석하는 것임</p>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[ML/AI 기반 유전체-단백체 멀티오믹스 통합분석 방법론 - CH2]]></title>
            <link>https://velog.io/@sjh9_4/MLAI-%EA%B8%B0%EB%B0%98-%EC%9C%A0%EC%A0%84%EC%B2%B4-%EB%8B%A8%EB%B0%B1%EC%B2%B4-%EB%A9%80%ED%8B%B0%EC%98%A4%EB%AF%B9%EC%8A%A4-%ED%86%B5%ED%95%A9%EB%B6%84%EC%84%9D-%EB%B0%A9%EB%B2%95%EB%A1%A0-CH2</link>
            <guid>https://velog.io/@sjh9_4/MLAI-%EA%B8%B0%EB%B0%98-%EC%9C%A0%EC%A0%84%EC%B2%B4-%EB%8B%A8%EB%B0%B1%EC%B2%B4-%EB%A9%80%ED%8B%B0%EC%98%A4%EB%AF%B9%EC%8A%A4-%ED%86%B5%ED%95%A9%EB%B6%84%EC%84%9D-%EB%B0%A9%EB%B2%95%EB%A1%A0-CH2</guid>
            <pubDate>Thu, 04 Jun 2026 11:20:40 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>2강은 오믹스 데이터를 얻은 뒤에 무엇을 분석하는가에 대한 내용이며 전체 흐름은 크게 두 갈래인 유전체 데이터 분석,전사체/단백체 데이터 분석으로 나뉨</p>
</blockquote>
<ul>
<li>유전체는 변이 해석, 드라이버 유전자 탐색, 변이 패턴 분석을 중심으로 다루고 전사체·단백체는 정규화, 차등 발현 분석, gene set 분석, 클러스터링, 차원축소를 중심으로 정리함</li>
</ul>
</br>

<hr>
<h2 id="1-downstream-analysis란">1. Downstream analysis란?</h2>
<ul>
<li><p>Downstream analysis는 전처리가 끝난 데이터를 가지고 실제 생물학적 의미를 해석하는 분석 단계임</p>
</li>
<li><p>예를 들어 NGS 데이터는 처음에 FASTQ 형태로 나오고 alignment를 거쳐 BAM 파일이 만들어짐</p>
</li>
<li><p>DNA-seq에서는 이후 variant calling을 통해 VCF 파일을 만들고, RNA-seq에서는 quantification을 통해 read count matrix를 만듦</p>
</li>
<li><p>전처리 결과물을 가지고 질병과 관련된 변이, 유전자 발현 차이, pathway 변화 등을 해석하는 과정이 downstream analysis임</p>
</li>
</ul>
</br>

<hr>
<h2 id="2-유전체-데이터-분석">2. 유전체 데이터 분석</h2>
<ul>
<li>유전체 데이터에서는 주로 DNA 변이를 분석함</li>
</ul>
<table>
<thead>
<tr>
<th>분석</th>
<th>설명</th>
</tr>
</thead>
<tbody><tr>
<td>Variant annotation</td>
<td>발견된 변이가 어떤 의미를 가지는지 해석</td>
</tr>
<tr>
<td>Functional prediction</td>
<td>변이가 유전자나 단백질 기능에 미치는 영향 예측</td>
</tr>
<tr>
<td>Driver gene identification</td>
<td>암 발생이나 진행에 영향을 주는 주요 유전자 탐색</td>
</tr>
<tr>
<td>Co-occurrence / mutual exclusivity</td>
<td>변이들이 함께 나타나는지, 서로 배타적으로 나타나는지 분석</td>
</tr>
</tbody></table>
</br>

<hr>
<h2 id="3-variant-annotation">3. Variant annotation</h2>
<ul>
<li><p>Variant annotation은 변이의 의미를 해석하는 과정임</p>
</li>
<li><p>예를 들어 어떤 환자에게 특정 유전자 변이가 발견되었다고 했을 때 그 변이가 질병과 관련 있는지, 단백질 기능을 바꾸는지, 기존 연구에서 보고된 변이인지 확인해야 함</p>
</li>
<li><p>대표적인 데이터베이스와 도구는 다음과 같음</p>
</li>
</ul>
<table>
<thead>
<tr>
<th>구분</th>
<th>예시</th>
</tr>
</thead>
<tbody><tr>
<td>기존 연구 기반 annotation</td>
<td>ClinVar, OncoKB, COSMIC</td>
</tr>
<tr>
<td>변이 영향 예측 도구</td>
<td>SnpEff, SnpSift, ANNOVAR, VEP</td>
</tr>
</tbody></table>
<ul>
<li><p>ClinVar에서는 변이를 pathogenic, likely pathogenic, uncertain significance, likely benign, benign 등으로 분류함</p>
</li>
<li><p>변이가 질병을 일으킬 가능성이 있는지 단계별로 정리해주는 데이터베이스라고 보면 되며 OncoKB는 암 관련 변이에 초점을 맞춘 데이터베이스임</p>
</li>
<li><p>암 진단, 예후, 치료와 관련된 변이 정보를 전문가들이 정리해둔 자료라서 연구뿐만 아니라 임상 의사결정에도 활용됨</p>
</li>
</ul>
</br>

<hr>
<h2 id="4-driver-gene-identification">4. Driver gene identification</h2>
<ul>
<li><p>Driver gene은 암 발생이나 진행에 실제로 영향을 주는 유전자를 의미함</p>
</li>
<li><p>환자 집단에서 어떤 유전자나 염기 위치가 무작위로 기대되는 것보다 더 자주 변이된다면
그 변이가 암 발생 과정에서 선택되었을 가능성이 있음</p>
</li>
<li><p>쉽게 말하면 그냥 우연히 생긴 변이가 아니라 암세포에게 유리해서 반복적으로 나타난 변이를 찾는 것임</p>
</li>
<li><p>다만 주의할 점은 어떤 영역은 원래 mutation rate가 높을 수 있음</p>
</li>
<li><p>예를 들어 자료에서는 다음과 같은 영역들이 mutation rate에 영향을 줄 수 있다고 설명함</p>
</li>
</ul>
<img src = https://velog.velcdn.com/images/sjh9_4/post/2f296fb5-ade1-48aa-8cc9-d292b72f55d9/image.png width = 500>


<table>
<thead>
<tr>
<th>요인</th>
<th>의미</th>
</tr>
</thead>
<tbody><tr>
<td>Late-replicating regions</td>
<td>DNA 복제가 늦게 일어나는 영역</td>
</tr>
<tr>
<td>Lowly expressed genes</td>
<td>발현량이 낮은 유전자</td>
</tr>
<tr>
<td>Heterochromatin regions</td>
<td>조밀하게 응축된 염색질 영역</td>
</tr>
</tbody></table>
<blockquote>
<p>Driver gene을 찾을 때 단순히 변이 빈도만 보면 안되고 일부 유전체 영역은 발현량이 낮거나 복제 시간이 늦거나 heterochromatin 영역에 위치해 원래 mutation rate가 높을 수 있으며 변이가 많이 관찰되더라도 이것이 암 발생 과정에서 선택된 결과인지 단순히 배경 mutation rate가 높은 영역이기 때문인지 구분해야 함</p>
</blockquote>
</br>

<hr>
<h2 id="5-co-occurrence와-mutual-exclusivity">5. Co-occurrence와 Mutual exclusivity</h2>
<ul>
<li>유전자 변이 패턴을 볼 때 중요한 개념이 co-occurrence와 mutual exclusivity임</li>
</ul>
<table>
<thead>
<tr>
<th>개념</th>
<th>의미</th>
</tr>
</thead>
<tbody><tr>
<td>Co-occurrence</td>
<td>두 변이가 같은 샘플에서 함께 자주 나타남</td>
</tr>
<tr>
<td>Mutual exclusivity</td>
<td>두 변이가 같은 샘플에서 잘 같이 나타나지 않음</td>
</tr>
</tbody></table>
<ul>
<li><p>Co-occurrence는 두 유전자가 서로 협력할 가능성을 시사할 수 있음</p>
</li>
<li><p>반대로 mutual exclusivity는 두 변이가 같은 pathway에서 비슷한 역할을 하거나 동시에 생길 필요가 없다는 의미일 수 있음</p>
</li>
</ul>
</br>

<hr>
<h2 id="6-rna-seq-데이터-분석">6. RNA-seq 데이터 분석</h2>
<ul>
<li><p>RNA-seq 데이터에서는 각 유전자가 얼마나 발현되었는지를 read count로 측정하지만 raw count를 그대로 비교하면 안 됨</p>
</li>
<li><p>샘플마다 sequencing depth가 다르고 유전자 길이도 다르며 RNA composition도 다를 수 있기 때문에 normalization이 필요함</p>
</li>
</ul>
</br>

<hr>
<h2 id="7-rna-seq-normalization">7. RNA-seq normalization</h2>
<ul>
<li>RNA-seq 정규화에서 고려해야 하는 요소</li>
</ul>
<table>
<thead>
<tr>
<th>요소</th>
<th>설명</th>
</tr>
</thead>
<tbody><tr>
<td>Sequencing depth</td>
<td>샘플마다 전체 read 수가 다름</td>
</tr>
<tr>
<td>Gene length</td>
<td>긴 유전자는 read가 더 많이 붙을 가능성이 있음</td>
</tr>
<tr>
<td>RNA composition</td>
<td>특정 유전자가 과도하게 발현되면 전체 분포가 왜곡될 수 있음</td>
</tr>
</tbody></table>
<img src = https://velog.velcdn.com/images/sjh9_4/post/351412b7-2532-4995-9ad7-782b40a98d81/image.png width =500>

<img src = https://velog.velcdn.com/images/sjh9_4/post/9d7d24b5-d7de-4aa2-bd11-58f382c4d0fa/image.png width =500>



<ul>
<li>대표적인 normalization 방법</li>
</ul>
<table>
<thead>
<tr>
<th>방법</th>
<th>특징</th>
</tr>
</thead>
<tbody><tr>
<td>CPM</td>
<td>sequencing depth만 보정</td>
</tr>
<tr>
<td>TPM</td>
<td>gene length와 sequencing depth 보정</td>
</tr>
<tr>
<td>RPKM/FPKM</td>
<td>gene length와 sequencing depth 보정</td>
</tr>
<tr>
<td>DESeq2 median of ratios</td>
<td>sequencing depth와 composition bias 보정</td>
</tr>
<tr>
<td>edgeR TMM</td>
<td>library size와 composition bias 보정</td>
</tr>
</tbody></table>
<ul>
<li>RNA-seq 차등발현분석에서는 DESeq2나 edgeR이 자주 사용됨</li>
</ul>
</br>

<hr>
<h2 id="8-differential-expression-analysis">8. Differential expression analysis</h2>
<ul>
<li><p>Differential expression analysis는 조건 간 유전자 발현 차이를 찾는 분석임</p>
</li>
<li><p>예를 들어 정상 조직과 암 조직을 비교해서 어떤 유전자가 암 조직에서 더 많이 발현되는지, 또는 더 적게 발현되는지 확인하는 과정이며 RNA-seq count data는 일반적인 연속형 데이터가 아니라 count data임</p>
</li>
</ul>
<ul>
<li><p>생물학적 반복 샘플 사이의 변동성도 크기 때문에 negative binomial distribution이 자주 사용됨</p>
</li>
<li><p>대표적인 도구는 다음과 같음</p>
</li>
</ul>
<table>
<thead>
<tr>
<th>도구</th>
<th>특징</th>
</tr>
</thead>
<tbody><tr>
<td>DESeq2</td>
<td>median ratio normalization 사용</td>
</tr>
<tr>
<td>edgeR</td>
<td>TMM normalization 사용</td>
</tr>
</tbody></table>
</br>

<hr>
<h2 id="9-단백체-데이터-분석">9. 단백체 데이터 분석</h2>
<ul>
<li><p>단백체 데이터도 샘플 간 비교를 위해 normalization이 필요함</p>
</li>
<li><p>MS-proteomics 데이터에서는 기술적 변동을 줄이고, 실제 생물학적 차이가 잘 드러나게 만드는 것이 중요함</p>
</li>
<li><p>대표적인 정규화 방법</p>
</li>
</ul>
<table>
<thead>
<tr>
<th>방법</th>
<th>설명</th>
</tr>
</thead>
<tbody><tr>
<td>Median/mean normalization</td>
<td>샘플별 median 또는 mean intensity를 맞춤</td>
</tr>
<tr>
<td>Quantile normalization</td>
<td>모든 샘플의 intensity 분포를 같게 맞춤</td>
</tr>
<tr>
<td>Z-score normalization</td>
<td>평균 0, 표준편차 1로 변환</td>
</tr>
<tr>
<td>VSN</td>
<td>intensity 수준에 따른 분산 차이를 안정화</td>
</tr>
</tbody></table>
<ul>
<li><p>단백체 차등분석에서는 t-test, Wilcoxon rank-sum test, limma 같은 방법이 사용됨</p>
</li>
<li><p>limma는 작은 샘플 수에서도 안정적으로 분석할 수 있도록 empirical Bayes 방법을 사용한다는 점이 특징임</p>
</li>
</ul>
</br>

<hr>
<h2 id="10-gene-set-analysis">10. Gene set analysis</h2>
<ul>
<li><p>유전자 하나하나만 보는 것보다 여러 유전자가 모인 pathway나 biological process 단위로 보는 것이 더 해석하기 쉬울 때가 많음</p>
</li>
<li><p>Gene set analysis는 미리 정의된 유전자 집합이 특정 조건에서 유의미하게 변화하는지 확인하는 분석임</p>
</li>
<li><p>대표적인 gene set database는 다음과 같음</p>
</li>
</ul>
<table>
<thead>
<tr>
<th>데이터베이스</th>
<th>설명</th>
</tr>
</thead>
<tbody><tr>
<td>MSigDB Hallmark</td>
<td>잘 정의된 생물학적 상태나 과정 50개</td>
</tr>
<tr>
<td>KEGG</td>
<td>분자 상호작용과 pathway map</td>
</tr>
<tr>
<td>Reactome</td>
<td>curated, peer-reviewed pathway database</td>
</tr>
<tr>
<td>Gene Ontology</td>
<td>gene function 정보, BP/CC/MF로 구분</td>
</tr>
</tbody></table>
<ul>
<li>GO는 세가지로 나뉨</li>
</ul>
<table>
<thead>
<tr>
<th>GO 분류</th>
<th>의미</th>
</tr>
</thead>
<tbody><tr>
<td>BP</td>
<td>Biological Process</td>
</tr>
<tr>
<td>CC</td>
<td>Cellular Component</td>
</tr>
<tr>
<td>MF</td>
<td>Molecular Function</td>
</tr>
</tbody></table>
</br>

<hr>
<h2 id="11-ora와-gsea">11. ORA와 GSEA</h2>
<ul>
<li><p>Gene set analysis에는 대표적으로 ORA와 GSEA가 있음</p>
</li>
<li><p>ORA는 유의미하게 변한 유전자 리스트를 먼저 정하고 그 리스트 안에 특정 gene set이 과하게 많이 포함되어 있는지 보는 방식임</p>
</li>
<li><p>GSEA는 유전자를 통계량 기준으로 정렬한 뒤 특정 gene set의 유전자들이 위쪽이나 아래쪽에 몰려 있는지 확인하는 방식임 </p>
</li>
</ul>
<img src = https://velog.velcdn.com/images/sjh9_4/post/3f9d5385-3b3a-4c49-a0ca-2128e2feccf1/image.png width = 500>


</br>

<hr>
<h2 id="12-clustering-analysis">12. Clustering analysis</h2>
<ul>
<li><p>Clustering은 비슷한 특성을 가진 샘플이나 유전자를 묶는 분석임</p>
</li>
<li><p>오믹스 데이터에서는 비슷한 발현 패턴을 가진 유전자끼리 묶거나 비슷한 분자적 특성을 가진 환자 샘플끼리 묶을 때 사용함</p>
</li>
</ul>
<p>대표적인 방법은 다음과 같음</p>
<table>
<thead>
<tr>
<th>방법</th>
<th>설명</th>
</tr>
</thead>
<tbody><tr>
<td>Hierarchical clustering</td>
<td>dendrogram 형태로 계층적 군집 형성</td>
</tr>
<tr>
<td>K-means clustering</td>
<td>K개의 cluster 중심을 기준으로 군집화</td>
</tr>
<tr>
<td>Gaussian mixture model</td>
<td>여러 Gaussian distribution의 혼합으로 데이터 설명</td>
</tr>
</tbody></table>
<img src = https://velog.velcdn.com/images/sjh9_4/post/23f923c2-7551-42af-ad36-62725e3b1963/image.png width = 400>


</br>

<hr>
<h2 id="13-dimensional-reduction">13. Dimensional reduction</h2>
<ul>
<li><p>오믹스 데이터는 보통 feature 수가 매우 많음</p>
</li>
<li><p>예를 들어 유전자는 수천 개 이상인데 샘플 수는 상대적으로 적은 경우가 많은데 이런 데이터를 그대로 시각화하거나 해석하기 어렵기 때문에 차원축소를 사용함</p>
<img src = https://velog.velcdn.com/images/sjh9_4/post/bdce95cc-0b46-483a-a0ba-ab6d92bd096e/image.png width =500>
</li>
<li><p>대표적인 방법은 다음과 같음</p>
</li>
</ul>
<table>
<thead>
<tr>
<th>방법</th>
<th>특징</th>
</tr>
</thead>
<tbody><tr>
<td>PCA</td>
<td>선형 차원축소, 분산을 가장 잘 설명하는 축을 찾음</td>
</tr>
<tr>
<td>UMAP</td>
<td>비선형 차원축소, local/global structure를 모두 고려</td>
</tr>
<tr>
<td>t-SNE</td>
<td>비선형 차원축소, local structure 보존에 강함</td>
</tr>
</tbody></table>
<img src = https://velog.velcdn.com/images/sjh9_4/post/a328dbaf-15ca-4f1c-84d3-16c757de494f/image.png width = 600>



<ul>
<li>PCA는 전체적인 분산 구조를 보는 데 좋고 UMAP과 t-SNE는 복잡한 비선형 구조를 2차원으로 시각화할 때 많이 사용됨</li>
</ul>
</br>

<hr>
<h2 id="14-전체-요약">14. 전체 요약</h2>
<ul>
<li><p>이번 강의는 오믹스 데이터의 downstream analysis를 다룬 내용임</p>
</li>
<li><p>유전체 데이터에서는 변이를 해석하고 질병과 관련된 driver gene을 찾고 유전자 변이 간 관계를 분석함</p>
</li>
<li><p>전사체와 단백체 데이터에서는 normalization을 통해 샘플 간 비교가 가능하도록 만들고 differential expression analysis로 조건 간 차이를 찾음</p>
</li>
<li><p>그 다음 gene set analysis를 통해 pathway 수준에서 해석하고 clustering과 dimensional reduction을 통해 샘플이나 유전자의 패턴을 파악함</p>
</li>
</ul>
<blockquote>
<p>오믹스 분석은 단순히 데이터를 만드는 것에서 끝나는 게 아니라 변이·발현·단백질 변화가 생물학적으로 어떤 의미를 가지는지 해석하는 과정임</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[ML/AI 기반 유전체-단백체 멀티오믹스 통합분석 방법론 - CH1
]]></title>
            <link>https://velog.io/@sjh9_4/MLAI-%EA%B8%B0%EB%B0%98-%EC%9C%A0%EC%A0%84%EC%B2%B4-%EB%8B%A8%EB%B0%B1%EC%B2%B4-%EB%A9%80%ED%8B%B0%EC%98%A4%EB%AF%B9%EC%8A%A4-%ED%86%B5%ED%95%A9%EB%B6%84%EC%84%9D-%EB%B0%A9%EB%B2%95%EB%A1%A0-CH1</link>
            <guid>https://velog.io/@sjh9_4/MLAI-%EA%B8%B0%EB%B0%98-%EC%9C%A0%EC%A0%84%EC%B2%B4-%EB%8B%A8%EB%B0%B1%EC%B2%B4-%EB%A9%80%ED%8B%B0%EC%98%A4%EB%AF%B9%EC%8A%A4-%ED%86%B5%ED%95%A9%EB%B6%84%EC%84%9D-%EB%B0%A9%EB%B2%95%EB%A1%A0-CH1</guid>
            <pubDate>Sun, 31 May 2026 09:45:51 GMT</pubDate>
            <description><![CDATA[<h2 id="1-멀티오믹스">1. 멀티오믹스</h2>
<ul>
<li><p>멀티오믹스는 생명현상을 여러 층위의 데이터로 함께 보는 분석 방법임</p>
</li>
<li><p>생명체 안에서는 대략 이런 흐름이 있음</p>
</li>
</ul>
<img src = https://velog.velcdn.com/images/sjh9_4/post/aa91268c-9f1f-480a-853b-cd97bac3c6fc/image.png width = 600>


<p><strong>DNA → RNA → Protein</strong></p>
<ul>
<li><p>DNA는 유전 정보를 저장하고 RNA는 DNA 정보를 복사해서 전달하고 Protein은 실제 세포 기능을 수행함</p>
</li>
<li><p>DNA만 보면 설계도를 보는 것이고 RNA를 보면 현재 어떤 유전자가 사용되고 있는지를 보는 것이고 Protein을 보면 실제로 어떤 기능이 수행되고 있는지를 보는 것에 가까움</p>
</li>
</ul>
</br>

<hr>
<h2 id="2-central-dogma-dna-→-rna-→-protein">2. Central Dogma: DNA → RNA → Protein</h2>
<ul>
<li>Central Dogma는 생명정보가 전달되는 기본 흐름을 설명하는 개념이며 DNA에 저장된 정보가 전사 과정을 통해 RNA로 복사되고 RNA는 번역 과정을 통해 단백질을 만드는 데 사용됨</li>
</ul>
<table>
<thead>
<tr>
<th>단계</th>
<th>설명</th>
</tr>
</thead>
<tbody><tr>
<td>DNA</td>
<td>유전 정보 저장</td>
</tr>
<tr>
<td>Transcription</td>
<td>DNA 정보가 RNA로 복사됨</td>
</tr>
<tr>
<td>RNA</td>
<td>단백질 합성을 위한 중간 전달자</td>
</tr>
<tr>
<td>Translation</td>
<td>RNA 정보를 바탕으로 단백질 생성</td>
</tr>
<tr>
<td>Protein</td>
<td>세포 기능을 실제로 수행</td>
</tr>
</tbody></table>
<ul>
<li><p>유전체나 전사체 데이터는 주로 NGS 기술로 분석함</p>
</li>
<li><p>단백체 데이터는 주로 Mass Spectrometry 기술로 분석함</p>
</li>
</ul>
<blockquote>
<p><strong>NGS</strong>: DNA나 RNA의 염기서열을 대량으로 읽어서 유전체·전사체 정보를 분석하는 기술
<strong>Mass Spectrometry</strong>: 단백질이나 peptide의 질량을 측정해서 어떤 단백질이 얼마나 존재하는지 분석하는 기술</p>
</blockquote>
</br>

<hr>
<h2 id="3-dna-rna-protein의-차이">3. DNA, RNA, Protein의 차이</h2>
<h3 id="dna">DNA</h3>
<ul>
<li><p>DNA는 유전 정보를 저장하는 이중나선 구조의 생체분자임</p>
</li>
<li><p>A, G, C, T 네 가지 염기로 구성되어 있고 이 중 특정 기능을 담당하는 부분을 유전자라고 함</p>
</li>
<li><p>유전자는 크게 단백질을 만드는 protein-coding gene과 단백질을 만들지는 않지만 조절 기능 등을 하는 non-coding RNA 관련 영역으로 나눌 수 있음</p>
</li>
</ul>
<h3 id="rna">RNA</h3>
<ul>
<li><p>RNA는 DNA의 특정 부분이 전사되어 만들어진 분자임</p>
</li>
<li><p>처음 만들어지는 RNA는 바로 사용되지 않고 여러 processing 과정을 거쳐 성숙한 mRNA가 됨</p>
</li>
</ul>
<img src = https://velog.velcdn.com/images/sjh9_4/post/02f8f5d8-934d-461c-9a81-3e99e9c20fb6/image.png width = 400>

<p>대표적인 RNA processing 과정은 다음과 같음</p>
<table>
<thead>
<tr>
<th>과정</th>
<th>의미</th>
</tr>
</thead>
<tbody><tr>
<td>5’ capping</td>
<td>RNA 앞쪽을 보호하고 리보솜이 인식하기 쉽게 함</td>
</tr>
<tr>
<td>3’ polyadenylation</td>
<td>RNA 뒤쪽에 A 염기를 붙여 안정성을 높임</td>
</tr>
<tr>
<td>splicing</td>
<td>인트론을 제거하고 엑손끼리 연결함</td>
</tr>
</tbody></table>
<ul>
<li>특히 splicing 때문에 하나의 유전자에서도 여러 종류의 mRNA가 만들어질 수 있으며 이게 단백질 다양성을 증가시키는 중요한 원리임</li>
</ul>
<h3 id="protein">Protein</h3>
<ul>
<li><p>단백질은 세포와 조직의 기능을 실제로 수행하는 분자임</p>
</li>
<li><p>20가지 아미노산으로 구성되고 접히는 방식에 따라 기능이 달라짐</p>
</li>
</ul>
<p>단백질 구조는 보통 4단계로 설명함</p>
<table>
<thead>
<tr>
<th>구조</th>
<th>설명</th>
</tr>
</thead>
<tbody><tr>
<td>1차 구조</td>
<td>아미노산 서열</td>
</tr>
<tr>
<td>2차 구조</td>
<td>알파 나선, 베타 병풍 구조</td>
</tr>
<tr>
<td>3차 구조</td>
<td>단백질이 3차원으로 접힌 형태</td>
</tr>
<tr>
<td>4차 구조</td>
<td>여러 단백질 사슬이 모인 복합체</td>
</tr>
</tbody></table>
</br>

<hr>
<h2 id="4-ngs-기반-유전체-분석">4. NGS 기반 유전체 분석</h2>
<ul>
<li><p>NGS는 Next-generation sequencing의 약자로 대량의 DNA 또는 RNA 서열을 빠르게 읽는 기술임</p>
</li>
<li><p>기존 Sanger sequencing은 한 번에 하나의 DNA fragment를 읽는 방식이었다면
NGS는 수많은 fragment를 병렬적으로 읽을 수 있음</p>
</li>
<li><p>그래서 유전체, 후성유전체, 전사체 연구에 많이 사용됨</p>
</li>
</ul>
<p>NGS workflow는 대략 다음과 같음</p>
<ol>
<li>샘플에서 DNA/RNA 추출</li>
<li>Library preparation</li>
<li>Sequencing</li>
<li>데이터 분석</li>
</ol>
<ul>
<li>NGS 데이터는 바로 분석에 사용할 수 있는 형태가 아니여서 일반적으로 다음과 같은 전처리 과정을 거침<img src = https://velog.velcdn.com/images/sjh9_4/post/c1de0d3c-1d72-48ea-b906-bf90e90febad/image.png width =500></li>
<li><em>FASTQ → Quality check → Read trimming → Alignment → BAM → VCF *</em></li>
</ul>
<p>또는 </p>
<p>*<em>Count matrix
*</em></p>
<ul>
<li><p>DNA-seq에서는 변이를 찾는 variant calling을 통해 VCF 파일을 만듦</p>
</li>
<li><p>RNA-seq에서는 유전자별 발현량을 계산해서 read count matrix를 만듦</p>
</li>
</ul>
</br>

<hr>
<h2 id="5-주요-파일-형식-정리">5. 주요 파일 형식 정리</h2>
<h3 id="fastq">FASTQ</h3>
<ul>
<li><p>FASTQ는 NGS에서 나온 raw read 데이터임이며 각 read의 염기서열과 quality score가 함께 들어 있음</p>
</li>
<li><p>Quality score는 해당 염기 판독이 얼마나 신뢰할 만한지를 나타내며 점수가 높을수록 오류 가능성이 낮음</p>
</li>
</ul>
<h3 id="bam">BAM</h3>
<ul>
<li><p>BAM은 sequencing read가 reference genome에 어디에 매핑되었는지를 저장한 파일임</p>
</li>
<li><p>원래 SAM이라는 텍스트 형식이 있고 BAM은 이를 압축한 binary 형식이라고 보면 됨</p>
</li>
<li><p>BAM 파일에는 read ID, chromosome 위치, mapping quality, sequence, base quality 등이 포함됨</p>
</li>
</ul>
<h3 id="vcf">VCF</h3>
<ul>
<li><p>VCF는 variant calling 결과를 저장하는 파일이며 reference genome과 비교했을 때 어떤 위치에서 어떤 변이가 있는지를 기록함</p>
</li>
<li><p>예를 들어 어떤 위치에서 기준 염기는 G인데 샘플에서는 A가 나타난다면 이런 변이 정보가 VCF에 저장됨</p>
</li>
</ul>
<h3 id="read-count-matrix">Read count matrix</h3>
<ul>
<li><p>RNA-seq 분석에서는 각 유전자가 샘플별로 얼마나 읽혔는지를 행렬 형태로 정리함</p>
</li>
<li><p>보통 행은 gene, 열은 sample이고, 값은 read count</p>
</li>
<li><p>이 데이터를 바탕으로 차등발현분석이나 downstream analysis를 수행함</p>
</li>
</ul>
</br>

<hr>
<h2 id="6-mass-spectrometry-기반-단백체-분석">6. Mass Spectrometry 기반 단백체 분석</h2>
<ul>
<li><p>단백체 연구는 주로 Mass Spectrometry 질량분석 기술을 사용함</p>
<img src = https://velog.velcdn.com/images/sjh9_4/post/43b61358-a995-4dcb-ac8f-9c375f7109cc/image.png width = 300>
</li>
<li><p>단백체 연구에서는 다음과 같은 주제를 다룰 수 있음</p>
</li>
</ul>
<table>
<thead>
<tr>
<th>분야</th>
<th>설명</th>
</tr>
</thead>
<tbody><tr>
<td>Global proteomics</td>
<td>질병이나 자극에 따른 단백질 양 변화 분석</td>
</tr>
<tr>
<td>PTM 분석</td>
<td>인산화, 아세틸화 등 번역 후 변형 분석</td>
</tr>
<tr>
<td>Protein interaction</td>
<td>단백질 간 상호작용 분석</td>
</tr>
<tr>
<td>Clinical proteomics</td>
<td>질병 진단·치료를 위한 바이오마커 탐색</td>
</tr>
<tr>
<td>Single-cell proteomics</td>
<td>단일세포 수준에서 단백질 차이 분석</td>
</tr>
</tbody></table>
</br>

<hr>
<h2 id="7-ms-proteomics-workflow">7. MS-proteomics workflow</h2>
<ul>
<li><p>단백체 분석 흐름은 대략 다음과 같음</p>
</li>
<li><p>*
생물학적 샘플 준비 -&gt; 단백질을 peptide로 분해 -&gt; LC-MS/MS 분석 -&gt; Raw data 생성 -&gt; Database search -&gt; FDR control -&gt; Peptide-spectrum match -&gt; Quantification -&gt; Protein inference -&gt; Biological interpretation**</p>
</li>
<li><p>단백질을 잘게 쪼갠 뒤 질량분석기로 측정하고 측정된 spectrum을 데이터베이스와 비교해서 어떤 peptide인지 찾는 방식임</p>
</li>
</ul>
</br>

<hr>
<h2 id="8-ms1과-ms2">8. MS1과 MS2</h2>
<ul>
<li>MS 분석에서는 MS1 scan과 MS2 scan이 중요함<img src = https://velog.velcdn.com/images/sjh9_4/post/65598895-9fac-4ad6-8343-a544764dcd6e/image.png width = 500>


</li>
</ul>
<ul>
<li>MS1은 특정 시간에 존재하는 peptide들의 질량 정보를 측정하는 단계임</li>
<li>반면 MS2는 선택된 precursor ion을 fragmentation해서 peptide 구조를 더 자세히 파악하는 단계임</li>
</ul>
</br>

<hr>
<h2 id="9-정리">9. 정리</h2>
<ul>
<li><p>DNA, RNA, Protein은 생명현상을 이해하기 위한 핵심 분자 정보임</p>
</li>
<li><p>DNA와 RNA 데이터는 주로 NGS 기술을 통해 분석하고 단백질 데이터는 주로 Mass Spectrometry 기술을 통해 분석함</p>
</li>
<li><p>NGS 데이터에서는 FASTQ, BAM, VCF, read count matrix 같은 파일 형식이 중요하고 MS 기반 단백체 데이터에서는 MS1/MS2 scan, peptide quantification, protein inference 과정이 중요함</p>
</li>
<li><p>결국 멀티오믹스 분석은 DNA, RNA, Protein을 각각 따로 보는 것이 아니라 여러 층위의 생명정보를 통합해서 질병이나 생명현상을 더 깊게 이해하려는 접근이라고 할 수 있음</p>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[논문 리뷰 :Multimodal integration of neuroimaging and genetic data for the diagnosis
of mood disorders based on computer vision models]]></title>
            <link>https://velog.io/@sjh9_4/%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0-Multimodal-integration-of-neuroimaging-and-genetic-data-for-the-diagnosisof-mood-disorders-based-on-computer-vision-models</link>
            <guid>https://velog.io/@sjh9_4/%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0-Multimodal-integration-of-neuroimaging-and-genetic-data-for-the-diagnosisof-mood-disorders-based-on-computer-vision-models</guid>
            <pubDate>Sun, 29 Mar 2026 09:36:54 GMT</pubDate>
            <description><![CDATA[<h1 id="❖-연구-배경">❖ 연구 배경</h1>
<ul>
<li><p><strong>기분 장애(mood disorders)</strong> 는 대표적으로 <strong>Major Depressive Disorder (MDD), Bipolar Disorder (BD)</strong> 를 포함하며 전 세계적으로 매우 큰 정신 건강 문제임</p>
</li>
<li><p>하지만 현재 정신질환 진단은 대부분 환자 <strong>인터뷰, 행동 관찰, 자기 보고</strong>와 같은 주관적인 방식에 의존하고 있고 또한 MRI나 혈액검사처럼 <strong>객관적인 biomarker</strong>가 거의 존재하지 않는다는 문제가 있음</p>
</li>
<li><p>그래서 연구자들은 <strong>뇌 영상과 유전자 데이터를 함께</strong> 사용하면 정신질환을 더 정확하게 진단할 수 있을지에 대한 의문을 가지게 됨</p>
</li>
</ul>
</br>

<hr>
<h1 id="❖-연구-아이디어">❖ 연구 아이디어</h1>
<ul>
<li><p>이 논문의 핵심 아이디어는 <strong>multimodal learning</strong>이며 사용한 데이터는 크게 두 가지임</p>
<ul>
<li><p><strong>Brain MRI</strong> : T1-weighted structural MRI, 뇌 구조 정보 </p>
</li>
<li><p><strong>Genetic data</strong> : SNP (Single Nucleotide Polymorphism), PRS (Polygenic Risk Score)</p>
</li>
</ul>
</li>
<li><p>즉 <strong>Brain structure + genetic variation</strong> 을 함께 사용하는 모델을 만든 것임</p>
</li>
</ul>
<h4 id="왜-뇌영상과-유전정보를-같이-써야-하는가">왜 뇌영상과 유전정보를 같이 써야 하는가</h4>
<ul>
<li><p>먼저 유전 쪽에서 MDD의 유전력은 대략 37<del>50%, BD의 유전력은 60</del>80% 정도로 알려져 있고 이는 즉 기분장애는 유전적 영향이 상당히 큰 질환이라는 뜻임</p>
</li>
<li><p>그런데 유전정보만으로도 부족하며 유전자는 위험성을 만들 수는 있어도 그 위험성이 실제로 뇌 구조나 기능 변화로 어떻게 나타나는지까지는 영상이 더 직접적으로 보여주기 때문임</p>
</li>
<li><p>논문은 HOMER1, BDNF 같은 예를 들면서 특정 유전자 변이가 전전두엽 활성이나 피질 두께와 연관되고 이것이 우울장애 위험과 연결될 수 있다고 설명함 </p>
<ul>
<li>유전자 → 뇌 표현형(영상) → 질환 상태</li>
</ul>
</li>
<li><p>이런 연결고리가 있으니, 두 데이터를 따로 보기보다 같이 보는 게 자연스럽다는 논리임</p>
</li>
</ul>
</br>

<hr>
<h1 id="❖-데이터">❖ 데이터</h1>
<ul>
<li><p>연구에는 총 321명의 데이터가 사용되었음</p>
<img src = https://velog.velcdn.com/images/sjh9_4/post/c3ad7fcb-2f14-4202-bdf7-bec001df5b16/image.png width =400>
</li>
<li><p>모든 데이터는 고려대학교 안암병원에서 수집됨</p>
</li>
</ul>
<h3 id="◆-뇌영상-데이터-t1-weighted-structural-mri">◆ 뇌영상 데이터 (T1-weighted structural MRI)</h3>
<ul>
<li><p><strong>T1-weighted MRI</strong>는 뇌의 구조를 보는 영상이며 뇌가 어떻게 생겼는지 각 영역의 크기와 형태를 보여주는 데이터임</p>
</li>
<li><p>이 영상에서는 다음과 같은 정보가 포함됨</p>
<ul>
<li>뇌 전체 크기</li>
<li>특정 영역의 두께 (예: 전전두엽)</li>
<li>회색질과 백질의 분포</li>
<li>해마 크기 등</li>
</ul>
</li>
<li><p>이런 정보들은 정신질환과 연관이 있을 수 있음</p>
</li>
<li><p>예를 들어 우울증에서는 특정 영역의 두께나 크기가 달라지는 경우가 보고되어 있음</p>
</li>
<li><p>구조 MRI는 비교적 안정적인 정보이며 순간적인 상태 변화가 아니라 기본적인 뇌 형태를 반영하기 때문에 데이터가 많지 않은 상황에서는 기능 MRI보다 구조 MRI가 더 안정적으로 학습에 사용됨</p>
</li>
</ul>
<h3 id="◆-유전-데이터">◆ 유전 데이터</h3>
<p>유전 데이터는 세 단계로 이해하면 쉬움</p>
<h4 id="1-wes-whole-exome-sequencing">1) WES (Whole Exome Sequencing)</h4>
<ul>
<li><p>WES는 DNA 전체 중에서 단백질을 만드는 부분만 읽는 기술임</p>
</li>
<li><p>DNA는 크게 두 부분으로 나뉨</p>
<ul>
<li>단백질을 만드는 부분 (exome)</li>
<li>나머지 부분</li>
</ul>
</li>
<li><p>WES는 이 중에서 exome만 분석하고 비용이 적게 들며 질병과 관련된 변이가 많이 존재하는 영역이기 떄문에 효율적으로 중요한 유전 정보를 얻기 좋음</p>
</li>
</ul>
<h5 id="2-snp-single-nucleotide-polymorphism">2) SNP (Single Nucleotide Polymorphism)</h5>
<ul>
<li><p>SNP는 DNA의 한 글자 차이를 의미함</p>
<ul>
<li>예를 들어</li>
<li>정상: A T G C</li>
<li>변이: A T G T</li>
</ul>
</li>
<li><p>이처럼 C가 T로 바뀌는 것이 SNP임</p>
</li>
<li><p>이 작은 차이가 단백질 구조 변화, 뇌 기능 변화, 질병 위험 증가 로 이어질 수 있음</p>
</li>
<li><p>이 논문에서는 모든 SNP를 사용하는 것이 아니라 기존 연구(GWAS)에서 기분장애와 관련 있다고 알려진 SNP만 선별해서 사용함</p>
</li>
</ul>
<h4 id="3-prs-polygenic-risk-score">3) PRS (Polygenic Risk Score)</h4>
<ul>
<li><p>현실에서는 하나의 SNP만으로 질병이 결정되지 않으며 여러 개의 SNP가 조금씩 영향을 주면서 전체적인 위험도를 만듦</p>
</li>
<li><p>PRS는 여러 SNP의 효과를 합쳐서 만든 유전적 위험 점수임</p>
</li>
<li><p>각 SNP에 대해 위험 유전자가 </p>
<ul>
<li>0개 → 0</li>
<li>1개 → 1</li>
<li>2개 → 2</li>
</ul>
</li>
<li><p>이 값을 모든 SNP에 대해 더하여 만든 것이 unweighted PRS임</p>
</li>
<li><p>unweighted PRS은 모든 SNP를 동일한 중요도로 취급하여 단순 합산한 방식임</p>
</li>
</ul>
<h3 id="전체-구조-이해">전체 구조 이해</h3>
<ul>
<li>이 논문에서 사용하는 데이터는 세 가지임<ul>
<li><strong>MRI</strong> → 뇌의 구조 (결과)</li>
<li><strong>SNP</strong> → 개별 유전자 변이 정보 (원인 요소)</li>
<li><strong>PRS</strong> → 전체 유전 위험을 요약한 값 (원인 요약)</li>
</ul>
</li>
</ul>
</br>

<hr>
<h1 id="❖-모델-구조">❖ 모델 구조</h1>
<p><img src="https://velog.velcdn.com/images/sjh9_4/post/cfd37004-f696-4669-8e47-35f59ad7c784/image.png" alt=""></p>
<ul>
<li>이 연구에서는 MRI 영상 데이터와 유전자 데이터를 결합하는 multimodal fusion 모델을 사용하였고 모델의 전체 구조는 크게 <strong>두 개의 분석 경로(branch)</strong>로 구성됨</li>
</ul>
<h3 id="◆-mri-데이터-분석-computer-vision-model">◆ MRI 데이터 분석 (Computer Vision Model)</h3>
<ul>
<li><p>첫 번째 경로는 MRI 뇌 영상 데이터를 분석하는 부분임</p>
</li>
<li><p>입력 데이터는 T1-weighted structural MRI이며  이를 다음과 같은 computer vision 모델에 입력함</p>
<ul>
<li><strong>Vision Transformer (ViT)</strong></li>
<li><strong>Inception-V3</strong></li>
<li><strong>ResNet50</strong></li>
</ul>
</li>
<li><p>이 모델들은 사전학습(pretrained)된 모델을 사용하여 MRI 이미지에서 특징을 추출하고 각 모델은 다음 세 가지 클래스에 대한 예측 점수를 출력함</p>
<ul>
<li><strong>Control (정상)</strong></li>
<li><strong>MDD (Major Depressive Disorder)</strong></li>
<li><strong>BD (Bipolar Disorder)</strong></li>
</ul>
</li>
<li><p>즉 MRI 데이터만을 이용해 각 환자가 어떤 상태에 가까운지에 대한 확률 점수 벡터를 생성함</p>
</li>
</ul>
<h3 id="◆-유전자-데이터-분석-machine-learning-model">◆ 유전자 데이터 분석 (Machine Learning Model)</h3>
<ul>
<li><p>두 번째 경로는 유전자 데이터를 분석하는 부분임</p>
</li>
<li><p>유전자 데이터는 Whole Exome Sequencing을 통해 얻은 다음 두 가지 정보를 사용함</p>
<ul>
<li><strong>SNP (Single Nucleotide Polymorphism)</strong></li>
<li><strong>Polygenic Risk Score (PRS)</strong></li>
</ul>
</li>
<li><p>이 데이터는 이미지 데이터가 아닌 tabular 형태의 데이터이기 때문에 딥러닝 모델 대신 gradient boosting 기반 모델을 사용함</p>
<ul>
<li><strong>XGBoost</strong></li>
<li><strong>LightGBM</strong></li>
</ul>
</li>
<li><p>이 모델 역시 MRI 모델과 동일하게 세 가지 클래스에 대한 예측 점수를 출력함</p>
<ul>
<li><strong>Control</strong></li>
<li><strong>MDD</strong></li>
<li><strong>BD</strong></li>
</ul>
</li>
</ul>
<h3 id="◆-multimodal-fusion">◆ Multimodal Fusion</h3>
<ul>
<li><p>두 모델에서 얻은 예측 결과는 element-wise sum 방식으로 결합됨</p>
<ul>
<li>MRI 모델의 출력
[Control score, MDD score, BD score]</li>
<li>유전자 모델의 출력
[Control score, MDD score, BD score]</li>
</ul>
</li>
<li><p>두 출력을 각각 더해 최종 예측 점수를 계산함</p>
<ul>
<li>Final score = MRI score + Genetic score</li>
</ul>
</li>
<li><p>이 방식은 late fusion 방식의 multimodal 모델에 해당함</p>
</li>
</ul>
<h3 id="◆-최종-분류">◆ 최종 분류</h3>
<ul>
<li><p>결합된 점수는 softmax를 통해 확률로 변환되며 다음 세 가지 클래스 중 하나로 분류됨</p>
<ul>
<li><strong>Control</strong></li>
<li><strong>MDD</strong></li>
<li><strong>BD</strong></li>
</ul>
</li>
<li><p>이를 통해 MRI 영상 정보와 유전 정보를 동시에 활용한 정신질환 진단 모델이 완성됨</p>
</li>
</ul>
<blockquote>
<p>이 모델의 핵심은 각 데이터 유형에 가장 적합한 모델을 사용한 뒤 <strong>late fusion</strong> 방식으로 결합하여 최종 진단 성능을 향상시키는 전략을 사용한 것임 </p>
</blockquote>
</br>

<hr>
<h1 id="❖-모델-평가">❖ 모델 평가</h1>
<h3 id="◆-평가-방식">◆ 평가 방식</h3>
<ul>
<li><p><strong>10-fold cross-validation</strong> 사용하여 데이터를 10개로 나눠서 9개 학습 / 1개 테스트를10번 반복함</p>
</li>
<li><p>데이터가 적어서 안정적으로 평가하기 위해 평균 + 표준편차로 성능 계산함</p>
</li>
</ul>
<h3 id="◆-평가-지표">◆ 평가 지표</h3>
<ul>
<li><strong>AUC</strong>: 전체적인 구분 능력 (가장 중요하게 사용)</li>
<li><strong>Accuracy</strong>: 전체 정확도</li>
<li><strong>Sensitivity</strong>: 환자를 잘 잡는 능력</li>
<li><strong>Specificity</strong>: 정상인을 잘 구분하는 능력<img src = https://velog.velcdn.com/images/sjh9_4/post/f46fec3d-9141-4c40-a1a2-5dbca64c6f88/image.png width = 600>


</li>
</ul>
<h3 id="◆-비교-구조">◆ 비교 구조</h3>
<ul>
<li>단순히 성능만 본 게 아니라 <strong>MRI만, 유전만 (SNP), MRI + 유전 (멀티모달)</strong> 3가지를 비교함</li>
<li>핵심은 멀티모달이 더 좋은지 확인하는 것임</li>
</ul>
<h3 id="◆-결과-핵심">◆ 결과 핵심</h3>
<img src = https://velog.velcdn.com/images/sjh9_4/post/b90da460-2325-437e-978e-e8086b92be3b/image.png width=500>

<ul>
<li>MRI only → AUC 약 0.82</li>
<li>SNP only → AUC 약 0.67</li>
<li>멀티모달 → AUC 약 0.89</li>
<li>둘을 같이 쓰면 성능 상승하는 것을 확인 할 수 있음</li>
</ul>
</br>

<hr>
<h1 id="❖-결론-및-한계">❖ 결론 및 한계</h1>
<h3 id="◆-결론">◆ 결론</h3>
<ul>
<li><p>이 연구에서는 <strong>뇌영상과 유전 데이터</strong>를 함께 사용하는 <strong>멀티모달 융합 모델</strong>이 MDD와 BD 진단에 활용될 수 있음을 보여줌</p>
</li>
<li><p>특히 컴퓨터 비전 기반 모델과 머신러닝을 결합한 2단계 구조를 통해 다양한 임상 데이터를 효과적으로 통합했고 그 결과 단일 데이터보다 더 안정적이고 재현성 있는 성능을 얻을 수 있었다는 점이 핵심임</p>
</li>
<li><p>또한 향후에는 다른 neuroimaging 데이터나 genomic 데이터를 추가하여</p>
</li>
<li><p><em>실제 임상 진단 보조 도구*</em>로 확장 가능성을 제시하고 있음</p>
</li>
</ul>
<h3 id="◆-한계">◆ 한계</h3>
<ul>
<li><p>실제 임상 적용까지는 아직 거리 있음</p>
<ul>
<li>실제 clinical workflow에 바로 들어가기엔 부족</li>
</ul>
</li>
<li><p>데이터 접근성 문제 </p>
<ul>
<li>개인정보 보호 때문에 데이터가 공개되지 않음</li>
<li>다른 연구자가 재현하거나 확장하기 어려움</li>
</ul>
</li>
<li><p>모달리티 확장 필요성 자체가 한계</p>
<ul>
<li>논문에서도 더 다양한 데이터가 필요하다는 것을 인지함</li>
<li>현재 모델만으로는 질환을 충분히 설명하기 부족하다는 의미함</li>
</ul>
</li>
<li><p>모델 해석 부족 </p>
<ul>
<li>feature 중요도는 보여주지만</li>
<li>실제로 왜 특정 환자가 MDD/BD로 분류됐는지 임상적으로 설명하기는 어려움</li>
</ul>
</li>
</ul>
</br>

<hr>
<h1 id="❖-discussion-questions">❖ Discussion Questions</h1>
<blockquote>
<p>논문을 읽으며 떠오른 의문과 연구적으로 확장해볼 수 있는 질문들을 정리</p>
</blockquote>
<h4 id="q1-multimodal-fusion">Q1. Multimodal Fusion</h4>
<ul>
<li>논문은 late fusion을 사용했는데 이 방식은 안정적이지만 MRI와 SNP 간 상호작용을 직접 학습하기 어렵다고 생각했음
→ feature-level 결합이나 attention 기반 end-to-end 학습이 더 적합하지 않았는지 궁금했음<h4 id="q2-classification-한계">Q2. Classification 한계</h4>
</li>
<li>불확실성 문제
→ 확률 차이가 작아도 하나의 클래스로 결정됨</li>
<li>정보 손실 문제
→ 0.9 vs 0.51 모두 동일하게 MDD로 분류됨
→ 확률 기반 해석이나 연속적인 위험도 예측이 더 적절하지 않을지 궁금했음<h4 id="q3-generalization">Q3. Generalization</h4>
</li>
<li>외부 데이터 검증이 없어 일반화 성능이 어느 정도인지 의문이 있었음
→ 데이터 부족 상황에서</li>
<li>pretraining, transfer learning 등의 보완 방법이 효과적인지도 궁금했음</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[머신러닝과 인과추론 (Causal Machine Learning)]]></title>
            <link>https://velog.io/@sjh9_4/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D%EA%B3%BC-%EC%9D%B8%EA%B3%BC%EC%B6%94%EB%A1%A0-Causal-Machine-Learning</link>
            <guid>https://velog.io/@sjh9_4/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D%EA%B3%BC-%EC%9D%B8%EA%B3%BC%EC%B6%94%EB%A1%A0-Causal-Machine-Learning</guid>
            <pubDate>Mon, 09 Mar 2026 00:01:34 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>머신러닝을 공부하다 보면 대부분의 내용이 예측 성능을 높이는 데 집중되어 있다는 것을 느끼게 됨
하지만 실제 데이터 분석이나 의료 데이터 같은 분야에서는 단순히 잘 맞추는 것보다 어떤 요인이 결과에 영향을 미치는지를 이해하는 것이 더 중요할 때가 많음
Stanford의 Causal Machine Learning 강의를 보면서 머신러닝과 인과추론이 어떻게 연결되는지 정리해보고 싶어 이 글을 작성하게 됨</p>
</blockquote>
<hr>
<h1 id="❖-1-머신러닝과-인과추론은-왜-다른가">❖ 1. 머신러닝과 인과추론은 왜 다른가</h1>
<ul>
<li><p>머신러닝의 핵심 목적은 <strong>새로운 데이터에 대한 예측 성능을 최대화하는 것</strong>임</p>
</li>
<li><p>이를 위해 머신러닝은 매우 유연한 함수 형태를 사용하는데 예를 들어 딥러닝이나 랜덤포레스트 같은 모델은 데이터의 복잡한 패턴을 학습하는 데 매우 강력함</p>
</li>
<li><p>하지만 모델이 지나치게 복잡해지면 <strong>과적합(overfitting)</strong> 문제가 발생하게 되고 이를 방지하기 위해 머신러닝에서는 <strong>정규화(regularization)</strong> 를 사용함</p>
</li>
<li><p>대표적인 방법으로는 다음과 같은 것들이 있음</p>
<ul>
<li><p><strong>L1 Regularization</strong>
모델의 가중치에 절댓값 패널티(|w|) 를 추가하는 정규화 방법
불필요한 가중치를 0으로 만들어 변수 선택 효과가 있음
그래서 <strong>특징 선택(feature selection)</strong>에 유리함</p>
</li>
<li><p><strong>L2 Regularization</strong>
가중치에 제곱 패널티(w²) 를 추가하는 정규화 방법
가중치를 완전히 0으로 만들기보다는 전체적으로 작게 만듦
모델이 특정 변수에 과도하게 의존하는 것을 방지함</p>
</li>
<li><p><strong>Dropout</strong>
학습할 때 일부 뉴런을 랜덤하게 비활성화시키는 방법
매 학습마다 다른 네트워크처럼 작동해서
뉴런 간 과도한 의존(co-adaptation)을 방지하고 과적합을 줄임</p>
</li>
<li><p><strong>Early Stopping</strong>
학습을 계속하다 보면 train 성능은 좋아지지만 validation 성능이 나빠지는 시점이 생김
그 시점 전에 학습을 멈춰 과적합을 방지하는 방법 </p>
</li>
</ul>
</li>
<li><p>그리고 정규화의 강도는 보통 <strong>Cross Validation</strong>을 통해 데이터 기반으로 결정되고 이러한 접근 방식 덕분에 머신러닝은 이미지 인식,자연어 처리,추천 시스템 같은 분야에서 매우 높은 성능을 보이고 있음</p>
</li>
<li><p>하지만 중요한 점은 머신러닝이 <strong>예측 정확도</strong>에 초점을 맞추고 있다는 것임</p>
</li>
</ul>
<hr>
<h1 id="❖-2-머신러닝을-인과추론에-쓰기-어려운-이유">❖ 2. 머신러닝을 인과추론에 쓰기 어려운 이유</h1>
<ul>
<li><p>전통적인 계량경제학의 목표는 <strong>계수의 의미를 해석하는 것</strong>임</p>
</li>
<li><p>예를 들어 다음과 같은 모델을 생각해 보면 </p>
</li>
</ul>
<p>$$
Y = \beta T + \gamma X + \epsilon
$$</p>
<ul>
<li><p>여기서 우리가 알고 싶은 것은 <strong>치료(Treatment)의 효과</strong>인  $$\beta$$가 실제로 어떤 의미를 가지는지를 해석하는 것이 중요함</p>
</li>
<li><p>하지만 머신러닝 모델은 매우 복잡한 구조,수많은 파라미터, 데이터 기반 튜닝을 사용하기 때문에 <strong>계수 해석이 거의 불가능함</strong></p>
</li>
<li><p>예를 들어 딥러닝 모델이 질병 발생 확률 = 0.83 이라고 예측했다고 하더라도 <strong>왜 그런 결과가 나왔는지</strong>를 설명하기는 어려움</p>
</li>
<li><p>따라서 머신러닝은 보통 <strong>Prediction Tool</strong>로 사용되고 <strong>Causal Inference</strong>에는 바로 적용하기 어려움</p>
</li>
</ul>
<hr>
<h1 id="❖-3-average-treatment-effect-ate">❖ 3. Average Treatment Effect (ATE)</h1>
<ul>
<li><p>인과추론에서 가장 기본적인 개념은 <strong>Average Treatment Effect (ATE)</strong>임</p>
</li>
<li><p>ATE는 다음과 같이 정의됨</p>
</li>
</ul>
<p>$$
ATE = E[Y(1) - Y(0)]
$$</p>
<ul>
<li><p>여기서</p>
<ul>
<li>Y(1) : 치료를 받았을 때 결과  </li>
<li>Y(0) : 치료를 받지 않았을 때 결과  </li>
</ul>
</li>
<li><p>문제는 <strong>같은 사람에 대해 두 가지 결과를 동시에 관측할 수 없다는 것</strong>인데 이를 <strong>Fundamental Problem of Causal Inference</strong> 라고 함</p>
</li>
</ul>
<hr>
<h2 id="◆-randomized-controlled-trial-rct">◆ Randomized Controlled Trial (RCT)</h2>
<ul>
<li><p>RCT에서는 치료가 <strong>무작위(random)</strong> 로 배정되기 때문에 ATE는 다음과 같이 계산할 수 있음
$$
ATE = E[Y|T=1] - E[Y|T=0]
$$</p>
</li>
<li><p>하지만 현실에서는 대부분 <strong>의료 데이터, 경제 데이터, 사용자 행동 데이터</strong>처럼 <strong>관찰 데이터(Observational Data)</strong> 를 사용하기 때문에 <strong>Confounding 문제</strong>가 발생한다.</p>
</li>
</ul>
<hr>
<h1 id="❖-4-confounding-문제">❖ 4. Confounding 문제</h1>
<ul>
<li><p>관찰 데이터에서는 <strong>교란 변수(confounder)</strong> 가 존재함</p>
</li>
<li><p>예를 들어 <strong>운동 → 건강</strong> 을 분석한다고 해도 실제로는 <strong>건강한 사람 → 운동</strong>일 수도 있음</p>
</li>
<li><p>그러므로 $$T \leftarrow X \rightarrow Y$$ 와 같은 구조가 발생함</p>
</li>
<li><p>이 경우 단순 비교로는 <strong>인과 효과를 정확히 추정할 수 없음</strong></p>
</li>
</ul>
<hr>
<h1 id="❖-5-double-robust-estimation">❖ 5. Double Robust Estimation</h1>
<ul>
<li><p>이를 해결하기 위한 대표적인 방법이 <strong>AIPW (Augmented Inverse Propensity Weighting)</strong> 임</p>
</li>
<li><p>이 방법은 두 가지 모델을 동시에 사용함</p>
</li>
</ul>
<h3 id="outcome-model">Outcome Model</h3>
<p>$$
E[Y | X, T]
$$</p>
<h3 id="propensity-score-model">Propensity Score Model</h3>
<p>$$
e(X) = P(T=1|X)
$$</p>
<ul>
<li><p>이 두 가지를 결합하면 <strong>Double Robust Estimator</strong>가 됨</p>
</li>
<li><p>Double Robust는 두 모델 중 하나만 정확해도 추정이 일관성을 가지며 또한 다음과 같은 통계적 성질을 가짐</p>
<ul>
<li>√n convergence  </li>
<li>Central Limit Theorem  </li>
</ul>
</li>
<li><p>따라서 머신러닝을 사용하면서도 <strong>통계적 추론이 가능함</strong></p>
</li>
</ul>
<hr>
<h1 id="❖-6-cross-fitting">❖ 6. Cross-Fitting</h1>
<ul>
<li><p>머신러닝 모델을 사용할 때 중요한 문제는 <strong>Overfitting</strong>임</p>
</li>
<li><p>같은 데이터를 사용해 모델을 학습하고 같은 데이터로 효과를 추정하면 편향이 발생할 수 있으며 이를 해결하는 방법이 <strong>Cross-Fitting</strong>임</p>
</li>
<li><p>방법은 다음과 같음</p>
</li>
</ul>
<ol>
<li>데이터를 여러 개의 fold로 나눈다  </li>
<li>일부 데이터로 모델을 학습한다  </li>
<li>다른 데이터로 treatment effect를 추정한다  </li>
</ol>
<ul>
<li>예를 들어 Fold 1 → 모델 학습,Fold 2 → 효과 추정하는 이 과정을 반복하면 <strong>Overfitting</strong>과 <strong>편향</strong>이 감소하는 효과를 얻을 수 있음</li>
</ul>
<hr>
<h1 id="❖-7-heterogeneous-treatment-effect-cate">❖ 7. Heterogeneous Treatment Effect (CATE)</h1>
<ul>
<li><p>ATE는 <strong>평균 효과</strong>만 알려주지만 실제로 중요한 질문은 <strong>누구에게 치료가 효과적인가</strong>임</p>
</li>
<li><p>이를 <strong>Conditional Average Treatment Effect (CATE)</strong> 라고 함</p>
</li>
</ul>
<p>$$
CATE(x) = E[Y(1) - Y(0) | X = x]
$$</p>
<ul>
<li>즉 개인의 특성에 따라 <strong>치료 효과가 달라질 수 있음</strong></li>
</ul>
<hr>
<h1 id="❖-8-causal-forest">❖ 8. Causal Forest</h1>
<ul>
<li><p>CATE를 추정하는 대표적인 머신러닝 방법이 <strong>Causal Forest</strong>이며 기본 아이디어는 다음과 같음</p>
<ol>
<li>데이터를 여러 번 분할하여 트리를 만듦</li>
<li>각 노드에서 treatment effect를 계산함</li>
<li>여러 트리를 평균하여 안정적인 추정치를 얻음</li>
</ol>
</li>
<li><p>Causal Forest는 다음과 같이 해석할 수 있는데 <strong>Adaptive Nearest Neighbor Estimator</strong> 또한 확장된 방법으로 <strong>Local Linear Forest</strong> 같은 방법도 존재함</p>
</li>
</ul>
<hr>
<h1 id="❖-9-policy-learning">❖ 9. Policy Learning</h1>
<ul>
<li><p>Causal Machine Learning의 궁극적인 목표는 단순히 효과를 추정하는 것이 아니라 어떤 정책을 선택해야 하는가 를 결정하는 것임</p>
</li>
<li><p>예를 들어</p>
<ul>
<li>어떤 환자에게 약을 투여할 것인가  </li>
<li>어떤 사용자에게 광고를 보여줄 것인가  </li>
<li>어떤 학생에게 장학금을 줄 것인가  </li>
</ul>
</li>
<li><p>이 문제를 <strong>Policy Learning</strong>이라고 하며 정책을 $$\pi(x)$$ 라고 하면 목표는 $$E[W(\pi)]$$ 즉 <strong>Expected Welfare</strong>를 최대화하는 것임</p>
</li>
<li><p>이를 위해 다음과 같은 방법들이 사용됨</p>
<ul>
<li><p><strong>IPW Loss (Inverse Probability Weighting Loss)</strong>
처치(treatment)를 받을 확률(propensity score) 의 역수를 이용해 가중치를 주는 방법
특정 처치를 받을 확률이 낮은 데이터에 더 큰 가중치를 부여함
이렇게 해서 처치 배정의 편향(selection bias) 을 보정하려는 목적</p>
</li>
<li><p><strong>Doubly Robust Loss</strong> 
두 가지 모델을 동시에 사용하는 방법
Propensity model (처치 받을 확률 모델), Outcome model (결과 예측 모델)
두 모델 중 하나만 제대로 맞아도 추정이 비교적 안정적으로 유지됨</p>
</li>
</ul>
</li>
</ul>
<hr>
<h1 id="정리">정리</h1>
<ul>
<li><p>머신러닝은 <strong>예측 성능을 극대화하는 도구</strong>이고   인과추론은 <strong>개입의 효과를 추정하는 방법론</strong>임</p>
</li>
<li><p>최근 연구에서는 Machine Learning + Causal Inference 를 결합하여 아래 3가지를 추정하는 <strong>Causal Machine Learning</strong>이 활발히 연구되고 있음</p>
<ul>
<li>Average Treatment Effect  </li>
<li>Conditional Treatment Effect  </li>
<li>Optimal Policy Learning  </li>
</ul>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[내가 걸어온 길과 앞으로의 방향]]></title>
            <link>https://velog.io/@sjh9_4/%EB%82%B4%EA%B0%80-%EA%B1%B8%EC%96%B4%EC%98%A8-%EA%B8%B8%EA%B3%BC-%EC%95%9E%EC%9C%BC%EB%A1%9C%EC%9D%98-%EB%B0%A9%ED%96%A5</link>
            <guid>https://velog.io/@sjh9_4/%EB%82%B4%EA%B0%80-%EA%B1%B8%EC%96%B4%EC%98%A8-%EA%B8%B8%EA%B3%BC-%EC%95%9E%EC%9C%BC%EB%A1%9C%EC%9D%98-%EB%B0%A9%ED%96%A5</guid>
            <pubDate>Sat, 07 Mar 2026 11:36:42 GMT</pubDate>
            <description><![CDATA[<p>2026년이 되면서 다시 사회로 돌아갈 날이 얼마 남지 않았다는 생각이 들자, 내가 앞으로 무엇을 하고 싶은지 그리고 어떤 미래를 그리고 있는지에 대한 고민이 끊임없이 따라왔다. 일단 대학원에 가고 싶다고 주변에 말은 해두었지만, 솔직히 말하면 취업 시장이 어렵다 보니 선택한 도피성 결정처럼 보일 수도 있겠다는 생각에 마음이 무거웠다. 사실 대학원을 정말 가고 싶은지도 스스로 확신이 없었고, 그 수많은 분야와 연구 중에서 내가 무엇을 좋아하고 어떤 길을 걷고 싶은지 감이 잘 잡히지 않았다.</p>
<p>불안한 마음에 조금이라도 관심이 있는 분야라면 연구실을 찾아보고 컨택도 해보았지만, 직접 마주한 연구실의 분위기나 연구 방향이 내가 상상했던 것과 다른 경우도 많았다. 그 과정을 거치며 내가 진짜 하고 싶은 것은 무엇인지, 그리고 지금까지 나는 어떤 길을 걸어왔는지에 대해 깊게 고민하게 되었다. 그래서 오늘은 대학에 들어온 이후 내가 어떤 과정을 거쳐 지금까지 오게 되었는지, 앞으로 어떤 방향을 그려나가면 좋을지 스스로 정리해보려 한다.</p>
<p>나의 여정은 20살 재수를 거쳐 21살에 건국대학교 생명과학과에 입학하며 시작되었다. 생명과학 자체가 싫었던 것은 아니지만, 시간이 갈수록 나는 생명과학 그 자체보다 생명 데이터나 의료 데이터를 분석하는 쪽에 더 큰 매력을 느꼈다. 데이터를 통해 생명 현상이나 의료 문제를 풀어내는 과정이 흥미로웠기 때문이다. 결국 2학년 때 스마트 ICT 융합공학과로 전과를 결심했다. 기본적으로 컴퓨터공학 기반이면서도 추가적으로 부전공을 선택해 내가 원하는 데이터 사이언스와 분석 분야를 집중적으로 공부할 수 있다는 점이 나에게는 큰 기회로 다가왔다.</p>
<p>전과 후 컴퓨터공학 수업을 들으며 프론트엔드나 백엔드 개발도 경험해보았지만, 그런 개발 분야는 나와 크게 맞지 않는다고 느꼈다. 나는 무언가를 구축하는 것보다 분석하는 쪽에 더 갈증을 느꼈고, 3학년 때 응용통계학을 부전공으로 선택하며 데이터 분석 분야에 더욱 몰두했다. 하지만 학교 수업만으로는 부족하다고 느껴 3학년 2학기가 되기 전 교내 데이터 분석 동아리에 들어갔다. 그곳에서 처음으로 데이터를 직접 수집하고 정제하며 발표하는 경험을 쌓았다. 이론으로만 배웠던 머신러닝 모델들을 실전에 적용해보는 과정은 나에게 큰 자산이 되었다.</p>
<p>이후 더 넓은 경험을 위해 빅데이터 연합동아리에 들어갔다. 이곳에서는 이전보다 딥러닝을 활용한 프로젝트가 주를 이루었다. 나는 딥러닝 실전 경험이 부족했기에, 오히려 이 기회에 다양한 분야를 모두 찍먹해보자는 마음으로 매번 프로젝트마다 새로운 분야를 선택했다. 덕분에 컴퓨터 비전, 추천 시스템, 시계열 분석, 멀티모달, 자연어 처리 등 여러 분야를 깊지는 않더라도 한 번씩 경험해볼 수 있었고, 동료들과 공모전에도 나가보며 실전 감각을 익혔다.</p>
<p>동아리 활동 중간에 사회복무를 시작하게 되었지만 시간을 허비하고 싶지 않았다. 2025년 8월까지 동아리 활동을 병행하면서 SQLD, ADsP, 빅데이터분석기사, 토익 등의 자격증을 취득하며 내실을 다졌다. 활동이 끝난 뒤에는 기술 블로그 소모임에 참여해 매주 한 편씩 글을 쓰며 공부의 끈을 놓지 않았다. 9월과 10월부터는 가장 재미있게 했던 추천 시스템과 자연어 처리 관련 논문들을 읽으며 미래를 구상했다. 하지만 논문을 읽으면서도 내가 정말 이 분야를 계속 연구하고 싶은지에 대한 확신은 여전히 서지 않았다. 여러 연구실과 면담하며 나의 부족함을 느끼기도 했고, 내가 너무 CS 중심의 연구실만을 보고 있는 것은 아닐까 하는 고민도 깊어졌다. 나는 모델의 구조를 극단적으로 개선하는 것보다 AI를 실제 도메인에 활용하는 것에 더 관심이 컸기 때문이다.</p>
<p>그러다 문득 예전에 공부했던 생명과학 전공이 떠올랐다. AI와 딥러닝을 활용하면서도 의료 데이터라는 확실한 도메인을 연구하는 곳들을 찾아보기 시작했을 때, 비로소 이것이 진짜 내가 하고 싶었던 것이라는 강한 확신이 왔다. 생명과학 배경지식, 데이터 분석 능력, 그리고 AI 경험이 모두 하나로 연결되는 지점을 드디어 찾은 것이다. 곧바로 관련 연구실 두 곳에 연락을 드렸고, 감사하게도 모두 긍정적인 답변을 받았다. 그중 한 곳은 나의 목표와 너무나 잘 맞는 곳이라 이제는 그곳을 향해 집중해보려 한다.</p>
<p>2025년까지는 명확한 목표 없이 그저 열심히 달려왔던 것 같다. 대학원과 취업 사이에서 뜬구름을 잡는 듯한 기분에 힘든 시간도 있었지만, 이제는 정말 가고 싶은 곳이 생겼다. 목표가 분명해지니 마음가짐도 달라진다. 교수님께서 공유해주신 소중한 자료들을 시작으로, 이제는 흔들림 없이 이 길을 준비해보려 한다. 다음 글에서는 그 자료들을 하나씩 정리하며 본격적인 공부의 기록을 남겨보겠다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[논문리뷰 : Generative Agents: Interactive Simulacra of Human Behavior]]></title>
            <link>https://velog.io/@sjh9_4/%EB%85%BC%EB%AC%B8%EB%A6%AC%EB%B7%B0-Generative-Agents-Interactive-Simulacra-of-Human-Behavior</link>
            <guid>https://velog.io/@sjh9_4/%EB%85%BC%EB%AC%B8%EB%A6%AC%EB%B7%B0-Generative-Agents-Interactive-Simulacra-of-Human-Behavior</guid>
            <pubDate>Fri, 23 Jan 2026 06:01:17 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>논문 링크 : <a href="https://arxiv.org/abs/2304.03442">https://arxiv.org/abs/2304.03442</a></p>
</blockquote>
<h1 id="❖-논문-선정-이유">❖ 논문 선정 이유</h1>
<ul>
<li><p>ReAct와 Toolformer 논문을 먼저 읽으면서 LLM이 추론 과정에서 행동을 선택하고 필요할 때 외부 도구를 사용하는 방식에 대해 이해하게 되었고 이후 단발적인 문제 해결이 아니라 시간 흐름 속에서 기억을 유지하고 행동을 이어가는 에이전트 구조에 관심이 생겼음</p>
</li>
<li><p>Generative Agents: Interactive Simulacra of Human Behavior 논문은 기억, 반성, 계획이라는 요소를 통해 에이전트가 장기적인 맥락을 유지하며 사람처럼 행동할 수 있음을 보여준다는 점에서 인상적이었으며 ReAct와 Toolformer에서 다뤄진 추론 및 행동 개념을 일상적 행동과 사회적 상호작용 수준으로 확장한 연구라고 생각되어 LLM 기반 에이전트에 대한 이해를 넓히기 위해 본 논문을 선정하게 됐음</p>
</li>
</ul>
</br>

<hr>
<h1 id="❖-introduction">❖ INTRODUCTION</h1>
<img src= https://velog.velcdn.com/images/sjh9_4/post/857504ad-dbb4-4897-b415-51abf6fe0a05/image.png width = 700>

<ul>
<li><p>최근 LLM은 단순한 텍스트 생성 모델을 넘어 추론과 행동을 결합한 <strong>에이전트 형태로 확장</strong>되고 있으며 <strong>ReAct와 Toolformer</strong>와 같은 선행 연구들은 LLM이 내부 추론 과정을 기반으로 행동을 선택하거나 외부 도구를 활용할 수 있음을 보여주고 LLM 기반 에이전트 연구의 가능성을 제시했음</p>
</li>
<li><p>그러나 이러한 접근들은 <strong>대부분 단일 문제 해결에 초점</strong>을 두고 있어 장기적인 <strong>시간 흐름 속에서 일관된 행동을 수행하거나 경험을 축적하는 에이전트를 설명하는 데에는 한계</strong>가 있었음</p>
</li>
<li><p><strong>Generative Agents: Interactive Simulacra of Human Behavior</strong>는 이러한 한계를 보완하고자 <strong>기억(memory), 반성(reflection), 계획(planning)</strong> 이라는 요소를 결합한 새로운 에이전트 구조를 제안하였고 에이전트가 과거 경험을 자연어 형태의 기억으로 저장하고 이를 바탕으로 스스로를 요약과 추상화하며 <strong>장기적인 계획</strong>을 수립함으로써 사람과 유사한 행동 패턴과 사회적 상호작용을 보일 수 있음을 <strong>시뮬레이션 환경</strong>을 통해 보여줌</p>
</li>
</ul>
</br>

<hr>
<h1 id="❖-generative-agent-behavior-and-interaction">❖ Generative Agent Behavior and Interaction</h1>
<h3 id="◆-agent-avatar-and-communication">◆ <strong>Agent Avatar and Communication</strong></h3>
<img src = https://velog.velcdn.com/images/sjh9_4/post/b202d35f-bba4-4d16-96ad-769ad59950dd/image.png width = 700>

<ul>
<li><p><strong>Generative Agents</strong> 논문에서는 에이전트의 행동과 상호작용이 단순한 규칙이나 미리 정의된 시나리오가 아니라 환경에 대한 인식과 기억을 기반으로 자연스럽게 발생함을 보여주고 이를 위해 논문에서는 <strong>Smallville이라는 가상 마을 환경</strong>을 설계하고 에이전트들이 이 공간 안에서 일상적인 활동과 <strong>사회적 상호작용을 수행</strong>하도록 함</p>
</li>
<li><p>Smallville 환경은 계층적인 구조로 표현되며 전체 세계(root node) 아래에 집, 카페, 상점, 학교와 같은 지역 단위가 존재하며 각 지역 내부에는 방, 가구, 물체와 같은 세부 객체들이 포함되었고 에이전트는 이 전체 환경을 완전히 알고 있는 것이 아닌 자신이 직접 관찰한 부분에 대해서만 부분적인 서브그래프 형태로 기억을 유지하며 즉, <strong>에이전트의 세계 인식은 항상 불완전하며 관찰 경험에 따라 점진적으로 갱신됨</strong></p>
</li>
<li><p>에이전트의 행동은 <strong>현재 위치, 관련된 기억,</strong> 그리고 <strong>사전에 수립된 계획</strong>을 함께 고려하여 생성됨</p>
<ul>
<li>예를 들어서 특정 시간에 카페에 가기로 계획한 에이전트는 실제로 카페로 이동하고 그 과정에서 다른 에이전트를 만나 대화를 나누거나 새로운 사건을 경험하게 됨</li>
</ul>
</li>
<li><p>이러한 상호작용은 별도로 프로그래밍된 것이 아닌 각 에이전트가 자신의 기억과 계획을 기반으로 행동한 결과로 자연스럽게 발생함</p>
</li>
<li><p>또한 에이전트 간의 사회적 상호작용은 기억을 통해 누적되어 대화나 만남과 같은 사건은 기억으로 저장되고 이후 <strong>반성(reflection)</strong> 과정을 통해 관계나 성향에 대한 고차적인 정보로 추상화되고 이로 인해 에이전트들은 반복적인 상호작용을 통해 친밀도나 사회적 역할을 형성하며 집단 행동이나 소문 전파와 같은 현상이 나타나게 됨</p>
</li>
</ul>
<blockquote>
<p><strong>Generative Agents</strong>는 에이전트의 행동과 상호작용이 <strong>단발적인 응답 생성이 아니라</strong> 환경 인식, 기억, 계획이 결합된 <strong>장기적인 과정</strong>임을 보여주며 LLM 기반 에이전트를 보다 현실적인 사회적 존재로 확장할 수 있음을 시사함</p>
</blockquote>
<h3 id="◆-emergent-social-behaviors">◆ <strong>Emergent Social Behaviors</strong></h3>
<img src = https://velog.velcdn.com/images/sjh9_4/post/9455f470-3b0d-4d41-b5c4-c0cff9c71728/image.png width = 700>

<ul>
<li><p>위 그림은 Generative Agents 논문에서 제안한 에이전트 구조가 실제로 일상 행동과 사회적 상호작용으로 어떻게 나타나는지를 시각적으로 보여주는 예시임 </p>
<ul>
<li>하나의 에이전트가 아침에 일어나 하루를 시작하는 과정을 시간 흐름에 따라 표현한 것이며 에이전트는 기상, 세면, 아침 식사와 같은 일상적인 행동을 순차적으로 수행하며 이는 미리 정의된 스크립트가 아니라 <strong>계획(planning)과 기억(memory)</strong> 을 기반으로 생성된 행동임</li>
</ul>
</li>
<li><p>이 과정에서 에이전트는 하루 일정에 대한 계획을 먼저 수립하고 각 시간대에 맞는 행동을 선택함</p>
<ul>
<li>예를 들어 아침 6시에 기상한 이후 세면과 아침 식사를 수행하고 가족과 짧은 대화를 나눈 뒤 출근하는 행동은 에이전트가 자신의 상태와 환경을 고려해 자연스럽게 이어진 결과임</li>
</ul>
</li>
<li><p>이러한 행동 흐름은 ReAct에서의 <strong>단기적인 사고–행동 루프를 하루 단위의 장기 계획으로 확장한 형태로 볼 수 있음</strong></p>
<img src = https://velog.velcdn.com/images/sjh9_4/post/61475202-5332-4c34-8ac8-11aa22d312a3/image.png width = 600>
</li>
<li><p>Figure 4는 <strong>에이전트 간의 상호작용과 관계 형성이 어떻게 발생하는지</strong>를 보여주는데 한 에이전트가 특정 이벤트(발렌타인 데이 파티)를 계획하면 해당 의도가 기억으로 저장되고 다른 에이전트들과의 대화와 상호작용을 통해 점차 확산되고 이 과정에서 일부 에이전트는 해당 정보를 기억하지 못하거나 행동으로 옮기지 않을 수도 있으나 <strong>다수의 에이전트가 기억과 계획을 유지</strong>하면서 결과적으로 이벤트가 성사되는 모습이 나타남</p>
</li>
<li><p>중요한 점은 이러한 사회적 상호작용과 협력이 별도의 규칙이나 중앙 통제 없이 발생한다는 점인데각  에이전트는 자신이 관찰한 정보와 기억을 바탕으로 행동하며 반복적인 상호작용을 통해 관계 기억(relationship memory)이 형성되어 이로 인해 특정 에이전트 간 친밀도, 역할 분담, 소문 전파와 같은 사회적 현상이 자연스럽게 나타남</p>
</li>
</ul>
<blockquote>
<p><strong>Generative Agents가 단순히 질문에 반응하는 시스템이 아니라 시간 흐름 속에서 계획을 세우고 기억을 축적하며 다른 에이전트와 상호작용하는 존재</strong>임을 보여주며 이는 LLM 기반 에이전트를 일회성 문제 해결 도구에서 벗어나 장기적 맥락과 사회적 행동을 수행할 수 있는 지능형 주체로 확장한 사례라고 볼 수 있음</p>
</blockquote>
<p><img src="https://velog.velcdn.com/images/sjh9_4/post/80aefb0c-53ed-4b25-95ee-0eac168dee5c/image.png" alt=""></p>
<ul>
<li><p>Figure 5는 Generative Agents에서 제안한 에이전트의 전체 동작 구조를 나타낸 그림임. 에이전트는 환경을 인식(perceive)하는 단계부터 시작하여 <strong>기억 저장, 기억 검색, 계획 수립, 반성, 행동 실행</strong>으로 이어지는 <strong>순환 구조</strong> 를 가지는데 이 과정은 단발적으로 끝나는 것이 아니라, 반복되면서 에이전트의 상태가 시간에 따라 변화함</p>
</li>
<li><p>먼저 에이전트는 주변 환경을 인식하여 이때 발생한 모든 경험과 관찰 결과를 <strong>memory stream</strong>이라는 형태로 저장하고 memory stream은 에이전트가 <strong>지금까지 겪은 사건들의 연속적인 기록으로 단기 기억과 장기 기억을 구분하지 않고 자연어 형태로 누적</strong>되며 에이전트의 모든 경험이 <strong>하나의 시간 순서 스트림</strong>으로 관리됨</p>
</li>
<li><p>이후 에이전트가 행동을 결정해야 하는 상황이 되면 memory stream <strong>전체를 사용하는 것이 아니라 retrieve 단계를 통해 현재 상황과 관련된 기억만 선택</strong>하고 이때 기억은 <strong>최근성, 중요도, 그리고 현재 맥락과의 관련성을 기준</strong>으로 점수가 매겨져 선택되고 그 기억들이 <strong>retrieved memories</strong>로 전달됨</p>
</li>
<li><p>retrieved memories는 단순히 즉각적인 행동을 결정하는 데만 사용되지 않고 에이전트는 이 기억들을 바탕으로 <strong>plan 단계에서 장기적인 행동 계획을 수립</strong>하고 <strong>reflect 단계에서는 여러 기억을 종합해 자신의 성향, 관계, 반복되는 행동 패턴과 같은 고차적인 정보를 생성</strong>하여 그 <strong>계획과 반성 결과 역시 새로운 기억으로 다시 memory stream에 저장</strong>됨</p>
</li>
<li><p>마지막으로 에이전트는 현재 상황, retrieved memories, 그리고 수립된 계획을 함께 고려하여 act 단계에서 실제 행동을 수행하고 이 행동의 결과는 다시 환경에 반영되어 새로운 인식과 경험으로 이어지면서 <strong>전체 과정이 다시 반복됨</strong></p>
</li>
</ul>
<blockquote>
<p>이 구조의 핵심은 에이전트가 <strong>행동 → 기억 → 반성 → 계획 → 행동이라는 순환</strong>을 통해 점점 더 일관된 행동과 성향을 가지게 된다는 점이며 이는 ReAct나 Toolformer처럼 단기적인 추론과 행동에 초점을 둔 구조에서 나아가 <strong>시간 흐름 속에서 변화하는 에이전트 상태를 모델링했다는 점</strong>에서 의미가 있음</p>
</blockquote>
</br>

<hr>
<h1 id="❖-generative-agent-architecture">❖ GENERATIVE AGENT ARCHITECTURE</h1>
<img src = https://velog.velcdn.com/images/sjh9_4/post/d5a21f73-8ab9-464b-93fa-c62072d0eb50/image.png width = 700>

<ul>
<li><p>Figure 6은 Generative Agents에서 memory stream과 retrieval 과정이 실제로 어떻게 동작하는지를 보여주는 예시임</p>
</li>
<li><p>에이전트는 환경에서 발생한 모든 관찰 결과를 <strong>memory stream에 시간 순서대로 저장</strong>하며, 이 안에는 현재 상황과 직접적인 관련이 없는 정보도 함께 포함되며 즉, memory stream은 에이전트가 경험한 모든 사건의 <strong>누적 기록</strong>으로 구성됨</p>
</li>
<li><p>에이전트가 질문을 받거나 행동을 결정해야 하는 상황이 되면 memory stream 전체를 사용하는 것이 아니라 retrieval 단계를 통해 일부 기억만 선택하고 이때 각 기억은 <strong>최근성(recency), 중요도(importance)</strong>, 그리고 현재 질문이나 상황과의 <strong>관련성(relevance)</strong>을 기준으로 점수가 계산됨</p>
</li>
<li><p>그림에서는 이 세 가지 점수를 곱한 값으로 최종 retrieval score가 계산되고 점수가 높은 기억일수록 언어 모델에 전달될 가능성이 높아짐</p>
<ul>
<li>예를 들어 “지금 가장 기대되는 일이 무엇인가?”라는 질문에 대하여 에이전트는 과거의 다양한 관찰 중에서 발렌타인 데이 파티를 준비하고 있다는 기억을 높은 점수로 선택하고 반면 책상 상태나 가구와 같은 관찰 정보는 현재 질문과의 관련성이 낮아 선택되지 않아서 이렇게 선택된 기억들만이 언어 모델의 입력으로 사용되어 최종 응답을 생성함</li>
</ul>
</li>
<li><p>중요한 점은 <strong>retrieval이 단순한 키워드 매칭이 아니라 시간적 맥락과 의미적 중요도를 함께 고려한다는 점</strong>이며 이를 통해 에이전트는 항상 최신 정보만 사용하는 것이 아니라 상황에 따라 <strong>과거의 중요한 경험을 다시 불러와 활용</strong>할 수 있고 이는 <strong>RAG에서의 문서 검색과 유사하지만 검색 대상이 외부 문서가 아니라 에이전트 자신의 경험이라는 점에서 차이가 있음</strong></p>
</li>
</ul>
<blockquote>
<p>이 구조는 에이전트가 <strong>불필요한 기억에 방해받지 않으면서도 현재 상황에 가장 적절한 경험을 선택해 응답하거나 행동</strong>할 수 있도록 하고 이를 통해 Generative Agents는 단순히 즉각적인 반응을 생성하는 시스템이 아니라 <strong>과거 경험을 바탕으로 맥락 있는 판단을 수행</strong>하는 에이전트로 동작하게 됨</p>
</blockquote>
<h3 id="◆-reflection-mechanism">◆ <strong>Reflection Mechanism</strong></h3>
<p><img src="https://velog.velcdn.com/images/sjh9_4/post/cc4377ec-3149-4820-b572-dc124f92b7d9/image.png" alt=""></p>
<ul>
<li><p>Figure 7은 Generative Agents 논문에서 제안한 <strong>reflection 메커니즘</strong>이 어떻게 관찰 정보를 고차적인 자기 인식으로 추상화하는지를 보여주는 예시임</p>
</li>
<li><p>그림의 가장 아래에는 에이전트가 환경에서 직접 관찰한 세부적인 행동들이 observation 형태로 나열되어 있음</p>
<ul>
<li>예를 들어 논문 속 에이전트인 Klaus Mueller가 특정 주제의 글을 읽거나 도서관에서 자료를 조사하고 사서와 대화하는 행동들이 각각 개별적인 관찰로 기록됨</li>
</ul>
</li>
<li><p>이러한 observation들은 그대로 사용되지 않고 일정 시점마다 reflection 과정을 거치게 되는데 reflection 단계에서는 여러 observation을 묶어 보다 추상적인 문장으로 요약함 </p>
<ul>
<li>예를 들어 “Klaus Mueller is reading assigned material”, “Klaus Mueller is taking notes”, “Klaus Mueller is making connections between articles”와 같은 중간 수준의 reflection이 생성되며 이는 단순한 사건 기록이 아니라 반복되는 <strong>행동 패턴을 요약한 결과</strong>임</li>
</ul>
</li>
<li><p>이후 reflection은 다시 상위 단계의 reflection으로 재귀적으로 결합되며 여러 중간 reflection이 다시 요약되어 최종적으로는 “Klaus Mueller is dedicated to research”와 같은 자기 인식 수준의 문장이 생성되고 이 과정에서 에이전트는 단순히 무엇을 했는지를 넘어, <strong>자신이 어떤 성향과 목적을 가진 존재인지에 대한 정보를 형성</strong>하게 됨</p>
</li>
<li><p>중요한 점은 이러한 <strong>reflection 결과가 일회성으로 사용되는 것이 아니라 다시 memory stream에 저장된다는 점</strong>이고 에이전트는 과거 행동을 바탕으로 형성한 자기 인식을 미래의 행동과 계획 수립에 다시 활용하여 에이전트는 <strong>시간이 지날수록 보다 일관된 성향과 행동 패턴</strong>을 보이게 됨</p>
</li>
</ul>
<blockquote>
<p> ㅅreflection 구조는 <strong>에이전트가 단순히 환경에 반응하는 수준을 넘어, 자신의 경험을 해석하고 정체성을 형성하는 주체로 동작</strong>할 수 있게 하고 이는 기존 ReAct나 Toolformer에서 다루지 않았던 장기적인 <strong>자기 모델링을 가능</strong>하게 한다는 점에서 의미가 있음</p>
</blockquote>
</br>

<hr>
<h1 id="❖-sandbox-environment--implementation">❖ SANDBOX ENVIRONMENT &amp; IMPLEMENTATION</h1>
<ul>
<li><p>이 챕터에서는 Generative Agents를 실험하기 위해 설계한 샌드박스 환경과, 해당 환경에서 에이전트가 어떻게 구현되었는지를 함께 설명하였으며 논문에서는 <strong>Smallville이라는 가상 마을 환경을 구축</strong>하여 에이전트들이 시간과 공간 개념을 가지며 일상적인 행동과 사회적 상호작용을 수행할 수 있도록 함</p>
</li>
<li><p>Smallville은 전체 마을을 루트로 하고, 집, 카페, 상점, 학교와 같은 장소 단위가 존재하며 각 장소 내부에는 방이나 객체가 포함되는 계층적인 구조로 설계되고 에이전트는 이 환경 전체를 미리 알고 있는 것이 아니라 자신이 직접 이동하고 관찰한 부분만 부분적으로 인식하여 <strong>에이전트의 세계 인식은 항상 제한적이며 경험을 통해 점진적으로 확장</strong>됨</p>
</li>
<li><p>Implementation 측면에서는 각 에이전트가 <strong>LLM을 중심으로 memory stream, retrieval, reflection, planning 모듈로 구성된 순환 구조</strong>를 가지고 에이전트가 환경을 인식하면 해당 경험이 자연어 형태로 memory stream에 저장되며 이후 행동을 결정할 때는 <strong>최근성, 중요도, 관련성을 기준으로 필요한 기억만을 검색</strong>하고 reflection과 planning 과정에서 생성된 고차적인 정보 역시 다시 memory stream에 저장되어 이후 행동에 영향을 미침</p>
</li>
</ul>
<blockquote>
<p>Generative Agent가 단순히 LLM에 질의를 던지는 구조가 아니라 <strong>기억과 상태를 가지는 시스템</strong>으로 구현되었다는 점과 이를 검증하기 위한 실험 환경이 체계적으로 설계되었다는 점임</p>
</blockquote>
</br>

<hr>
<h1 id="❖-controlled-evaluation">❖ CONTROLLED EVALUATION</h1>
<img src = https://velog.velcdn.com/images/sjh9_4/post/e617f06c-6066-4774-b225-e0eed6290ca2/image.png width = 600>  

<ul>
<li><p>Figure 8은 Generative Agent 아키텍처의 각 구성 요소가 에이전트 행동의 <strong>자연스러움에 어떤 영향을 미치는지를 평가</strong>한 controlled evaluation 결과를 보여주며 이 실험에서는 전체 아키텍처를 사용한 경우와 <strong>reflection, planning, observation과 같은 요소를 하나씩 제거한 ablation 모델들을 비교</strong>하고 비교 대상으로 인간 크라우드워커의 행동도 함께 포함함</p>
</li>
<li><p>평가는 TrueSkill Rank Rating을 사용하여 생성된 행동이 <strong>얼마나 자연스럽고 사람처럼 보이는지를 기준</strong>으로 진행되었고 결과를 보면 full architecture를 사용한 에이전트가 가장 높은 점수를 기록하며 <strong>reflection이나 planning과 같은 구성 요소를 제거할수록 성능이 점진적으로 감소하는 경향</strong>을 보였으며 특히 reflection과 planning이 제거된 경우에는 행동의 일관성과 설득력이 크게 떨어짐</p>
</li>
<li><p>이 결과는 Generative Agent의 자연스러운 행동이 <strong>단일 모듈의 효과가 아니라 memory, reflection, planning이 함께 결합된 구조에서 나온다는 점을 보여주고</strong> full architecture가 인간 크라우드워커보다도 높은 평가를 받았다는 점에서 <strong>제안한 구조가 사람처럼 보이는 행동 생성에 효과적임을 시사하지만 평가는 여전히 주관적인 판단에 기반한 지표라는 한계</strong>도 존재함</p>
</li>
</ul>
</br>

<hr>
<h1 id="❖-end-to-end-evaluation">❖ END-TO-END EVALUATION</h1>
<p><img src="https://velog.velcdn.com/images/sjh9_4/post/f7139fd1-1c2e-4136-a6cd-7b847ac3f4c9/image.png" alt=""></p>
<ul>
<li><p>Figure 9는 Generative Agent 시스템 전체를 통합한 상태에서 수행한 <strong>end-to-end evaluation 결과를 시각적</strong>으로 나타낸 그림이며 이 실험에서는 하나의 에이전트(Isabella)가 발렌타인 데이 파티를 계획하고, 해당 정보가 다른 에이전트들에게 <strong>어떻게 전파</strong>되는지를 관찰함</p>
</li>
<li><p>그림에서 보듯이 파티에 대한 정보는 Isabella로부터 시작되어 직접 대화를 나눈 에이전트들을 거쳐 점차 다른 에이전트들에게 확산되었고 이 과정에서 각 에이전트는 <strong>단순히 메시지를 전달하는 역할을 하는 것이 아니라 자신의 기억과 계획에 따라 정보를 공유하거나 행동을 결정</strong>하며 그 결과 일부 에이전트는 파티에 참여 의사를 밝히거나 새로운 이벤트를 추가로 조직하는 등 파생 행동을 보이기도 함</p>
</li>
</ul>
<blockquote>
<p>중요한 점은 이러한 정보 확산과 <strong>사회적 상호작용이 미리 정의된 규칙이나 시나리오에 의해 발생한 것이 아니라 각 에이전트의 memory–reflection–planning 구조에 의해 자연스럽게 나타났다는 점</strong>이고 이 실험을 통해 논문은 Generative Agent가 단일 에이전트 수준을 넘어 다중 에이전트 환경에서도 사회적 행동과 집단 현상을 생성할 수 있음을 보여줌</p>
</blockquote>
</br>

<hr>
<h1 id="❖-discussion">❖ Discussion</h1>
<ul>
<li><p>Generative Agents 논문은 LLM 기반 에이전트를 <strong>단발적인 문제 해결 시스템이 아니라 시간 흐름 속에서 기억을 축적하고 행동을 이어가는 존재로 확장했다는 점</strong>에서 의미가 큰데 특히 <strong>memory stream, reflection, planning을 결합한 구조</strong>를 통해 에이전트가 일관된 성향과 사회적 행동을 보일 수 있음을 실험적으로 보여준 점이 인상적이었으며 이는 기존 <strong>ReAct나 Toolformer가 다루지 않았던 장기적 맥락과 자기 인식 개념</strong>을 에이전트 연구에 도입한 사례라고 볼 수 있음</p>
</li>
<li><p>다만 본 논문은 평가 방식 측면에서 <strong>한계도 존재</strong>하는데 controlled evaluation과 end-to-end evaluation 모두 주로 질적 분석과 인간 평가에 의존하고 있어 <strong>에이전트 성능을 정량적으로 비교하기 어렵다는 점이 있고 memory stream이 자연어 기반으로 무한히 누적되는 구조이기 때문에 장기적으로는 잘못된 기억이나 불필요한 정보가 쌓일 가능성도 존재하며</strong> <strong>reflection 과정 역시 언어 모델의 출력에 의존하므로 자기 인식이 부정확하게 형성될 위험</strong>이 있음</p>
</li>
<li><p>그럼에도 불구하고 본 논문은 에이전트의 지능을 어떻게 정의할 것일지 근본적인 질문을 제기하며 이후 <strong>agent evaluation, long-term memory 관리, 그리고 개인화된 사용자 모델링 연구로 확장될 수 있는 중요한 출발점</strong>을 제공함</p>
</li>
</ul>
</br>

<hr>
<h1 id="❖-conclusion">❖ Conclusion</h1>
<ul>
<li><p>본 논문에서는 <strong>기억(memory), 반성(reflection), 계획(planning)</strong> 을 중심으로 한 Generative Agent 아키텍처를 제안하고 이를 가상 <strong>샌드박스 환경</strong>에서 실험함으로써 LLM 기반 에이전트가 <strong>장기적인 맥락을 유지</strong>하며 사람과 유사한 행동과 <strong>사회적 상호작용</strong>을 수행할 수 있음을 보여줬고 controlled evaluation을 통해 각 구성 요소의 기여도를 확인하고 end-to-end evaluation을 통해 다중 에이전트 환경에서의 사회적 행동과 정보 확산이 자연스럽게 발생함을 관찰함</p>
</li>
<li><p>이 논문은 LLM을 단순한 응답 생성 <strong>모델이 아니라 경험을 축적하고 스스로를 갱신하는 주체로 바라보는 새로운 관점을 제시</strong>하였고 이러한 접근은 향후 개인화 추천 시스템, 대화형 AI, 시뮬레이션 기반 연구 등 다양한 분야로 확장될 수 있으며 <strong>장기 기억 관리와 에이전트 평가 방법에 대한 후속 연구의 필요성을 함께 제시</strong>하며 결과적으로 Generative Agents는 LLM 기반 에이전트 연구에서 중요한 전환점이 되는 연구라고 볼 수 있음</p>
</li>
</ul>
</br>

<hr>
<h1 id="❖-논문-후기">❖ 논문 후기</h1>
<ul>
<li><p>이번 논문은 ReAct와 Toolformer를 읽은 이후, Agent 개념이 어디까지 확장될 수 있는지를 잘 보여준 논문이라고 느꼈으며 ReAct를 통해 LLM이 추론과 행동을 결합할 수 있다는 점을 이해했고 Toolformer에서는 도구 사용을 프롬프트가 아니라 학습된 행동으로 다룬다는 점이 인상적이었는데 Generative Agents는 여기서 더 나아가 LLM을 하나의 문제 해결자가 아니라 시간 흐름 속에서 경험을 쌓아가는 존재로 다루고 있다는 점이 흥미로웠음</p>
</li>
<li><p>특히 기억을 자연어 형태로 계속 저장하고, 이를 바탕으로 스스로를 요약하고 계획을 세운다는 구조가 인상적이었으며 이로 인해 에이전트의 행동이 즉흥적으로 튀어나오는 것이 아니라 이전 경험과 성향을 반영한 결과처럼 보였고 여러 에이전트가 함께 있을 때 관계 형성이나 정보 확산 같은 사회적 현상이 자연스럽게 나타난다는 점도 재미있게 느껴졌음</p>
</li>
<li><p>물론 정량적인 평가가 부족하고 memory가 계속 쌓이면서 생길 수 있는 문제점들도 보이지만이 논문은 Agent를 어떻게 봐야 하는지에 대한 관점을 바꿔줬다는 점에서 의미가 크다고 생각함. Toolformer가 이후 Tool-augmented Agent 연구의 출발점이 되었듯이 Generative Agents 역시 장기 기억 기반 Agent나 사용자 모델링, 사회적 시뮬레이션 연구로 이어지는 흐름을 이해하는 데 좋은 기준점이 되는 논문이라고 느껴졌음</p>
</li>
</ul>
<blockquote>
<p>논문 만족도 : ⭐️⭐️⭐️⭐️ (샌드박스 환경을 통해 실험하는 부분이 인상깊고 더 재밌게 논문을 읽을 수 있게 해주었음)
논문 이해도 : ⭐️⭐️⭐️⭐️ (샌드박스 환경으로 마치 게임의 한 부분처럼 설명을 해주어서 다른 논문에 비해 이해하기 좋았음)
Agent 관심도 : ⭐️⭐️⭐️ (agent에 대한 이해도와 관심도가 계속 상승중임)</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[논문 리뷰 : Toolformer: Language Models Can Teach Themselves to Use Tools]]></title>
            <link>https://velog.io/@sjh9_4/%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0-Toolformer-Language-Models-Can-Teach-Themselves-to-Use-Tools</link>
            <guid>https://velog.io/@sjh9_4/%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0-Toolformer-Language-Models-Can-Teach-Themselves-to-Use-Tools</guid>
            <pubDate>Thu, 08 Jan 2026 02:17:47 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>논문 링크 : <a href="https://arxiv.org/abs/2302.04761">https://arxiv.org/abs/2302.04761</a></p>
</blockquote>
<h1 id="❖-논문-선정-이유">❖ 논문 선정 이유</h1>
<ul>
<li><p>이전 리뷰에서 ReAct 논문을 읽으며 LLM이 단순히 답을 생성하는 모델을 넘어서 추론과 행동을 결합한 Agent 형태로 확장될 수 있다는 점을 배웠음</p>
</li>
<li><p>다만 ReAct에서는 도구를 언제 사용할지에 대한 판단이 모델이 학습한 결과라기보다는 프롬프트 설계에 많이 의존한다는 한계가 있었으며 이런 점에서 LLM이 도구를 써야 할 타이밍 자체를 학습할 수는 없을까라는 궁금증이 생겼고 그 질문에 대한 답으로 Toolformer 논문을 읽게 되었음</p>
</br>

</li>
</ul>
<hr>
<h1 id="❖-introduction">❖ INTRODUCTION</h1>
<ul>
<li><p>Toolformer는 대규모 언어 모델이 <strong>외부 도구를 언제 사용해야 하는지</strong>를 프롬프트나 규칙이 아닌 <strong>학습을 통해 스스로 배우도록 만드는 접근</strong>이며 기존 LLM은 계산이나 검색과 같은 작업에서 한계를 보였으며 이를 보완하기 위해 API 형태의 외부 도구를 함께 사용하는 방법들이 제안되어 왔음</p>
</li>
<li><p>하지만 대부분의 방법에서는 도구를 사용하는 타이밍이 사람이 설계한 프롬프트에 의존했으며 이 논문은 이러한 문제를 해결하기 위해 도구 사용을 하나의 선택 행동으로 보고 그 선택이 실제로 모델의 예측을 개선하는지 여부를 기준으로 학습 데이터에 포함시킬 수 있는 구조를 제안함</p>
</li>
<li><p>모델이 문장을 생성하는 과정 중 도구를 사용해본 결과가 도움이 된다면 그 사용을 학습하고 그렇지 않다면 버리는 방식임</p>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/sjh9_4/post/3984fc38-d027-4dfc-9598-4e2a283c7b58/image.png" alt=""></p>
<ul>
<li><p>위 그림은 Toolformer의 전체 흐름을 질문 응답 도구 예시이며 먼저 기존 언어 모델 데이터셋에서 <strong>문장의 특정 위치를 선택한 뒤에 그 위치에 삽입할 수 있는 여러 API 호출 후보를 샘플링</strong>하고 각 API를 실제로 실행해 응답을 얻고 <strong>도구 사용 전후의 예측 성능을 비교하여손실을 줄이는 경우에만 해당 API 호출을 유지함</strong></p>
</li>
<li><p>이 과정을 거쳐 최종적으로 생성된 데이터셋은 원래 텍스트에 도구 호출과 그 결과가 자연스럽게 섞인 형태가 되며 모델은 이를 통해 도구를 언제 사용하는 것이 도움이 되는지를 학습할 수 있게 되며 이러한 방식은 <strong>도구 사용을 사람이 정해주는 것이 아니라 모델이 스스로 판단하도록 만든다는 점에서 기존 ReAct 기반 접근과 중요한 차이를 가짐</strong></p>
</li>
</ul>
<blockquote>
<p><strong>Toolformer</strong>는 <strong>LLM이 외부 도구(API)를</strong> 언제 사용해야 하는지를 프롬프트가 아닌 <strong>학습을 통해 스스로 판단</strong>하도록 만드는 접근임</p>
</blockquote>
</br>

<hr>
<h1 id="❖-approach">❖ APPROACH</h1>
<ul>
<li>Toolformer의 핵심 접근 방식은 기존 언어 모델 데이터셋에 <strong>도구(API) 사용 예시를 자동으로 생성</strong>하고 그중 <strong>실제로 도움이 되는 경우만 학습에 활용</strong>하는 것이며 전체 과정은 크게 세 단계로 나눌 수 있음</li>
</ul>
<h3 id="◆-1-api-호출-후보-샘플링">◆ <strong>1. API 호출 후보 샘플링</strong></h3>
<img src = https://velog.velcdn.com/images/sjh9_4/post/bd89ce29-261c-4dd6-a5f6-60d3375e854f/image.png width = 350>

<ul>
<li><p>이 그림은 Toolformer에서 API 호출 후보를 생성하는 과정을 보여주고 있으며 모델은 기존 언어 모델 학습 데이터에서 문장의 특정 위치를 선택한 뒤 그 지점에서 문장을 완성하는 데 도움이 될 질문을 스스로 만들어 QA(question answering) API 호출 형태로 텍스트에 삽입함</p>
</li>
<li><p>이때 선택되는 위치는 다음 토큰을 예측하는 과정에서 외부 정보나 계산이 도움이 될 수 있는 지점이며 각 위치마다 여러 개의 API 호출 후보가 생성됨</p>
<ul>
<li>예를 들어 질문 응답 도구의 경우 도시의 별명이나 국가와 같은 추가 정보를 묻는 질문이 API 호출 후보로 만들어짐</li>
</ul>
</li>
<li><p>이 단계에서는 API를 실제로 실행하지 않고 도구 사용이 가능해 보이는 위치와 질문을 생성하는 것이 목적임</p>
</li>
</ul>
<h3 id="◆-2-api-호출-실행">◆ <strong>2. API 호출 실행</strong></h3>
<ul>
<li><p>생성된 각 API 호출 후보를 실제로 실행하여 결과를 얻으며 이 단계에서 API는 단순한 텍스트가 아니라 검색이나 계산과 같은 외부 도구 역할을 함</p>
</li>
<li><p>API 실행 결과는 이후 모델의 예측에 사용될 수 있는 추가 정보로 활용됨</p>
</li>
</ul>
<h3 id="◆-3-api-호출-필터링">◆ <strong>3. API 호출 필터링</strong></h3>
<ul>
<li><p>Toolformer의 가장 중요한 단계는 API 호출이 실제로 도움이 되었는지를 판단하는 과정이며 API 호출을 사용했을 때와 사용하지 않았을 때의 다음 토큰 예측 손실을 비교하여 손실을 줄이는 경우에만 해당 API 호출을 유지함</p>
</li>
<li><p>반대로 성능 개선에 도움이 되지 않는 호출은 제거되고 이 과정을 통해 도구 사용이 모델의 예측을 개선하는 경우만 학습 데이터에 포함되게 됨</p>
</li>
</ul>
<h3 id="◆--4-도구-사용이-포함된-데이터셋-생성">◆ ** 4. 도구 사용이 포함된 데이터셋 생성**</h3>
<ul>
<li>필터링을 통과한 API 호출과 그 결과는 원래 문장과 함께 하나의 새로운 학습 데이터로 구성되고 이렇게 생성된 데이터셋을 사용해 모델을 학습하면 모델은 도구를 언제 사용하는 것이 유용한지를 자연스럽게 학습할 수 있게 됨 </li>
</ul>
<blockquote>
<p>Toolformer는 문장 생성 과정에서 도구 사용 후보를 생성하고 실제로 도움이 되는 경우만 학습에 활용해 모델이 도구 사용 타이밍을 스스로 배우도록 함</p>
</blockquote>
</br>

<hr>
<h1 id="❖-tools">❖ TOOLS</h1>
<ul>
<li>Toolformer는 LLM이 자체적으로 해결하기 어려운 작업을 보완하기 위해 여러 종류의 외부 도구를 API 형태로 사용하였으며 논문에서 <strong>도구는 특정 기능을 수행하는 외부 함수로 정의</strong>되며 모델은 <strong>필요하다고 판단될 때 해당 도구를 호출</strong>하도록 학습됨</li>
</ul>
<h3 id="◆-논문에서-사용한-대표적인-도구">◆ <strong>논문에서 사용한 대표적인 도구</strong></h3>
<p><strong>Question Answering (QA)</strong></p>
<ul>
<li>텍스트를 완성하는 데 필요한 사실 정보를 얻기 위한 도구로 도시의 별명이나 국가와 같은 정보를 질문 형태로 요청함</li>
</ul>
<p><strong>Calculator</strong></p>
<ul>
<li>간단한 산술 계산이나 수치 연산이 필요한 경우 사용됨</li>
</ul>
<p><strong>Search</strong></p>
<ul>
<li>모델이 알기 어려운 외부 지식을 검색을 통해 가져오는 데 사용됨</li>
</ul>
<p><strong>Calendar / Date 관련 도구</strong></p>
<ul>
<li>날짜 계산이나 시간 정보가 필요한 경우 활용됨</li>
</ul>
<blockquote>
<p>중요한 점은 이 도구들이 특별한 구조를 가지는 것이 아니라 API 호출 형태로 외부 기능을 가져오는 일반적인 방식이라는 것이며 Toolformer의 핵심은 <strong>도구의 종류가 아니라 모델이 도구를 언제 사용해야 하는지를 학습한다는 점</strong>에 있음</p>
</blockquote>
</br>

<hr>
<h1 id="❖-experiment">❖ EXPERIMENT</h1>
<h3 id="◆-실험-목적">◆ <strong>실험 목적</strong></h3>
<ul>
<li>실험의 목적은 하나이며 논문에서 실험을 통해 확인하고 싶은 것은 모델이 추가 감독 없이 외부 도구를 <strong>언제, 어떻게 사용할지 스스로 결정할 수 있는가</strong>와 그게 성능 향상으로 이어지는가를 보고 도구를 쓸 수 있냐가 아니라 <strong>도구를 판단해서 쓰는 능력</strong>을 학습했는지가 핵심임</li>
</ul>
<h3 id="◆-baseline-models">◆ <strong>Baseline Models</strong></h3>
<ul>
<li><p>실험에서는 Toolformer의 효과를 비교하기 위해 총 네 가지 모델 설정을 기준으로 성능을 평가했음</p>
<ul>
<li><p>먼저** GPT-J**는 별도의 파인튜닝 없이 사용한 기본 언어 모델로 도구 사용이나 추가 학습 없이 순수한 사전 학습 모델의 성능을 나타냄</p>
</li>
<li><p><strong>GPT-J + CC</strong>는 CCNet에서 추출한 데이터셋 C로 파인튜닝한 모델이지만 이 경우에는 API 호출이 전혀 포함되지 않은 데이터로 학습되며 단순한 추가 학습 효과만을 확인하기 위한 비교 대상임</p>
</li>
<li><p><strong>Toolformer</strong>는 API 호출이 포함된 데이터셋 C*로 파인튜닝한 모델이고 학습 과정에서 도구 사용 예시를 함께 학습하며 추론 시에도 필요에 따라 API를 실제로 호출할 수 있음</p>
</li>
<li><p>마지막으로 <strong>Toolformer (disabled)</strong> 는 Toolformer와 동일한 방식으로 학습되었지만 추론 단계에서는 <strong>API 호출을 비활성화한 모델</strong>임</p>
</li>
</ul>
</li>
</ul>
<h3 id="◆-도구를-쓰는-태스크에서-확실한-성능-향상-">◆ *<em>도구를 쓰는 태스크에서 확실한 성능 향상 *</em></h3>
<ul>
<li><p>Toolformer는 여러 downstream task에서 평가됨</p>
<img src = https://velog.velcdn.com/images/sjh9_4/post/36d9a744-42be-426b-bb10-21457cbf8abb/image.png width = 600>

<ul>
<li>사실 기반 QA (LAMA, WebQuestions, TriviaQA 등)</li>
<li>수학 계산 (ASDiv, SVAMP, MAWPS)</li>
<li>시간 정보가 필요한 태스크 (TempLAMA, DATESET)</li>
<li>다국어 QA (MLQA)</li>
</ul>
</li>
</ul>
<ul>
<li>여기서 중요한 관찰은 계산이 필요한 문제에서는 Calculator, 사실 정보가 필요한 문제에서는 QA / Wikipedia Search, 다국어 문제에서는 Machine Translation처럼 태스크에 맞는 <strong>도구를 자동으로 선택</strong>한다는 점임</li>
</ul>
<blockquote>
<p>단순히 도구를 많이 쓰는 게 아니라 문제 유형에 따라 다른 도구를 사용하는 패턴을 보임</p>
</blockquote>
<h3 id="◆-toolformer-disabled">◆ <strong>Toolformer (disabled)</strong></h3>
<ul>
<li><p>또 하나 중요한 실험은 Toolformer (disabled) 설정인데 이는 학습 단계에서는 API 호출이 포함된 데이터로 모델을 학습시키되 추론 단계에서는 <strong>실제 도구 사용을 막은 모델</strong>임</p>
</li>
<li><p>이 경우에도 Toolformer는 GPT-J나 GPT-J + CC와 비교해 비슷하거나 더 나은 성능을 보였으며 이는 Toolformer가 단순히 도구를 잘 사용하는 모델에 그치는 것이 아니라 도구 사용을 통해 모델 자체의 추론 능력 또한 강화되었음을 의미함</p>
</li>
</ul>
<blockquote>
<p>외부 도구는 추론 시에만 쓰이는 보조 수단이 아니라, 모델의 내부 표현을 개선하는 학습 신호로 작용함</p>
</blockquote>
<h3 id="◆-언어-모델링">◆ <strong>언어 모델링</strong></h3>
<ul>
<li><p>도구 사용을 학습에 포함하면 기본 언어 모델링 성능이 저하될 수 있다는 우려가 있으며 이를 확인하기 위해 논문에서는 WikiText와 CCNet와 같은 언어 모델링 데이터셋에서 perplexity를 별도로 측정함</p>
</li>
<li><p>실험 결과, API 호출이 포함된 데이터로 학습하더라도 언어 모델링 성능은 크게 저하되지 않았으며 도구 사용이 기존 언어 모델의 기본 능력을 해치지 않음을 확인할 수 있었음 </p>
</li>
</ul>
<blockquote>
<p><strong>도구 사용</strong>은 기존 언어 모델의 <strong>기본 성능을 해치지 않고 추가될 수 있음</strong>을 확인함</p>
</blockquote>
<h3 id="◆-도구-사용-여부">◆ <strong>도구 사용 여부</strong></h3>
<ul>
<li>또 하나의 실험 결과는 모델 크기에 따른 차이인데 실험에 따르면 파라미터 수가 작은 모델에서는 도구 사용으로 인한 성능 향상이 거의 나타나지 않았으며 반면 일정 규모 이상, <strong>약 7억 파라미터 이상의 모델부터는 도구를 효과적으로 활용하는 능력이 나타남</strong></li>
</ul>
<blockquote>
<p>Toolformer의 접근은 <strong>충분한 규모</strong>의 모델에서 의미를 가지는 방법임을 알 수 있음</p>
</blockquote>
</br>

<hr>
<h1 id="❖-analysis">❖ ANALYSIS</h1>
<p><img src="https://velog.velcdn.com/images/sjh9_4/post/e5a96972-987d-4764-8d6b-fd5d228793e1/image.png" alt=""></p>
<ul>
<li><p>그래프는 모델 크기에 따른 성능 변화를 보여주며 <strong>작은 모델에서는</strong> Toolformer와 Toolformer (disabled) 모두 성능이 낮아 도구 사용의 <strong>효과가 거의 나타나지 않는 것</strong>을 볼 수 있음</p>
</li>
<li><p>반면 <strong>모델 크기가 커질수록</strong> Toolformer의 성능이 빠르게 증가하며 실제 API 호출이 가능한 경우가 가장 높은 성능을 보이고 이는 도구 활용 능력이 충분한 모델 규모에서 학습되며 추론 단계에서의 실제 <strong>도구 사용이 성능 향상에 중요함</strong>을 의미함</p>
</li>
</ul>
<blockquote>
<p><strong>모델이 충분히 커질수록</strong> Toolformer는 도구를 효과적으로 학습하고 활용하며 실제 API 호출은 대규모 모델에서도 여전히 중요한 성능 향상 요인으로 작용</p>
</blockquote>
</br>

<hr>
<h1 id="❖-limitations">❖ Limitations</h1>
<h3 id="◆-도구-연쇄-사용-">◆ *<em>도구 연쇄 사용 *</em></h3>
<ul>
<li><strong>도구를 연쇄적으로 사용하는 능력이 없으며</strong> Toolformer는 하나의 도구 출력값을 다른 도구의 입력으로 사용하는 multi-step tool chaining을 학습하지 못하는데 그 이유는는 <strong>각 API 호출이 독립적으로 생성</strong>되기 때문임</li>
</ul>
<h3 id="◆-도구-상호작용-">◆ *<em>도구 상호작용 *</em></h3>
<ul>
<li><strong>도구를 상호작용적으로 사용하지 못하며</strong> 검색 도구와 같이 여러 결과를 탐색하거나 질의를 수정하며 반복적으로 사용하는 방식은 지원하지 않음</li>
</ul>
<h3 id="◆-입력-문구-민감-">◆ *<em>입력 문구 민감 *</em></h3>
<ul>
<li>입력 문구에 민감하여 <strong>API 호출 여부가 입력 문장의 표현 방식에 따라 달라지며</strong> 이는 LLM이 프롬프트에 민감하다는 기존 특성과 맞닿아 있음</li>
</ul>
<h3 id="◆-학습효율-">◆ *<em>학습효율 *</em></h3>
<ul>
<li>학습 효율이 낮아서 <strong>대규모 데이터 중 실제로 유용한 도구 호출 예시는 매우 적어</strong> 데이터 대비 학습 효율이 낮은 편임</li>
</ul>
<h3 id="◆-도구-사용-비용-">◆ *<em>도구 사용 비용 *</em></h3>
<ul>
<li>도구 사용 비용을 고려하지 않는데 이는 API 호출로 발생하는 <strong>계산 비용이나 리소스 비용을
의사결정 과정에 반영하지 않는 것임</strong></li>
</ul>
</br>

<hr>
<h1 id="❖-논문-후기">❖ 논문 후기</h1>
<ul>
<li><p>이번 논문은 ReAct에 이어 LLM의 발전 흐름을 이해할 수 있었던 논문이였는데 최근 Agent를 활용하는 연구실과 연구 주제가 늘어나고 있는 만큼 그 개념을 제대로 이해할 필요가 있다고 느껴 하나씩 관련 논문을 읽어보고 있음</p>
</li>
<li><p>Toolformer는 ReAct에서 제시된 Agent 개념을 한 단계 더 확장하여 프롬프트 수준이 아니라 학습을 통해 도구(API) 사용을 결정한다는 점에서 인상 깊었고 특히 API를 항상 사용하는 것이 아니라 필요한 경우에만 호출하도록 학습된다는 점이 LLM이 보다 능동적인 Agent로 나아가는 방향을 보여준다고 느꼈음</p>
</li>
<li><p>아직 연쇄적인 도구 사용이나 상호작용까지는 다루지 못하지만 도구 사용을 하나의 학습된 행동으로 만든 첫 시도라는 점에서 의미가 크다고 생각하고 이 논문을 통해 이후 등장하는 Self-RAG나 Tool-augmented Agent 연구들이 어떤 문제의식에서 출발했는지 이해할 수 있는 기준점을 잡을 수 있었음</p>
</li>
</ul>
<blockquote>
<p><strong>논문 만족도</strong> : ⭐️⭐️⭐️ (ReAct의 한계를 개선한 부분과 Agent 개념에 조금 더 가까워진 느낌을 받아서 좋았음)
<strong>논문 이해도</strong> : ⭐️⭐️⭐️⭐️ (복잡한 수식 위주보단 개념과 실험 위주로 진행되어 이해하기 쉬웠음)
<strong>Agent 관심도</strong> : ⭐️⭐️⭐️ (agent의 관심을 조금씩 더 가져보려고 노력중)</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[논문 리뷰 : ReAct : SYNERGIZING REASONING AND ACTING IN
LANGUAGE MODELS]]></title>
            <link>https://velog.io/@sjh9_4/%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0-ReAct-SYNERGIZING-REASONING-AND-ACTING-INLANGUAGE-MODELS</link>
            <guid>https://velog.io/@sjh9_4/%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0-ReAct-SYNERGIZING-REASONING-AND-ACTING-INLANGUAGE-MODELS</guid>
            <pubDate>Mon, 29 Dec 2025 08:54:54 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>논문 링크 : <a href="https://arxiv.org/abs/2210.03629">https://arxiv.org/abs/2210.03629</a></p>
</blockquote>
<h1 id="❖-논문-선정-이유">❖ 논문 선정 이유</h1>
<ul>
<li><p>이 논문을 선택한 이유는 최근 LLM 연구가 Agent 중심으로 확장되고 있기 때문이며 지금까지 LLM과 멀티모달 논문을 읽어오며 모델의 표현 능력에 집중하였음</p>
</li>
<li><p>ReAct는 그 표현을 실제 행동과 의사결정으로 연결하는 전환점을 제시하며 대학원에서 agent 연구를 이해하기 위한 출발점으로 적합한 논문이라고 느꼈음</p>
</li>
</ul>
</br>

<hr>
<h1 id="❖-1-introduction">❖ 1. INTRODUCTION</h1>
<ul>
<li><p>ReAct 논문은 인간 지능의 핵심 특징 중 하나인 언어적 <strong>추론(Reasoning)</strong>과 목표 지향적 <strong>행동(Acting)</strong>의 결합에서 출발함</p>
</li>
<li><p>인간은 문제를 해결할 때 단순히 생각만 하거나 행동만 하는 것이 아니라 상황을 언어로 해석하고 그에 맞는 행동을 수행한 뒤 행동의 결과를 다시 추론에 반영하는 과정을 반복하는데 기존의 LLM은 추론과 행동을 서로 분리된 문제로 다뤄왔음</p>
</li>
<li><p>Chain-of-Thought(CoT) 기반 접근은 단계적 추론에는 강하지만 외부 정보 탐색이나 환경과의 상호작용이 불가능해 지식이 부족한 경우 hallucination 이나 오류 전파 문제가 발생했고 반대로 도구 사용이나 환경 조작에 초점을 둔 접근들은 행동 자체는 가능하지만 고수준의 계획이나 추론 과정이 명확하지 않아 해석 가능성과 신뢰성 측면에서 한계를 가짐</p>
</li>
<li><p>이를 위해 ReAct는 언어 모델이 <strong>추론(Reasoning)</strong>과 <strong>행동(Action)</strong> 을 하나의 시퀀스 안에서 번갈아 생성하도록 유도하는 프레임워크를 제안함</p>
</li>
</ul>
<img src = https://velog.velcdn.com/images/sjh9_4/post/8fd82216-20d2-4686-80c7-a00045a64f75/image.png width = 600>

<ul>
<li><p><strong>추론(reasoning)</strong>과 <strong>행동(acting)</strong>을 분리해서 사용할 때 발생하는 한계를 직관적으로 보여줌</p>
<ul>
<li>Chain-of-Thought 방식은 단계적 추론은 가능하지만 외부 정보 탐색이나 환경 상호작용이 부족함</li>
<li>Action-only 방식은 행동은 수행하지만 명확한 계획과 추론이 없어 실패하는 경우가 많음</li>
</ul>
</li>
<li><p>반면 <strong>ReAct는 추론과 행동을 번갈아 수행</strong>하며 행동의 결과를 다시 추론에 반영함으로써 질문 응답과 환경 기반 태스크 모두에서 보다 안정적이고 정확한 문제 해결이 가능함을 보여줌 </p>
</li>
</ul>
</br>

<hr>
<h1 id="❖-2-react--synergizing-reasoning--acting">❖ 2. ReAct : SYNERGIZING ReaSONING + ActING</h1>
<ul>
<li><p>ReAct는 복잡한 문제를 해결하는 agent 환경에서 단순히 관측에 따라 행동을 선택하는 방식만으로는 한계가 있음을 지적함</p>
</li>
<li><p><strong>Reasoning만 수행하는 Chain-of-Thought 방식</strong>은 외부 정보 탐색이나 환경 상호작용이 부족하고 반대로 행동만 수행하는 방식은 맥락을 이해하지 못해 잘못된 행동을 반복하는 문제가 발생함</p>
</li>
<li><p>이러한 한계를 해결하기 위해 ReAct는 agent의 행동 공간을 <strong>환경에 영향을 주는 행동(Action)</strong> 뿐 아니라 <strong>언어적 추론(Reasoning)</strong> 까지 포함하도록 확장함</p>
</li>
<li><p>Reasoning 은 환경을 직접 변화시키지는 않지만 현재 맥락을 정리하고 목표를 분해하며 향후 행동을 위한 계획을 수립하는 역할을 하여 <strong>추론과 행동이 분리되지 않고 하나의 연속적인 문제 해결 과정</strong>으로 연결되도록 함</p>
</li>
<li><p>중요한 점은 이 과정이 새로운 모델 학습 없이 사전 학습된 언어 모델에 few-shot 프롬프트만으로 구현된다는 것이며 이를 통해 ReAct 는 다양한 태스크에서 적용 가능한 직관적이고 <strong>해석 가능한 agent 프레임워크를 제시함</strong></p>
</li>
</ul>
<blockquote>
<p>ReAct는 agent의 행동 공간에 언어적 추론을 명시적으로 포함시켜 추론과 행동이 분리되지 않은 문제 해결 과정을 만든</p>
</blockquote>
</br>

<hr>
<h1 id="❖-3-knowledge-intensive-reasoning-tasks">❖ 3. KNOWLEDGE-INTENSIVE REASONING TASKS</h1>
<ul>
<li><p>ReAct는 먼저 외부 지식 활용이 필수적인 추론 태스크에서 추론과 행동을 결합했을 때의 효과를 검증하며 대표적으로 다룬 태스크는 <strong>멀티-hop 질문 응답인 HotpotQA</strong>와 <strong>사실 검증 태스크인 Fever</strong>이며 모두 내부 지식만으로는 해결이 어렵고 외부 정보 검색이 필요한 문제들임</p>
</li>
<li><p>이 실험에서 ReAct는 Wikipedia API와 상호작용하며 필요한 정보를 단계적으로 검색하고
검색 결과를 바탕으로 다음 행동을 결정하고 행동(Action)이 단순한 정보 수집이 아니라
추론(Reasoning)에 의해 안내되는 과정임을 보여줌</p>
</li>
</ul>
<img src = https://velog.velcdn.com/images/sjh9_4/post/1ae1bbad-d502-4e32-9548-0a31cbf610f4/image.png width = 650>


<ul>
<li>실험 결과, ReAct는 Chain-of-Thought(CoT)나 Acting-only 방식보다 전반적으로 더 안정적인 성능을 보였으며 특히 Fever와 같이 사실성이 중요한 태스크에서는 외부 지식을 직접 확인하는 ReAct가 <strong>환각(hallucination)을 크게 줄이며</strong> 더 신뢰할 수 있는 답변을 생성함</li>
</ul>
<p><img src="https://velog.velcdn.com/images/sjh9_4/post/4687cc3f-fec4-4c7a-a836-802f8e76e969/image.png" alt=""></p>
<ul>
<li><p>반면 <strong>CoT는 추론 구조는 잘 형성하지만 사실 오류가 주요 실패 원인</strong>으로 나타났고 또한 분석 결과를 통해 ReAct의 장단점도 함께 드러났는데  <strong>ReAct는 검색이 실패하거나 비정보적인 결과를 가져오는 경우 추론이 쉽게 무너질 수 있지만 전반적으로는 사실 기반이고 해석 가능한 문제 해결 과정을 제공해줌</strong></p>
</li>
<li><p>이를 보완하기 위해 <strong>ReAct와 CoT-SC를 상황에 따라 전환하거나 결합하는 전략</strong>을 제안하였고 이 실험은 ReAct가 단순히 행동을 추가한 모델이 아니라 내부 추론과 외부 지식 활용을 균형 있게 결합한 지식 집약적 추론 프레임워크임을 실험적으로 입증함</p>
</li>
</ul>
<blockquote>
<p><strong>ReAct는 지식이 필요한 추론 태스크에서 외부 검색과 언어적 추론을 결합</strong>함으로써 환각을 줄이고 더 사실적이고 신뢰할 수 있는 문제 해결 과정을 보여줌</p>
</blockquote>
</br>

<hr>
<h1 id="❖-4-decision-making-tasks">❖ 4. DECISION MAKING TASKS</h1>
<ul>
<li><p>앞선 지식 추론 태스크에 이어 이번에는 ReAct를 장기적인 계획과 환경 상호작용이 필요한 의사결정 태스크에 적용하는데  실험 대상은 <strong>텍스트 기반 가상 환경인 ALFWorld</strong>와 <strong>실제 온라인 쇼핑 환경을 모사한 WebShop</strong>임</p>
</li>
<li><p>두 환경 모두 보상이 희소하고 탐색 공간이 크기 때문에 단순 반응적 행동만으로는 해결이 어려움</p>
<img src = https://velog.velcdn.com/images/sjh9_4/post/f007a9d8-c18a-4d87-84bd-5ccd51efcc89/image.png width = 600>

</li>
</ul>
<p><strong>ALFWorld</strong></p>
<ul>
<li><p>ALFWorld에서는 에이전트가 집 안을 탐색하며 고수준 목표(예: 특정 물건 찾기)를 달성해야 하며  <strong>ReAct는 sparse한 언어적 추론을 통해 목표를 하위 단계로 분해하고 현재 상태를 추적하며 다음 행동을 계획함</strong></p>
</li>
<li><p>실험 결과 ReAct는 Act-only 및 imitation learning 기반 방법보다 현저히 높은 성공률을 보였으며 추론이 없는 경우 에이전트가 쉽게 상태를 놓치거나 목표를 잃는다는 점이 확인됨</p>
</li>
</ul>
<p><strong>WebShop</strong></p>
<ul>
<li><p>WebShop에서는 사용자의 자연어 요구를 만족하는 상품을 검색·선택·구매하는 과정이 필요하며 이 환경은 노이즈가 많고 비정형 텍스트가 혼재되어 있어 행동 선택의 난이도가 높음</p>
</li>
<li><p><strong>ReAct는 추론을 통해 어떤 정보를 탐색해야 하는지 언제 구매를 결정해야 하는지를 판단</strong>함으로써 Act-only 방식 대비 성공률과 평균 점수 모두에서 큰 향상을 보임</p>
</li>
</ul>
<p><strong>내부 추론 vs 외부 피드백</strong></p>
<ul>
<li><p>추가 분석을 통해 논문은 단순히 환경 피드백에 반응하는 방식(IM 계열)보다 <strong>내부 추론(reasoning trace)을 유지</strong>하는 것이 장기 의사결정에서 훨씬 중요함을 보여줌</p>
</li>
<li><p>ReAct는 유연한 추론 구조를 통해 상태 추적, 목표 분해, 상식적 판단을 효과적으로 수행하며 이를 통해 복잡한 decision making 문제에서도 일관된 성능 향상을 달성함</p>
</li>
</ul>
<blockquote>
<p>ReAct는 장기 계획이 필요한 의사결정 환경에서 추론과 행동을 결합함으로써 단순 반응적 에이전트보다 훨씬 안정적이고 효과적인 문제 해결을 보여줌</p>
</blockquote>
</br>

<hr>
<h1 id="❖-5-related-work">❖ 5. RELATED WORK</h1>
<ul>
<li><p>기존 LLM 기반 추론 연구</p>
<ul>
<li><strong>추론 자체</strong>에 집중한 방법</li>
<li>의사결정을 수행하는 <strong>정책 모델</strong> 접근</li>
</ul>
</li>
<li><p>먼저 Chain-of-Thought(CoT)는 LLM이 언어로 사고 과정을 생성하도록 유도하며 복잡한 문제 해결 능력을 크게 향상시킴</p>
</li>
<li><p>이후 self-consistency, selection–inference 분리, rationale 기반 fine tuning 등추론 구조를 <strong>정교화하는 연구들이 이어졌지만 이들 방법은 대부분 추론은 잘하지만 행동을 직접 다루지 못한다는 한계</strong>가 있었음</p>
</li>
<li><p>반면 WebGPT, 대화형 시스템, API 기반 에이전트 연구들은 LLM을 정책 모델로 활용해 환경과 상호작용하였지만 이들은 <strong>명시적인 추론 과정을 모델링하지 않거나 대규모 인간 피드백과 강화학습에 의존하는 경우가 많았</strong>음</p>
</li>
<li><p><strong>ReAct는 이 두 흐름의 중간 지점에 위치</strong>하였으며 추론을 언어로 명시하면서도 행동과 관측을 하나의 연속된 문제 해결 과정으로 결합함으로써 기존 방법들이 다루지 못했던 <strong>추론 + 행동의 시너지를 단순한 프롬프트 설계만으로 구현한다는 점에서 차별화됨</strong></p>
</li>
</ul>
</br>

<hr>
<h1 id="❖-6-conclusion">❖ 6. CONCLUSION</h1>
<ul>
<li><p>ReAct는 간단하지만 효과적인 프레임워크를 통해 대규모 언어 모델이 <strong>추론과 행동을 동시</strong>에 수행할 수 있음을 보여줌</p>
</li>
<li><p>멀티-hop QA, 사실 검증 상호작용 기반 의사결정 태스크 전반에서 ReAct는 더 높은 성능과 해석 가능한 결정 과정을 제공하지만 <strong>복잡한 행동 공간을 다루기 위해서는 더 많은 in-context 예시나 추가 학습이 필요하다는 한계도 존재함</strong></p>
</li>
<li><p>그럼에도 불구하고 ReAct는 강화학습이나 대규모 데이터 없이도 LLM 기반 agent의 가능성을 크게 확장한 연구로 평가할 수 있으며 이후 등장한 <strong>Agentic AI 연구들의 출발점</strong> 중 하나라는 점에서 그 의의가 매우 큼</p>
</li>
</ul>
</br>

<hr>
<h1 id="❖-논문-후기">❖ 논문 후기</h1>
<ul>
<li><p>최근 LLM을 다루는 대부분의 연구실들이 Agent를 필수적인 개념으로 활용하고 있다는 점을 보며 이제는 단순한 모델 이해를 넘어 Agent 관점의 사고가 필요하다고 느꼇음</p>
</li>
<li><p>그동안 agent라는 개념을 단편적으로만 알고 있었지 어떤 방식으로 처음 도입되고 정리되었는지는 잘 알지 못했는데 이번 논문을 통해LLM이 추론에만 머무르지 않고 행동과 의사결정으로 확장되어 온 흐름을 처음으로 구조적으로 이해할 수 있었음</p>
</li>
<li><p>ReAct 자체는 수식이나 이론적 증명보다는 기존 개념들을 잘 결합한 프레임워크에 가깝다고 느껴졌고 그래서 논문의 내용을 따라가는 데 큰 어려움은 없었지만 한편으로는 직관적으로 와닿는다기보다는 Agent 연구의 방향성을 보여주는 논문이라는 인상이 강했음</p>
</li>
<li><p>그럼에도 불구하고 이 논문을 시작으로 현재의 Agentic AI가 어떤 과정을 거쳐 발전해왔는지를
차근차근 따라가기에 매우 적절한 출발점이라고 생각하며 앞으로 ReAct 이후의 연구들을 이어서 살펴보며 Agent 개념을 더 깊이 이해해보고자 함</p>
</li>
</ul>
<blockquote>
<p><strong>논문 만족도</strong> : ⭐️⭐️⭐️ (Agent 개념의 출발점 같은 논문이라 의미가 크다 느껴 만족했음)
<strong>논문 이해도</strong> : ⭐️⭐️ (다양한 실험으로 높은 성능을 보이고 개념적으로는 이해가 되지만 직관적으로 와닿지가 않아 이해하기 조금 어려움)
<strong>Agent 관심도</strong> : ⭐️⭐️⭐️ (실제 LLM 관련 연구실에서는 거의 모두 Agent를 활용하는 모습을 볼 수 있었으며 이 때문에 관심을 갖고 공부하는 것이 필요해보임)</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[논문 리뷰 : Learning Transferable Visual Models From Natural Language Supervision ,CLIP]]></title>
            <link>https://velog.io/@sjh9_4/%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0-Learning-Transferable-Visual-Models-From-Natural-Language-Supervision-CLIP-0lslkl18</link>
            <guid>https://velog.io/@sjh9_4/%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0-Learning-Transferable-Visual-Models-From-Natural-Language-Supervision-CLIP-0lslkl18</guid>
            <pubDate>Fri, 19 Dec 2025 00:28:10 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>논문 원본 : <a href="https://arxiv.org/abs/2103.00020">https://arxiv.org/abs/2103.00020</a></p>
</blockquote>
<h1 id="❖-논문-선정-이유">❖ 논문 선정 이유</h1>
<ul>
<li><p>최근 GPT-3, Attention, S3-Rec, CL4SRec 등을 리뷰하면서 표현 학습과 모델 구조를 이해해왔지만 현대 연구의 흐름은 단일 모달을 넘어 멀티모달로 확장되고 있다는 것을 느꼈음</p>
</li>
<li><p>CLIP은 이러한 <strong>멀티모달 패러다임</strong>을 처음으로 대중적으로 열어준 핵심 논문이기 때문에
대학원을 준비하는 입장에서 반드시 짚고 넘어가야 할 연구라고 판단해 선정함</p>
</li>
</ul>
</br>

<hr>
<h1 id="❖-1-연구-등장-배경">❖ 1. 연구 등장 배경</h1>
<h3 id="◆-과거-모델들의-문제">◆ <strong>과거 모델들의 문제</strong></h3>
<ul>
<li><p>기존 비전 모델 대부분은 ImageNet과 같은 정제된 라벨 데이터셋에 강하게 의존해왔음</p>
</li>
<li><p>이 방식은 잘 구축된 태스크에서는 높은 성능을 보이지만 구조적 한계가 있음</p>
<ul>
<li><p><strong>정확한 라벨에 대한 의존도</strong>
Supervised learning 기반 모델은 대규모의 사람이 만든 라벨이 필수적인데 이러한 라벨링 과정은 비용이 매우 크고 정의 자체가 모호하거나 전문 지식이 필요해 구축이 사실상 불가능한 경우가 많음</p>
</li>
<li><p><strong>task-specific fine-tuning이라는 병목</strong>
현대의 비전 모델은 각 태스크마다 별도의 fine-tuning 단계가 필요하며 분류, 검출, OCR 등 모델 별로 이에 맞는 데이터로 따로 학습해야 하며 이로 인해 범용적 시각 표현을 학습하기 어렵고 새로운 태스크로 확장할 때마다 학습 비용이 반복적으로 발생하는 문제가 있음</p>
</li>
<li><p><strong>현실 환경에서의 성능 저하 (Domain shift problem)</strong>
supervised vision 모델이 데이터 분포 변화에 매우 취약함</p>
</li>
</ul>
</li>
</ul>
<h3 id="◆-논문-핵심">◆ <strong>논문 핵심</strong></h3>
<ul>
<li><p>인터넷에는 이미지 + 텍스트 설명이 ‘자연적으로 결합된 형태’로 무한히 존재함</p>
</li>
<li><p>예를 들어 SNS의 사진 + 캡션, 전자상거래 이미지 + 상품 설명, 뉴스 이미지 + 기사문, 등 이러한 데이터는 누가 라벨링한 것도 아니지만 이미지와 텍스트 사이에 <strong>의미 있는 연결(semantic alignment)</strong>이 존재하는 것을 알 수 있음</p>
</li>
</ul>
<blockquote>
<p>사람이 라벨을 붙이지 않아도, 인터넷에 존재하는 이미지–텍스트 쌍을 활용해 범용적인 시각 표현을 학습할 수 있게 만든 모델이 CLIP(OpenAI, 2021) </p>
</blockquote>
</br>

<hr>
<h1 id="❖-2-핵심-아이디어">❖ 2. 핵심 아이디어</h1>
<blockquote>
<p>CLIP이 제안한 핵심 아이디어는 
<strong>이미지와 텍스트를 같은 의미 공간(semantic space)에서 정렬(alignment)시키는 것</strong> </p>
</blockquote>
<ul>
<li>기존 시각 모델은 이미지 내부의 패턴을 라벨과 매핑하는 방식으로 학습되었지만, CLIP은 이미지와 이를 설명하는 자연언어 문장을 <strong>쌍(pair)</strong>으로 보며, 두 modality가 공유하는 <strong>추상적 의미(semantic concept)</strong>를 학습의 중심에 둔다.</li>
</ul>
<h3 id="◆-이미지-encoder와-텍스트-encoder를-각각-학습하되-두-표현이-같은-개념을-공유하도록-정렬함">◆ 이미지 Encoder와 텍스트 Encoder를 각각 학습하되, 두 표현이 같은 개념을 공유하도록 정렬함</h3>
<ul>
<li><p>CLIP은 두 개의 독립적인 인코더를 사용함</p>
<ul>
<li>Image Encoder: ResNet or Vision Transformer(ViT)</li>
<li>Text Encoder: Transformer 기반 언어 인코더(GPT-like)</li>
</ul>
</li>
<li><p>각 인코더는 임의의 공간에서 embedding을 출력하지만 같은 이미지–텍스트 쌍은 embedding space에서 가깝게 다른 쌍은 멀어지도록 학습하게됨</p>
</li>
<li><p>이를 통해 모델은 ‘고양이’, ‘사람’, ‘자동차’ 같은 단순 라벨이 아니라,
텍스트로 표현되는 <strong>풍부한 서술적 의미(deep semantics)</strong>를 학습하게 됨</p>
</li>
</ul>
<h3 id="◆-자연언어를-라벨이-아닌-의미적-감독으로-사용">◆ 자연언어를 라벨이 아닌 의미적 감독으로 사용</h3>
<ul>
<li>기존 supervised vision은 단 하나의 정답 라벨만 있었지만 CLIP에서는 한 이미지가 다양한 방식으로 설명될 수 있음</li>
</ul>
<pre><code>기존 supervised vision : 
Image → “cat”

CLIP :
“a cute black cat sitting on a wooden floor”
“a small animal with green eyes”
“a photo of a cat indoors”
</code></pre><ul>
<li><strong>자유로운 자연언어 감독(signal)</strong> 을 활용함으로써 정형화된 라벨보다 훨씬 넓은 의미 공간을 학습하게 되며  자연언어 전체가 시스템의 감독 신호(supervision)가 되는 것임</li>
</ul>
<h3 id="◆-대규모-웹-데이터에-기반한-대규모-contrastive-learning">◆ 대규모 웹 데이터에 기반한 대규모 contrastive learning</h3>
<ul>
<li><p>CLIP의 가장 큰 강점은 <strong>데이터 스케일</strong>임</p>
</li>
<li><p>약 4억 개의 (이미지, 텍스트) 쌍 noisy하지만 다양한 웹 기반 데이터이며 사전 정의된 라벨이 필요 없음</p>
</li>
<li><p>이 데이터는 학습 과정에서 positive / negative pair를 구성하는 데 활용되며 대규모 음수 샘플이 <strong>contrastive loss를 더욱 강력하게 만듦</strong></p>
</li>
</ul>
<h3 id="◆-최종-learned-representation은-언어로-질의-가능함">◆ 최종 learned representation은 언어로 질의 가능함</h3>
<ul>
<li><p>CLIP이 학습한 embedding은 단순 피처가 아니며 예를 들어 이미지에 대해:</p>
<pre><code>→ “a photo of a dog”,
→ “a man riding a bike”,
→ “red sports car”</code></pre></li>
<li><p>이런 텍스트 후보들을 비교하기만 해도 자연스럽게 분류, 검색, 매칭 등의 작업이 가능함</p>
</li>
<li><p>이는 이미지와 텍스트를 동일한 좌표계로 끌어온 것이며 <strong>Vision과 Language의 경계를 완전히 허문 구조</strong>임</p>
</li>
</ul>
</br>

<hr>
<h1 id="❖-3-모델-구조">❖ 3. 모델 구조</h1>
<blockquote>
<p>CLIP의 전체 구조는 <strong>멀티모달 표현 학습(multimodal representation learning)</strong> 을 가능하게 하는 핵심 설계가 담겨 있음</p>
</blockquote>
<ul>
<li><p>모델은 크게 두 부분으로 구성됨:</p>
<ul>
<li>*<em>Image Encoder *</em></li>
<li><strong>Text Encoder</strong></li>
</ul>
</li>
<li><p>이 두 인코더는 서로 다른 modality를 처리하지만 최종적으로 동일한 latent space로 매핑되도록 학습됨</p>
<img src = https://velog.velcdn.com/images/sjh9_4/post/eb142869-49b7-4023-89bb-2e684e249742/image.png width = 7000>


</li>
</ul>
</br>

<h3 id="◆-31-image-encoder">◆ <strong>3.1 Image Encoder</strong></h3>
<ul>
<li>CLIP은 이미지 인코더로 두 가지 아키텍처 선택지를 사용했음:</li>
</ul>
<p>(1) <strong>ResNet 계열</strong></p>
<ul>
<li><p>기존 CNN 기반의 deep residual network이며 spatial inductive bias가 내장되어 있어 훈련 안정성 높음</p>
</li>
<li><p>CLIP에서는 기존 ResNet 구조를 약간 수정하여 사용하였고 attention pooling 추가하여 feature aggregation 개선함</p>
</li>
</ul>
<p>(2) <strong>Vision Transformer (ViT)</strong></p>
<ul>
<li><p>이미지를 patch 단위로 분해하여 Transformer로 처리하였으며 global receptive field를 갖기 때문에 다양한 구조적 패턴을 학습하기 유리함</p>
</li>
<li><p>CLIP에서는 ViT-B/32, ViT-L/14 등 다양한 크기 실험을 하였고 결과적으로 ViT가 더 강력한 zero-shot 성능을 보여줌</p>
</li>
</ul>
</br>

<h3 id="◆-32-text-encoder">◆ <strong>3.2 Text Encoder</strong></h3>
<ul>
<li><p>텍스트 인코더는** Transformer 기반 언어 모델**이며 CLIP에서 사용한 것은 GPT 계열과 유사한 구조인 </p>
<ul>
<li>12-layer Transformer</li>
<li>causal self-attention</li>
<li>byte-pair encoding(BPE) tokenization</li>
<li>문장을 입력하면 문맥적 의미 표현을 생성</li>
</ul>
</li>
<li><p>텍스트 T 에 대해: $$z_{text} = E_{text}(T)$$</p>
</li>
<li><p>문장의 마지막 토큰을 임베딩으로 사용하고 마찬가지로 L2정규화를 적용함</p>
</li>
</ul>
</br>

<h3 id="◆-33-shared-latent-space-">◆ *<em>3.3 Shared Latent Space *</em></h3>
<ul>
<li><p>CLIP의 핵심 설계 포인트는 <strong>이미지 임베딩과 텍스트 임베딩이 동일한 공간에서 비교 가능</strong>한 점임</p>
</li>
<li><p>이를 위해 학습 과정 전체에서 **두 임베딩을 동일한 의미 좌표계로 정렬함</p>
</li>
<li><p>cosine similarity 기반으로 positive pair는 가깝게 negative pair는 멀게 학습되며 이는 <strong>contrastive learning</strong>에 의해 이루어짐</p>
</li>
</ul>
</br>

<h3 id="◆-34-similarity-computation">◆** 3.4 Similarity Computation**</h3>
<ul>
<li>이미지–텍스트 similarity는 다음과 같이 계산된다:</li>
</ul>
<p>$$
sim(z_{img},z_{text})= \frac{z_{\text{img}} \cdot z_{\text{text}}}{\tau}$$</p>
<ul>
<li><p>dot product 기반 cosine similarity</p>
</li>
<li><p>τ(temperature)는 모델이 학습하는 파라미터로 similarity distribution sharpness 조절 역할</p>
</li>
<li><p>이 similarity가 contrastive loss 계산의 핵심 입력이 됨</p>
</li>
</ul>
</br>

<hr>
<h1 id="❖-4-학습-방법">❖ 4. 학습 방법</h1>
<blockquote>
<p>CLIP의 학습 방식은 이미지와 텍스트를 동일한 의미 공간에 정렬시키는 <strong>contrastive learning</strong>임</p>
</blockquote>
<ul>
<li>배치 내에서 올바른 이미지–텍스트 쌍은 가깝게 나머지 잘못된 조합은 멀어지도록 학습함</li>
</ul>
</br>

<h3 id="◆-41-positive--negative-pair-생성">◆ <strong>4.1 Positive / Negative Pair 생성</strong></h3>
<ul>
<li><p>Positive: 같은 이미지–텍스트 쌍 $$(imgᵢ, textᵢ)$$</p>
</li>
<li><p>Negative: 같은 배치 내의 다른 모든 쌍 $$(imgᵢ, textⱼ), ⱼ≠ᵢ$$
→ 별도의 negative sampling 없이 배치 전체가 자연스럽게 negative 풀 역할을 함</p>
</li>
</ul>
</br>

<h3 id="◆-42-임베딩--유사도-계산">◆ <strong>4.2 임베딩 &amp; 유사도 계산</strong></h3>
<ul>
<li>이미지와 텍스트를 각각 인코더로 임베딩한 뒤 L2 정규화하고 cosine similarity를 계산함</li>
</ul>
<p>$$
s_{i,j} = \frac{ z_{\text{img}}^{(i)} \cdot z_{\text{text}}^{(j)} }{ \tau }
$$
                                τ: temperature (유사도 분포를 조절)</p>
</br>

<h3 id="◆-43-양방향-contrastive-loss">◆ <strong>4.3 양방향 Contrastive Loss</strong></h3>
<ul>
<li><p>CLIP은 두 방향 모두 학습함</p>
<ul>
<li><p><strong>Image → Text</strong> : 이미지 기준으로 올바른 텍스트를 맞추기</p>
</li>
<li><p><strong>Text → Image</strong> : 텍스트 기준으로 올바른 이미지를 맞추기</p>
</li>
</ul>
</li>
<li><p>두 loss를 평균내어 최종 loss로 사용함</p>
</li>
</ul>
<blockquote>
<p>양방향 Contrastive Loss의 핵심은 <strong>정답 쌍의 similarity를 높이고 나머지는 softmax 분모로 밀어내는 구조</strong>인 것</p>
</blockquote>
</br>

<h3 id="◆-44-학습-방법의-효과">◆ <strong>4.4 학습 방법의 효과</strong></h3>
<ul>
<li>이 방식으로 이미지와 텍스트는 공통 의미 공간 안에서 정렬됨</li>
</ul>
<blockquote>
<p>결과적으로 zero-shot 분류와 텍스트 기반 이미지 검색 가능해지며 ** task-specific fine-tuning 없이** 여러 다운스트림 태스크에 활용 가능함</p>
</blockquote>
</br>

<hr>
<h1 id="❖-5-실험-결과">❖ 5. 실험 결과</h1>
<ul>
<li><p>CLIP의 실험 섹션은 단순히 정확도를 비교하는 수준이 아니라 자연어 기반 학습이 실제로 범용적이고 강력한지를 검증하는 데 초점이 맞춰져 있음</p>
</li>
<li><p>핵심적으로 봐야 할 결과는 다음 네 가지</p>
</li>
</ul>
<h3 id="-◆-zero-shot-transfer">** ◆ Zero-Shot Transfer**</h3>
<p>1) Zero-shot classification에서 기존 supervised 모델과 경쟁하는 성능</p>
<ul>
<li><p>CLIP은 ImageNet을 포함한 다양한 데이터셋에서 fine-tuning 없이 zero-shot 방식으로 평가되었는데도  ImageNet zero-shot: 76.2% 의 성능을 보여줌</p>
<img src = https://velog.velcdn.com/images/sjh9_4/post/e44c50ea-bf6f-42ef-9ccc-8277128e3133/image.png width = 350>
</li>
<li><p>여러 benchmark average 성능이 기존 supervised ResNet 수준에 근접하였음</p>
</li>
<li><p>CLIP은 라벨 없이도 Supervised 모델과 비슷한 수준의 일반화 성능을 내었으며 이는 web-scale 자연언어 supervision의 효과를 명확히 보여줌</p>
</li>
</ul>
</br>

<h3 id="-◆-representation-learning">** ◆ Representation Learning**</h3>
<p>2) 27개 이상의 다양한 downstream task에서 강한 transferability</p>
<ul>
<li><p>CLIP이 제안한 가장 중요한 기여 중 하나는 특정 task에 의존하지 않는 범용 시각 표현을
자연언어 기반 contrastive learning으로 얻을 수 있다는 점임</p>
</li>
<li><p>한 번 학습한 모델만으로도 이미지 분류, 세분화된 fine-grained recognition, 스타일 변환 이미지, 웹 이미지, 스케치, OCR-like 데이터 등 도메인과 분포가 크게 다른 총 27개 task에서 일관된 성능을 보임</p>
</li>
</ul>
<img src = https://velog.velcdn.com/images/sjh9_4/post/eea0237f-2ef8-4fcc-9f37-65e6cb74661f/image.png width = 600>

<ul>
<li><p>그래프는 CLIP을 기존 SOTA supervised 모델(EfficientNet, ResNet) 그리고 여러 self-supervised 모델(SimCLR, BYOL, MoCo)과 비교한 결과임</p>
</li>
<li><p>같은 연산량(GFLOPs)을 기준으로 했을 때 <strong>CLIP 계열(ViT/ResNet)</strong>은 대부분의 모델보다 consistently 더 높은 평균 성능을 기록하며 특히 CLIP-ViT/L14는 27개 task 평균 성능에서 EfficientNet-L, ResNet152x4, SimCLRv2 등 기존 강력한 모델들을 넘어섬</p>
</li>
<li><p>기존 supervised 모델은 특정 데이터셋에서 강하지만 도메인이 바뀌면 성능이 급격히 떨어지지만 CLIP은 웹 기반 이미지–텍스트 쌍 덕분에 domain shift에 매우 강함</p>
</li>
</ul>
</br>

<h3 id="-◆-robustness-to-natural-distribution-shift">** ◆ Robustness to Natural Distribution Shift**</h3>
<p>3) Domain shift 상황에서도 <strong>매우 강한 robustness</strong></p>
<ul>
<li><p>기존 supervised vision 모델은 학습한 분포를 벗어나면 성능이 급격히 하락하는 <strong>domain shift 문제</strong>를 가짐</p>
</li>
<li><p>ImageNet에서는 높은 정확도를 유지해도 조금만 스타일이 달라지거나 다른 출처의 이미지가 주어지면 성능이 크게 무너짐</p>
</li>
<li><p>CLIP은 이러한 한계를 극복한 대표적인 사례이며 Figure 13은 이를 가장 명확하게 보여주는 핵심 실험임</p>
<img src = https://velog.velcdn.com/images/sjh9_4/post/28e845d0-2c76-467b-bf82-a59cdc235188/image.png width=700>

</li>
</ul>
<h4 id="왼쪽-그래프의-해석-">*<em>왼쪽 그래프의 해석 *</em></h4>
<ul>
<li><p>CLIP의 견고함을 수치로 증명</p>
<ul>
<li>x축: ImageNet에서의 정확도</li>
<li>y축: ImageNet 변형·파생 데이터셋들(총 7개)에서의 평균 정확도</li>
</ul>
</li>
<li><p>ImageNet에서 똑같은 성능이라면 실제 환경에 가까운 다른 데이터셋에서 얼마나 성능이 유지하는지를 시각적으로 비교하는 그래프임</p>
</li>
<li><p>ResNet101(파란색)은 ImageNet에서는 76%지만 domain shift 데이터셋에서는 35~40%대까지 급락하는 것을 볼 수 있음</p>
</li>
<li><p>반면 Zero-shot CLIP(보라색)은 ImageNet 성능이 동일한 수준임에도 다른 이미지 분포에서도 훨씬 높은 성능 유지함</p>
</li>
</ul>
<h4 id="오른쪽-테이블-해석-">*<em>오른쪽 테이블 해석 *</em></h4>
<ul>
<li><p>실제 데이터셋 기준으로 확인한 robustness</p>
</li>
<li><p>오른쪽 표는 ‘바나나’ 이미지처럼 같은 클래스지만 분포가 매우 다른 예시를 통해 robustness를 직접 비교함</p>
</li>
<li><p>같은 ‘바나나’ 클래스임에도, 사진 스타일이 조금만 바뀌면 ResNet은 거의 성능이 사라지지만 CLIP은 의미 단위로 이해하기 때문에 성능이 지속됨</p>
</li>
<li><p>이것은 CLIP이 단순 pixel-level pattern 매칭이 아니라 텍스트와 연결된 semantic representation을 학습했기 때문에 가능한 결과임</p>
</li>
</ul>
</br>

<hr>
<h1 id="❖-6-마무리">❖ 6. 마무리</h1>
<ul>
<li><p>CLIP은 <strong>이미지와 텍스트</strong>라는 두 모달리티를 대규모 웹 데이터에서 직접 학습함으로써 기존 supervised vision 모델이 가진 구조적 한계를 근본적으로 재해석한 연구임</p>
</li>
<li><p>라벨에 의존하지 않는 자연언어 기반의 supervision은 모델이 특정 task에 종속되지 않도록 만들고 <strong>contrastive learning</strong>은 두 표현을 의미 공간에서 정렬하여 범용적인 <strong>multimodal representation</strong>을 형성함</p>
</li>
<li><p>실험 결과는 이러한 접근이 단순한 아이디어 수준이 아니라 실제로 <strong>zero-shot 성능, downstream transferability, domain shift robustness</strong>에서
기존 SOTA 모델들을 넘어서는 강력한 효과가 있음을 명확히 보여줌</p>
</li>
<li><p>특히 prompt engineering과 few-shot adaptation 실험은 CLIP이 고정된 모델이 아니라 사용자가 어떤 텍스트와 어떤 방식으로 상호작용하느냐에 따라 성능과 표현 해석이 유연하게 조정될 수 있는 모델임을 보여줌</p>
</li>
<li><p>CLIP은 단순한 비전 모델이 아니라 언어를 통해 시각을 이해하는 새로운 패러다임을 제시했고 이후의 LLaVA, BLIP-2, GPT-4V 등 현대 <strong>멀티모달 모델들의 토대를 제공</strong>함</p>
</li>
</ul>
</br>

<hr>
<h1 id="❖-7-논문-후기">❖ 7. 논문 후기</h1>
<ul>
<li><p>지금까지는 주로 추천 시스템이나 자연어 처리처럼 단일 모달 모델에 초점이 맞춰진 논문들을 리뷰해왔지만하 실제 연구실이나 최신 연구 흐름을 보면 이제는 대부분의 모델이 멀티모달 구조를 기반으로 확장되고 있고 단일 모달만 이해해서는 전체 흐름을 따라가기 어렵다는 생각이 들었음</p>
</li>
<li><p>CLIP은 이미지와 텍스트를 결합해 의미 공간에서 정렬시키는 방식으로 현대 멀티모달 모델의 기반을 만든 논문이라 멀티모달을 공부하는 데 있어 좋은 출발점이라고 느꼈으며 이번 논문을 시작으로 앞으로는 멀티모달 모델이 어떻게 발전해왔는지 그 흐름까지 이어서 정리해보고자 함</p>
</li>
</ul>
<blockquote>
<p><strong>논문 만족도</strong> : ⭐️⭐️⭐️  (현대 멀티모달 모델의 기반에 대하여 배울 수 있어서 좋았음)
<strong>논문 이해도</strong> : ⭐️⭐️⭐️⭐️ (멀티모달 개념 자체가 어렵게 느껴지지는 않았으며 constrastive learning 또한 저번 CL4SRec에서 리뷰한 내용이여서 어렵게 다가오지는 않았음)
<strong>멀티모달 관심도</strong> : ⭐️⭐️⭐️ (실제 연구실이나 최근 연구 흐름은 대부분이 멀티 모달 구조를 기기반인데 이를 이해하기 위해서는 관심을 갖기 시작하는게 좋아보임)</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[논문 리뷰 : GPT-3, Language Models are Few-Shot Learners]]></title>
            <link>https://velog.io/@sjh9_4/%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0-GPT-3-Language-Models-are-Few-Shot-Learners</link>
            <guid>https://velog.io/@sjh9_4/%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0-GPT-3-Language-Models-are-Few-Shot-Learners</guid>
            <pubDate>Tue, 02 Dec 2025 07:09:01 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>논문 원본 : <a href="https://arxiv.org/abs/2005.14165">https://arxiv.org/abs/2005.14165</a></p>
</blockquote>
<h1 id="❖-논문-선정-이유">❖ 논문 선정 이유</h1>
<ul>
<li>지난 리뷰에서 Attention Is All You Need 논문을 통해 Transformer 구조를 살펴봤고 이 모델이 이후 BERT와 GPT 계열 모델에 큰 영향을 주었다는 점을 확인했으며 BERT는 Transformer Encoder 기반, GPT는 Decoder 기반으로 발전해왔는데 이번에는 그 연장선에서 GPT 계열 모델 중 중요한 전환점이 된 GPT-3 논문을 선택함 </br></li>
<li>특히 GPT-3는 기존처럼 task별 fine-tuning을 수행하는 방식이 아니라 프롬프트만으로 다양한 작업을 수행할 수 있다는 흐름을 만든 pivot 모델이라는 점에서 흥미가 생겨 리뷰하게 됨</li>
</ul>
</br>

<hr>
<h1 id="❖-gpt-2-vs-bert">❖ GPT-2 vs BERT</h1>
<h2 id="◆-transformer">◆ Transformer</h2>
<ul>
<li><p>최초의 <strong>transformer</strong> 모델은 <strong>encoder</strong>와 <strong>decoder</strong>로 구성되어 있음</p>
</li>
<li><p>각각은 우리가 transformer 블록이라고 부르는 것들을 쌓아놓은 것이며 아키텍처는 원래 기계 번역 용도로 적합했으며 encoder-decoder 아키텍처가 과거에는 성공적이었음</p>
</li>
<li><p><strong>GPT-2는 transformer의 decoder 블럭으로</strong> 구성되었고 반대로 <strong>BERT는 transformer의 encoder 블럭을</strong> 사용함</p>
<img src = https://velog.velcdn.com/images/sjh9_4/post/0b6c15f7-d933-48ad-afd3-8299834e27ee/image.png width = 550>

</li>
</ul>
</br>


<h2 id="◆-bert">◆ BERT</h2>
<img src = https://velog.velcdn.com/images/sjh9_4/post/df447743-8ccb-4c24-84fa-3d272b0da5a8/image.png width = 550>

<ul>
<li><p><strong>BERT</strong>는 Transformer의 Encoder 구조를 기반으로 만든 언어 모델로, 가장 큰 특징은 <strong>문장을 양방향으로 동시에 이해</strong>한다는 점임</p>
</li>
<li><p>기존의 GPT나 Word2Vec처럼 단방향 문맥만 보는 모델과 달리 BERT는 <strong>단어 앞뒤 문맥을 모두 활용해 더 정확한 의미 표현을 학습함</strong></p>
</li>
<li><p>BERT는 두 가지 self-supervised task를 사용해 학습됨 : </p>
<ul>
<li><p><strong>Masked Language Modeling (MLM)</strong>
문장에서 일부 단어를 [MASK]로 가리고
→ 모델이 해당 단어를 맞히는 방식</p>
</li>
<li><p><strong>Next Sentence Prediction (NSP)</strong>
두 문장이 실제 연속된 문장인지, 아니면 랜덤으로 이어 붙인 문장인지 예측
→ 문장 간 관계 학습</p>
</li>
</ul>
</li>
</ul>
<blockquote>
<p>BERT는 Transformer Encoder 기반의 양방향 언어 모델로 <strong>문맥 이해 능력을 극대화해</strong> NLP 성능의 기준을 크게 끌어올린 모델</p>
</blockquote>
</br>

<h2 id="◆-gpt-2">◆ GPT-2</h2>
<img src = https://velog.velcdn.com/images/sjh9_4/post/86c4f532-74c9-4199-addb-69cd63e9bc44/image.png width = 550>

<ul>
<li><p>GPT-2는 Transformer Decoder 구조 기반의 <strong>autoregressive</strong> 언어 모델로, 텍스트를 왼쪽 → 오른쪽 방향으로 생성하는 특징을 가짐</p>
</li>
<li><p>이 모델은 문장을 이해하는 것보다 문장을 <strong>자연스럽게 이어 쓰는 것에 강점이 있음</strong></p>
</li>
<li><p>GPT-2는 단 하나의 task로 학습됨:</p>
<ul>
<li><strong>Next Token Prediction (언어 모델링)</strong>
→ 주어진 문맥을 기반으로 다음 단어를 예측</li>
</ul>
</li>
</ul>
<blockquote>
<p>GPT-2는 Transformer Decoder 기반 언어 생성 모델로 <strong>자연스러운 문장 생성 능력</strong>을 통해 LLM 시대의 가능성을 보여준 모델</p>
</blockquote>
</br>

<p><strong>정리</strong></p>
<ul>
<li>Transformer는 설계 구조</li>
<li>BERT는 이해에 최적화된 Encoder 기반 모델</li>
<li>GPT는 생성에 최적화된 Decoder 기반 모델</br>

</li>
</ul>
<hr>
<h1 id="❖-gpt-2-구조">❖ GPT-2 구조</h1>
<ul>
<li><p>GPT-2는 Transformer Decoder 구조를 기반으로 한 언어 생성 모델이며 입력된 토큰 시퀀스를 바탕으로 다음에 올 단어의 확률을 예측하는 방식으로 학습됨</p>
</li>
<li><p>이 과정이 그림에 표현된 구조 안에서 단계적으로 이루어짐</p>
<img src = https://velog.velcdn.com/images/sjh9_4/post/6578e96a-f954-49c3-a8b5-822a3b53c846/image.png width = 350>

</li>
</ul>
<p><strong>1. Token Embedding</strong></p>
<ul>
<li><p>처음 입력되는 데이터는 자연어 문장이 아니라 <strong>토큰화된 숫자 시퀀스</strong>임</p>
</li>
<li><p>GPT-2는 BPE(Byte Pair Encoding) 기반 토크나이저를 사용하여 약 50k vocabulary를 가지고 각 토큰은 고정된 차원의 벡터로 변환되며 이 벡터가 모델의 최초 입력 표현이 됨</p>
</li>
<li><p><strong>텍스트 → 숫자 ID → 벡터</strong> 순으로 의미 정보가 치환됨</p>
</br>

</li>
</ul>
<p><strong>2. Positional Embedding</strong></p>
<ul>
<li><p><strong>Transformer는 순서를 이해하지 못하기 때문에</strong> 모델이 단어의 순서를 학습할 수 있도록 위치 정보를 더해줬었는데 GPT-2는 학습 가능한 학습형 positional embedding(learnable)을 사용함</p>
</li>
<li><p>h0=TokenEmbedding+PositionalEmbedding 과 같은 방식으로 초기 표현을 만듦</p>
</br>

</li>
</ul>
<p><strong>3. Transformer Block (× 12)</strong></p>
<ul>
<li><p><strong>(1) Multi-Head Masked Self-Attention</strong></p>
<ul>
<li><p>단어 간 관계를 고려해 표현을 업데이트하는 연산이지만 GPT-2는 미래 단어를 미리 볼 수 없도록 Masking을 적용함</p>
</li>
<li><p>토큰 t는 t보다 오른쪽에 있는 토큰에 attention을 줄 수 없으며 이는 GPT-2가 <strong>Autoregressive LM</strong>이라는 성격을 그대로 반영하는 것임 </p>
</br>
</li>
</ul>
</li>
<li><p><strong>(2) Layer Normalization</strong></p>
<ul>
<li><p>Self-Attention 연산 후 <strong>결과를 안정화하고 학습 수렴 속도를 높이기 위해</strong> LayerNorm을 적용함</p>
</li>
<li><p>GPT-2는 특히 Pre-LayerNorm 구조를 사용하는데 이는 <strong>깊은 네트워크 학습 시 gradient 안정화에 기여함</strong></p>
</br>
</li>
</ul>
</li>
<li><p><strong>(3) Feed-Forward Neural Network (FFN)</strong></p>
<ul>
<li><p>Self-Attention으로 얻은 표현을 <strong>비선형 변환하여 모델의 표현력을 확장하는 부분임</strong></p>
</li>
<li><p>GPT-2는 GELU 활성 함수를 사용하며 이 FFN 또한 Residual connection을 가짐</p>
</br>


</li>
</ul>
</li>
</ul>
<p><strong>4. Output Layer</strong></p>
<ul>
<li>Transformer Blocks를 통과한 최종 hidden state는 Linear + Softmax를 통해 다음 토큰이 무엇일지에 대한 <strong>확률 분포로 변환됨</strong>
$$ 
p(x_{t+1}∣x≤t)=Softmax(Wh_t) 
$$ </br>

</li>
</ul>
<p><strong>5. Autoregressive 생성 방식</strong></p>
<ul>
<li>모델 추론은 입력 시퀀스를 모델에 넣은 후 Softmax 결과에서 가장 가능성이 높은 토큰 선택하고 그 토큰을 <strong>다시 입력에 append하여 원하는 길이가 될 때까지 반복함</strong>
→ 모델이 단어를 하나씩 생성하며 문장을 이어가게됨 </br>


</li>
</ul>
<p><strong>정리</strong></p>
<table>
<thead>
<tr>
<th>구성 요소</th>
<th>역할</th>
<th>GPT-2 특성</th>
</tr>
</thead>
<tbody><tr>
<td>Token Embedding</td>
<td>텍스트 → 벡터 변환</td>
<td>BPE 기반</td>
</tr>
<tr>
<td>Positional Embedding</td>
<td>순서 정보 학습</td>
<td>Learnable</td>
</tr>
<tr>
<td>Multi-Head Masked Attention</td>
<td>문맥 의존 표현 학습</td>
<td>미래 토큰 접근 차단</td>
</tr>
<tr>
<td>FFN</td>
<td>비선형 표현 확장</td>
<td>GELU</td>
</tr>
<tr>
<td>Output Layer</td>
<td>다음 토큰 확률 생성</td>
<td>Autoregressive</td>
</tr>
</tbody></table>
</br>

<hr>
<h1 id="❖-gpt-3">❖ GPT-3</h1>
<blockquote>
<p><strong>GPT-3</strong>는 GPT-2 <strong>구조는 그대로 유지</strong>하되 <strong>파라미터 수</strong>와 (1.5B → 175B), <strong>데이터 규모</strong>, <strong>컨텍스트 길이</strong>를 증가한 <strong>스케일만 확장시킨 모델</strong>임</p>
</blockquote>
<ul>
<li>이는 새로운 구조나 알고리즘을 제안한 모델이 아니라 <strong>규모가 성능을 결정한다는 가설</strong>을 실험적으로 검증한 모델임</li>
</ul>
</br>

<h2 id="◆-gpt-3의-구조-개요">◆ GPT-3의 구조 개요</h2>
<ul>
<li><p>GPT-3의 아키텍처는 다음과 같다:</p>
<ul>
<li>Decoder-Only Transformer</li>
<li>Pre-LayerNorm 구조 유지</li>
<li>GELU activation 사용</li>
<li>Masked Self-Attention 기반 autoregressive generation</li>
</ul>
</li>
<li><p>기본 흐름은 GPT-2와 동일하지만 GPT-3는 모델 크기에 따라 <strong>block 수, hidden size, attention head가 크게 증가</strong>함</p>
</li>
</ul>
<table>
<thead>
<tr>
<th>모델 이름</th>
<th>파라미터</th>
<th>Layers</th>
<th>Hidden Dim</th>
<th>Heads</th>
</tr>
</thead>
<tbody><tr>
<td>GPT-2 Large</td>
<td>1.5B</td>
<td>36</td>
<td>1280</td>
<td>20</td>
</tr>
<tr>
<td><strong>GPT-3 (max)</strong></td>
<td><strong>175B</strong></td>
<td><strong>96</strong></td>
<td><strong>12288</strong></td>
<td><strong>96</strong></td>
</tr>
</tbody></table>
</br>

<hr>
<h1 id="❖-few-shot-learning">❖ Few-Shot Learning</h1>
<blockquote>
<p>GPT-3가 GPT-2와 가장 다르게 만든 부분은 <strong>학습 방식이 아니라 활용 방식</strong>임</p>
</blockquote>
<ul>
<li><strong>GPT-2</strong> 시대까지의 흐름<ul>
<li><strong>Pretraining → Fine-tuning → Task-specific 모델</strong></li>
</ul>
</li>
</ul>
<ul>
<li><p><strong>GPT-3</strong>가 제시한 새로운 패턴</p>
<ul>
<li><strong>Pretraining → Prompting → 다양한 Task 실행</strong></li>
</ul>
</li>
</ul>
<ul>
<li><p>모델을 다시 학습시키는 것이 아니라 <strong>입력 프롬프트만으로 task 수행 능력이 나타남</strong></p>
</li>
<li><p>GPT-3는 아래 3가지 모드에서 실험을 진행함</p>
</br>



</li>
</ul>
<h2 id="◆-in-context-learning">◆ In-Context Learning</h2>
<ul>
<li><p>GPT-3의 가장 큰 기여는 모델이fine-tuning 없이 단지 <strong>입력 프롬프트의 맥락(context)</strong>만 보고 새로운 작업을 수행할 수 있다는 것임</p>
</li>
<li><p>모델의 파라미터는 업데이트되지 않지만 프롬프트 안에 포함된 예시를 보고 즉석에서 task를 학습한 것처럼 행동하는 이 방식이 바로 In-Context Learning(문맥 기반 학습)이고,
GPT-2에서 GPT-3로 넘어가며 가장 큰 패러다임 전환을 만든 요소임</p>
</li>
</ul>
  </br>


<p><strong>Zero-Shot Learning</strong></p>
<ul>
<li>Zero-shot에서는 <strong>모델에게 단지 task가 무엇인지 설명만 제공함</strong><pre><code>Translate English to French:
</code></pre></li>
</ul>
<p>cheese =&gt;</p>
<pre><code>* 모델은 예제를 보지 못하며 &quot;task가 무엇이다&quot; 라는 지시문만 기반으로 답을 생성해야 하며 **모델 내부에 이미 학습된 일반화 능력을 활용함**

* GPT-3는 사전학습에서 충분히 다양한 데이터를 접했기 때문에 번역을 해야한다는 것을 인지함

  &lt;/br&gt;


**One-Shot Learning**

* One-shot에서는 **task 설명 + 예제 하나가 함께 제공됨**</code></pre><p>Translate English to French:</p>
<p>sea otter =&gt; loutre de mer</p>
<p>cheese =&gt;</p>
<pre><code>* 여기서 GPT-3는 첫 번째 예제를 보고 **입력형식(pattern)**을 추론하고 그 패턴을 따라 새로운 입력에 대해 결과를 생성함

* **예제 하나만 보고 규칙을 일반화함**

  &lt;/br&gt;

**Few-Shot Learning**

* Few-shot에서는 **task 설명 + 여러 개의 예시가 함께 주어짐**</code></pre><p>Translate English to French:</p>
<p>sea otter =&gt; loutre de mer
peppermint =&gt; menthe poivrée
plush giraffe =&gt; girafe peluche</p>
<p>cheese =&gt;</p>
<pre><code>* 여러 개의 예시가 포함되면 모델은 **출력 형식,문장 구조,domain-specific, 표현 방식** 등을 더 잘 파악할 수 있게 되어 **성과가 가장 안정적으로 향상됨**

* GPT-3 논문에서 특히 Few-shot 세팅이 기존 fine-tuned 모델을 능가하는 경우가 있었으며 이 점이 GPT-3 연구의 가장 획기적인 결과였음

&lt;/br&gt;

# ❖ Experiment
* LAMBADA를 사용하여 테스트 진행함
  * **LAMBADA (LAnguage Modeling Broader Discourse Analysis)** 데이터셋은
문맥 기반 언어 이해 능력을 평가하기 위해 만들어진 언어모델 벤치마크임 

  * 특징은 단순한 다음 단어 예측이 아니라 문장 전체를 읽어야 마지막 단어를 정확하게 예측할 수 있도록 설계된 **cloze-style dataset**이라는 점임

  &lt;/br&gt;

## ◆ In-Context Learning 지표화 (Table3.2)
![](https://velog.velcdn.com/images/sjh9_4/post/4054438b-8675-4295-a43f-670e4c4c4a58/image.png)

* Table 3.2와 그래프는 GPT-3 모델이 기존 SOTA 모델을 압도하며 특히 **Few-Shot 설정에서 성능이 크게 향상됨을 보여줌**

* 표를 보면 GPT-3의 성능은 Few-Shot &gt; Zero-Shot &gt; One-Shot 순서로 나타나며 중요한 점은 GPT-3 Few-Shot(86.4%)가 기존 최고 모델보다 약 18.4% 향상되며 압도적인 성능을 보임

* 이는 기존 연구들이 fine-tuning된 task-specific 모델임에도 불구하고 **GPT-3는 추가 학습 없이 단지 프롬프트만으로 더 높은 성능을 냈다는 의미임**


## ◆ Scaling Law 시각화 (Figure 3.2)
![](https://velog.velcdn.com/images/sjh9_4/post/6f732ede-ccbb-407e-a004-b58bdc09ae04/image.png)

* 그래프는 모델 크기(parameter 수)가 커질수록 성능이 자연스럽게 증가하는 모습을 나타냄

* 0.1B → 175B로 커질수록 성능은 거의 단조 증가하였고 작은 모델(1.3B 이하)에서는 Zero-shot, One-shot, Few-shot 차이가 크지 않지만 **13B 이상부터 Few-Shot 성능이 눈에 띄게 상승함**

* 175B 모델에서 인간 수준(human baseline)에 근접하였고 이는 Few-shot 능력은 작은 모델에서는 나타나지 않고 일정 규모 이상을 넘어서면서 emergent property(창발적 특성)로 나타난다는 것을 알 수 있음

&gt; 모델의 능력은 **모델 구조가 아니라 규모에서 나옴**을 증명함


&lt;/br&gt;

---



# ❖ GPT-3 한계
* GPT-3는 강력한 성능을 보여주지만, 크게 6가지 한계가 존재함

**1. 언어 생성 품질 문제 (Coherence &amp; Repetition)**

* 긴 문단에서는 일관성 저하, 논리 비약, 자기모순이 나타나며 의미 반복, 문맥 깨짐, 앞뒤 문장 연결 실패까지 발생함

&lt;/br&gt;

**2. 특정 추론에서 취약 — 상식·비교 추론 등**
* GPT-3는 상식 물리(Common sense physics), 의미 비교(Word-in-Context, WIC), 일부 독해(QuAC, RACE)에서 성능이 낮은 것을 보였음

* GPT-3는 이해보다 언어 패턴 암기에 가깝기 때문

&lt;/br&gt;

**3. 구조적 제약 — Decoder-Only라 생기는 문제**

* GPT-3는 전적으로 Autoregressive LM으로 양방향 encoding이 없가 때문에
빈칸 채우기, 두 문장 비교,과거 문장을 다시 해석하며 답해야 하는 문제들에 약한 모습을 보임

* 미래 토큰을 못 보기 때문에 필요한 정보 접근이 제한되기 때문

&lt;/br&gt;


**4. LM Objectives의 근본적 한계**

* GPT-3는 모든 토큰을 동일 비중으로 예측하는 self-supervised objective인데 이는 중요 정보에 대한 우선순위 없음 

&lt;/br&gt;


**5. Pretraining Sample Efficiency 부족**

* 인간보다 훨씬 많은 데이터를 봐야 그나마 generalization 가능하고 엄청난 양의 데이터를 학습했어도 완벽하지 않음

&lt;/br&gt;


**6. 비용, 편향, 안전성 문제**

* 비용·추론 속도    너무 커서 inference가 느리고 비싸고 모델의 판단 근거가 불명확함

* 데이터 편향 그대로 반영할 수 있어서 부적절한 답변 출력 위험이 있음

&gt; GPT-3는 규모 확장의 힘을 보여줬지만 **이해, 추론, 현실 grounding, 안전성, 효율성 측면에서 여전히 해결해야 할 문제들이 많음** 

&lt;/br&gt;

---


# ❖ Conclusion


* GPT-3는 **단순히 모델 크기를 크게 확장한 것**만으로도 기존 NLP task에서 zero-shot·one-shot·few-shot 설정 모두에서 의미 있는 성능 향상을 보여주었고, 특히 **few-shot 설정에서는 여러 benchmark에서 기존 SOTA를 넘어섬**

* 또한 GPT-3는 **fine-tuning 없이도 다양한 task를 수행**하는 범용 모델 가능성을 보여줬으며 이는 기존의 task-specific 모델 학습 방식에서 벗어나 프롬프트 기반 학습 **(Prompting)과 in-context learning**을 NLP의 새로운 접근법으로 제시함

* 결론적으로, GPT-3는 언어 모델이 **단순히 단어 예측기가 아니라 기능적 지능을 가진 foundation model로 발전할 수 있음**을 실험적으로 처음 입증한 모델이라는 점에서 의의가 큼

&lt;/br&gt;

---


# ❖ 논문후기
* Attention Is All You Need 논문을 먼저 읽고 Transformer 구조를 이해한 뒤에 이 구조를 기반으로 발전한 BERT와 GPT 모델들을 비교해보니 흐름이 훨씬 명확하게 잡혔음

* BERT는 Encoder만, GPT는 Decoder만 사용해 각각 다른 방향으로 발전해왔다는 점이 흥미로웠고 이후 버전들이 어떤 한계를 보완하며 진화했는지 단계적으로 살펴보니 모델 발전의 논리가 자연스럽게 이해되었음

* 현재는 GPT-5까지 등장하며 빠르게 혁신이 이어지고 있는데 이렇게 모델 계열의 역사와 설계 의도를 하나씩 따라가며 정리해보는 과정이 앞으로 LLM 관련 연구를 진행할 때 큰 기반이 될 것 같음

* 이번 리뷰 역시 읽기 → 이해하기 → 비교하기 과정의 중요성을 다시 느낀 시간이었고 앞으로도 이런 방식으로 한 단계씩 쌓아가고자 함

&gt;논문 만족도 : ⭐️⭐️⭐️ (GPT-2 -&gt; GPT-3의 발전된 부분들을 이해하기 좋았지만 논문의 양이 너무나 길어서 전체를 읽진 못함)
논문 이해도 : ⭐️⭐️⭐️ (핵심적인 부분들은 이해하였지만 논문의 양이 너무 길어서 100% 흡수한지는 모르겠음)
LLM 관심도 : ⭐️⭐️⭐️⭐️ (추천시스템과 LLM 두개를 가장 관심있게 공부할 계획)</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[논문 리뷰 : Attention is all you need]]></title>
            <link>https://velog.io/@sjh9_4/%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0-Attention-is-all-you-neeed</link>
            <guid>https://velog.io/@sjh9_4/%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0-Attention-is-all-you-neeed</guid>
            <pubDate>Mon, 01 Dec 2025 06:49:34 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>논문 원본 <a href="https://arxiv.org/abs/1706.03762">https://arxiv.org/abs/1706.03762</a></p>
</blockquote>
<h1 id="❖-논문-선정-이유">❖ 논문 선정 이유</h1>
<ul>
<li><p>요즘 추천 시스템도 재미있지만, 최근 연구 트렌드를 보면 LLM과 Agent 분야가 압도적으로 많아서 자연스럽게 관심이 더 가기 시작되었고 그래서 LLM 관련 핵심 논문들도 하나씩 읽어보려고 마음먹었고, 그 출발점으로 이 논문을 선택함 </br></p>
</li>
<li><p>이 논문은 사실상 지금의 LLM 시대를 연 시작점 같은 존재라 할 수 있으며 Transformer 구조와 Self-attention이라는 개념을 처음 제시하면서 이후 BERT, GPT 계열 모델들이 등장할 수 있는 토대를 만들었음</br></p>
</li>
<li><p>학교 수업에서 Self-attention을 배울 때 교수님이 이 논문은 나중에 꼭 따로 읽어보라고 강조하셨던 것도 기억나서, 이번 기회에 첫 LLM 논문 리뷰로 선택하게 됨</p>
</li>
</ul>
</br>

<hr>
<h1 id="❖-1-introduction">❖ 1. Introduction</h1>
<blockquote>
<p><strong>문제 의식</strong>
기존의 seq2seq 모델(RNN/LSTM/GRU)은 병렬처리가 안되어서 긴 시퀀스 처리 느리고 장기 의존성 잡기 어렵고 CNN 기반은 receptive field 넓히기 위해 깊어져야 해서 어려움</p>
</blockquote>
<ul>
<li>이 논문에서는 RNN 없이 오직 <strong>Attention</strong>으로만 구성한 모델 제안</li>
</ul>
</br>

<hr>
<h1 id="❖-2-background">❖ 2. Background</h1>
<ul>
<li><p>Intro에서 언급한 것 처럼 기존 딥러닝 모델은 <strong>순차 처리(RNN)</strong> 또는 <strong>깊은 구조(CNN)</strong> 때문에 비효율적이였고 멀리 떨어진 단어 간 관계 학습이 어렵고 비용 컸음</p>
</li>
<li><p><strong>Self-Attention</strong>은 이를 한 번에 처리해서 문맥 이해를 효율적으로 함</p>
</li>
<li><p>Self-Attention은 기존엔 보조 기능이었지만 Transformer는 이를 모델 중심으로 사용하였고 결과적으로 입력과 출력의 의미 표현을 학습하는 최초의 sequence transduction 모델이 되었음</p>
</br>

</li>
</ul>
<hr>
<h1 id="❖-3-model-architecture">❖ 3. Model Architecture</h1>
<h2 id="◆-31-encoder-and-decoder-stacks">◆ 3.1 Encoder and Decoder Stacks</h2>
<img src = https://velog.velcdn.com/images/sjh9_4/post/b8a68e79-8ef8-4100-8e9f-9766bc2f371d/image.png width = 350>

<p><strong>Encoder</strong></p>
<ul>
<li><p>역할</p>
<ul>
<li>입력 문장을 이해해서 의미 벡터 Z로 변환</li>
</ul>
</li>
<li><p>구성</p>
<ul>
<li>Encoder는 동일한 구조의 Layer를 6번(Stack of N=6) 반복</li>
<li>각 Layer는 2개의 Sub-layer로 구성<ol>
<li><strong>Multi-Head Self-Attention</strong></li>
<li><strong>Feed-Forward Network (FFN)</strong>
(= 토큰마다 독립적으로 적용되는 두 단계 fully-connected network)</li>
</ol>
</li>
</ul>
</li>
</ul>
<p><strong>Decoder</strong></p>
<ul>
<li>역할<ul>
<li>Encoder가 만든 의미 벡터 Z를 참고하여</li>
<li>출력 문장을 한 단어씩 생성 (Auto-regressive)</li>
</ul>
</li>
</ul>
<ul>
<li>구성<ul>
<li>Decoder도 6개의 동일한 Layer로 구성</li>
<li>하지만 Encoder와 다르게 Sub-layer가 3개</br>


</li>
</ul>
</li>
</ul>
<h2 id="◆-32-attention">◆ 3.2 Attention</h2>
<img src = https://velog.velcdn.com/images/sjh9_4/post/8eac36c7-626c-4557-881c-0a132c3632f9/image.png width = 500>

<p><strong>3.2.1 Scaled Dot-Product Attention</strong></p>
<blockquote>
<p> <strong>Attention</strong>이란 <strong>Query(Q), Key(K), Value(V)</strong>를 입력 받아 <strong>Value들의 가중합(weighted sum)</strong>을 반환하는 함수임
즉, 중요한 정보(Value)를 더 많이 반영하는 방식으로 문장 표현을 만드는 기술</p>
</blockquote>
<p><strong>Q,K,V</strong></p>
<ul>
<li>Q : 지금 내가 알고 싶은 관점 (query)</li>
<li>K : 각 단어가 가진 기준 정보 (key)</li>
<li>V : 실제 포함된 의미 정보 (value)</li>
</ul>
<p>** Q × Kᵀ (MatMul)**</p>
<ul>
<li>각 Query와 모든 Key의 dot product 계산
→ 관심도 점수(attention score)</li>
</ul>
<p>** Softmax**</p>
<ul>
<li>score → 확률(비율)로 변환</li>
</ul>
<hr>
<p><strong>이해하기 위한 설명</strong></p>
<ul>
<li><p>위 설명이 정의이지만 논문을 읽을 때 Query(Q), Key(K), Value(V)와 Self-Attention 가 이해가 잘 되지 않아서 이해하기 쉽게 정리해보았음</p>
</li>
<li><p>Self-Attention을 과자 나누기로 이해하는 방법임
상황 설정은 사람 4명(A, B, C, D)이 있는데 과자 10개를 나눠줘야 하는 상황임</p>
</li>
<li><p>그냥 똑같이 2.5개씩 주는 게 아니라 각 사람이 얼마나 중요한지에 따라 비율을 다르게 나누고 싶은거임</p>
</li>
</ul>
<p><strong>1) Query / Key / Value 개념</strong>
Self-Attention에서 각 단어는 3개의 정보를 가지는데 사람으로 비유하면:</p>
<table>
<thead>
<tr>
<th>역할</th>
<th>의미</th>
<th>비유</th>
</tr>
</thead>
<tbody><tr>
<td>Q (Query)</td>
<td>내가 지금 누구에게 관심/중요도를 줄 건가</td>
<td>나는 과자를 얼마나 필요로 하는가</td>
</tr>
<tr>
<td>K (Key)</td>
<td>다른 사람이 어떤 특성을 갖고 있는가</td>
<td>상대가 과자를 얼마나 중요하게 생각하는가</td>
</tr>
<tr>
<td>V (Value)</td>
<td>실제 반영될 값</td>
<td>실제로 받게 되는 과자 수</td>
</tr>
</tbody></table>
</br>

<p><strong>2) Attention 계산 과정 (단계별)</strong></p>
<p>** Step 1: Q × Kᵀ**
A가 과자를 받을 때, A는 각 사람(B,C,D) 이 얼마나 중요한지 알아야 함
→ 그래서 A의 Q와 B,C,D의 K를 비교</p>
<pre><code>A-Q × B-K = A가 B를 얼마나 중요하게 생각하는지 점수
A-Q × C-K = A가 C를 얼마나 중요하게 생각하는지 점수
A-Q × D-K = A가 D를 얼마나 중요하게 생각하는지 점수</code></pre><blockquote>
<p>이게 dot product (점수 계산)
즉, QKᵀ는 “상대방에 대한 관심도 점수표”를 만든다고 보면 됨</p>
</blockquote>
<p>** Step 2: softmax**
dot-product 점수는 아무 숫자나 나올 수 있음</p>
<ul>
<li><p>예) A가 각 사람에게 준 점수:</p>
<pre><code>B=2.1, C=0.3, D=1.6</code></pre><p>이걸 비율로 바꿔야 과자 나눌 수 있음</p>
<pre><code> → softmax로 확률처럼 변환
B = 50%, C = 10%, D = 40%</code></pre></li>
</ul>
<blockquote>
<p>softmax = 점수를 “과자 비율”로 바꾸는 과정</p>
</blockquote>
<p>** Step 3: Value(V) 반영하기**
각 사람이 가진 실제 의미(Value)를 비율대로 합침
V의 초기 값은 단어 임베딩값임</p>
<ul>
<li><p>예) </p>
<pre><code>각 사람의 V 값: B=5, C=2, D=4  (실제 지식/정보)
비율: B 0.5, C 0.1, D 0.4</code></pre><p>최종적으로 A는</p>
<pre><code>A_output = 0.5×5 + 0.1×2 + 0.4×4 = 4.3</code></pre><p>즉, A는 주변 사람들의 정보(V)를 중요도(softmax 비율)로 가중합한 결과를 얻음</p>
</li>
</ul>
<p><strong>변수 정리</strong></p>
<pre><code>QKᵀ = 누구에게 관심을 줄지 점수 계산
softmax = 점수를 비율로 바꿔줌
V = 실제 정보/내용
Output = 비율 × 값 = “중요도 조정된 결과”</code></pre><blockquote>
<p>Self-Attention은 주변 단어들이 가진 정보를, 그 단어가 <strong>나에게 얼마나 중요한지</strong>에 따라
비율을 만들어서 가중 평균하는 방식임 </p>
</blockquote>
<hr>
</br>

<p><strong>3.2.2 Multi-Head Attention</strong></p>
<ul>
<li>하나의 Attention만 쓰면 모델이 문장 관계를 한 방향(한 관점)에서만 보게 되지만  Transformer는 Attention을 <strong>한 번만 계산하는 대신 여러 개(head)의 Attention</strong>을 <strong>병렬로 수행</strong>하고 결과를 합침</li>
</ul>
<blockquote>
<p>이를 통해 다양한 의미적 정보 포착가능하고 학습 안정성 및 generalization 향상되며 계산 비용 효율 유지가 가능함</p>
</blockquote>
<ul>
<li>Multi-Head Attention이 Transformer에서 쓰이는 3곳</li>
</ul>
<table>
<thead>
<tr>
<th>위치</th>
<th>이름</th>
<th>목적</th>
</tr>
</thead>
<tbody><tr>
<td>1</td>
<td><strong>Encoder Self-Attention</strong></td>
<td>입력 문장 내부 관계 학습</td>
</tr>
<tr>
<td>2</td>
<td><strong>Decoder Masked Self-Attention</strong></td>
<td>생성 중 미래 단어 보지 않기 + 이전 문맥 유지</td>
</tr>
<tr>
<td>3</td>
<td><strong>Encoder-Decoder Attention</strong></td>
<td>입력 문장 정보(Encoder)와 생성 문장(Decoder) 연결</td>
</tr>
</tbody></table>
</br>


<h2 id="◆-33-position-wise-feed-forward-networks">◆ 3.3 Position-wise Feed-Forward Networks</h2>
<ul>
<li>Attention은 단어끼리 관계를 계산하는 단계라면 FFN은 그 다음에 각 단어 embedding 자체를 더 잘 가공하고 변환하는 단계임</li>
</ul>
<blockquote>
<p>단어 간 관계 파악(attention) → 단어 표현 자체 강화(FFN)</p>
</blockquote>
<ul>
<li><p>차원을 512 → 2048 → 512로 바꾸게 되는데 그 이유는 Attention을 거친 벡터는 문맥 정보가 섞였지만 표현력은 제한됨 </p>
</li>
<li><p>그래서 모델은 <strong>FFN에서 차원을 넓혀 변환 후 다시 압축함</strong></p>
</li>
</ul>
<table>
<thead>
<tr>
<th>모델 요소</th>
<th>기능</th>
</tr>
</thead>
<tbody><tr>
<td>Self-Attention</td>
<td>어느 단어가 중요한지 판단</td>
</tr>
<tr>
<td>FFN</td>
<td>각 단어 표현 자체를 더 표현력 있게 변환</td>
</tr>
</tbody></table>
</br>


<h2 id="◆-34-embeddings-and-softmax">◆ 3.4 Embeddings and Softmax</h2>
<ul>
<li><p>입력 단어(ID)를 512차원 벡터(embedding) 로 변환</p>
</li>
<li><p>Encoder와 Decoder가 같은 embedding weight 공유 → 파라미터 절약 + 의미 공간 통일</p>
</li>
<li><p>Embedding 값은 √512로 스케일링 → 값 범위 안정화 → 학습 더 잘됨</p>
</li>
<li><p>Decoder 마지막 출력은 Linear → Softmax를 거쳐</p>
</li>
<li><p>다음 단어 확률 분포를 예측함</p>
</li>
</ul>
</br>


<h2 id="◆-35-positional-encoding">◆ 3.5 Positional Encoding</h2>
<ul>
<li><p>Transformer는 순서 개념이 없기 때문에 단어 위치 정보를 embedding에 추가해야 함</p>
</li>
<li><p>그래서 sin/cos 패턴을 가진 위치 벡터(PE) 를 word embedding에 더함</p>
</li>
<li><p>PE는 고정된 값이며, 각 위치는 서로 다른 주파수로 인코딩됨</p>
</li>
<li><p>이 방식은 모델이 단어의 절대 위치 + 상대적 거리를 모두 학습할 수 있게 해줌        </p>
</li>
</ul>
</br>

<hr>
<h1 id="❖-4-why-self-attention">❖ 4. Why Self-Attention</h1>
<p>Transformer가 RNN이나 CNN 대신 Self-Attention을 선택한 이유는 3가지임</p>
<ul>
<li>1) <strong>연산 속도와 병렬화 (Parallelization)</strong><ul>
<li>RNN은 입력 순서대로 처리해야 해서 병렬 불가능하여 느리고 CNN은 병렬화는 가능하지만 멀리 떨어진 단어 관계 학습이 어려움
→  Self-Attention은 모든 단어를 한 번에 처리가 되어 완전 병렬화가 가능함</li>
</ul>
</li>
</ul>
<ul>
<li><p>2) <strong>Long-range dependency (장거리 의존성 학습 능력)</strong></p>
<ul>
<li>자연어에서는 멀리 떨어진 단어끼리 의미적으로 연결되는데 RNN은 이런 관계를 학습하려면 여러 단계 거쳐야 하고 정보 희석되고 CNN도 여러 층 필요함 
→ Self-Attention은 어느 단어든 한 단계 안에 바로 연결되기 때문에 장거리 문맥 이해에 매우 강함</li>
</ul>
</li>
<li><p>3) <strong>연산 비용 효율성 (Complexity vs Sequence Length)</strong></p>
<ul>
<li>RNN, CNN에 비하여 연산 효율성이 좋음
→ 특히 sequence 길이가 길수록 Self-Attention가 효율적인 모습을 보임</li>
</ul>
</li>
</ul>
</br>

<hr>
<h1 id="❖-5-training">❖ 5. Training</h1>
<h2 id="◆-51-training-data-and-batching">◆ 5.1 Training Data and Batching</h2>
<ul>
<li><p>데이터: WMT14 EN-DE(450만 문장), EN-FR(3600만 문장)</p>
</li>
<li><p>토크나이징: BPE(Byte-Pair Encoding)</p>
</li>
<li><p>배치 구성: 문장 길이 비슷하게 묶음 → padding 낭비 감소</p>
</li>
<li><p>배치 크기: 약 25k source + 25k target tokens</p>
</br>


</li>
</ul>
<h2 id="◆-52-hardware-and-schedule">◆ 5.2 Hardware and Schedule</h2>
<ul>
<li><p>환경: NVIDIA P100 × 8 GPU</p>
</li>
<li><p>Base 모델: 100k steps (~12 hrs)</p>
</li>
<li><p>Big 모델: 300k steps (~3.5 days)</p>
</br>


</li>
</ul>
<h2 id="◆-53-optimizer">◆ 5.3 Optimizer</h2>
<ul>
<li><p>Optimizer: Adam</p>
<ul>
<li>β1=0.9, β2=0.98, ε=1e−9</li>
</ul>
</li>
<li><p>학습률 스케줄:</p>
<ul>
<li>초기: Warmup 4000 steps → 점진적 증가</li>
<li>이후: step^-0.5 감소
→ 안정적 학습 + 빠른 적응</br>


</li>
</ul>
</li>
</ul>
<h2 id="◆-54-regularization">◆ 5.4 Regularization</h2>
<ul>
<li><p>Residual dropout (p=0.1) → attention/FFN 출력에 적용</p>
</li>
<li><p>Embedding + positional encoding dropout</p>
</li>
<li><p>Label smoothing (ε=0.1) → 모델 확신 ↓, BLEU ↑</p>
</li>
<li><p>결과 (성능 비교)</p>
<img src = https://velog.velcdn.com/images/sjh9_4/post/c9e55bf9-236f-4bcd-bd3d-532d2fd80290/image.png width=500>
</li>
<li><p>Transformer(Base): 27.3 (EN-DE), 38.1 (EN-FR)</p>
</li>
<li><p>Transformer(Big): 28.4 (EN-DE), 41.8 (EN-FR)</p>
</li>
</ul>
<p>→ <strong>기존 RNN/CNN 기반 모델보다 더 높은 BLEU + 더 적은 계산비용</strong>
</br></p>
<hr>
<h1 id="❖-6-results">❖ 6. Results</h1>
<h2 id="◆-61-machine-translation">◆ 6.1 Machine Translation</h2>
<ul>
<li><p>Transformer(Big)은 WMT14 EN→DE 기준 BLEU +2.0 이상 개선함</p>
</li>
<li><p>Training 비용은 기존 SOTA 모델 대비 더 적은 FLOPs로 더 좋은 성능을 보임</p>
</li>
<li><p>EN→FR에서도 Transformer(Big)가 최고의 BLEU 성능 달성함</p>
</li>
<li><p>Label smoothing(ε=0.1)이 성능 향상에 효과적임</p>
</li>
</ul>
</br>


<h2 id="◆-62-model-variations">◆ 6.2 Model Variations</h2>
<img src = https://velog.velcdn.com/images/sjh9_4/post/9e5c7f00-d921-4627-b51b-763e1682268a/image.png width = 550>

<table>
<thead>
<tr>
<th>변경 요소</th>
<th>결과</th>
</tr>
</thead>
<tbody><tr>
<td>Head 수 변화 (A)</td>
<td>single-head는 성능 저하 → Multi-head 필수</td>
</tr>
<tr>
<td>Attention dimension 감소 (B)</td>
<td>dₖ나 dᵥ 줄이면 성능 감소 → 충분한 차원 필요</td>
</tr>
<tr>
<td>모델 크기 증가 (C)</td>
<td>더 큰 모델이 더 좋은 성능</td>
</tr>
<tr>
<td>Dropout/Label smoothing 조정 (D)</td>
<td>너무 적거나 많으면 성능 저하 → 적정값 존재</td>
</tr>
<tr>
<td>Positional embedding 교체 (E)</td>
<td>학습형 positional encoding ≈ sin/cos → 거의 동일</td>
</tr>
</tbody></table>
<p>→ <strong>모델 크기 증가 + 적절한 dropout + multi-head 구조가 최적</strong>
</br></p>
<h2 id="◆-63-english-constituency-parsing">◆ 6.3 English Constituency Parsing</h2>
<ul>
<li>번역 외 task에서도 Transformer가 RNN-based parsing 모델들과 경쟁 가능한 결과 기록하였고 Semi-supervised setting에서는 기존 최고 모델과 거의 동일하거나 더 좋은 성능을, Task-specific tuning 없이도 높은 generalization 성능을 보임</br>

</li>
</ul>
<hr>
<h1 id="❖-7-conclusion">❖ 7. Conclusion</h1>
<blockquote>
<p><strong>Transformer</strong>는 RNN이나 CNN 없이, 오직 <strong>Self-Attention만</strong> 사용하는 최초의 Seq2Seq 모델아며 번역 작업에서 학습 속도는 훨씬 빠르면서도 기존 SOTA 모델보다 더 높은 BLEU 성능을 기록하였으며 *<em>구조적 단순함 + 높은 성능 *</em>덕분에 다른 task(텍스트 외 이미지·오디오·비디오 등)로 확장 가능성 높음</p>
</blockquote>
</br>

<hr>
<h1 id="❖-논문-후기">❖ 논문 후기</h1>
<ul>
<li><p>요즘 나오는 챗봇 AI들을 보면 정말 놀라울 정도의 성능을 보여주는데 사실 그 시작점이 바로 이 논문이라고 해도 과언이 아니라고 생각함</p>
</li>
<li><p>물론 최근 발표되는 모델들은 훨씬 복잡하고 뛰어난 성능을 내지만 결국 그 모든 발전의 기반에는 Transformer 구조가 존재하며 이 논문이 그 출발점이라는 생각을 하게 됨</p>
</li>
<li><p>추천 시스템을 공부할 때도 초창기 논문부터 흐름을 따라가며 읽었듯이 LLM과 Agent 분야도 이렇게 기초부터 차근차근 읽어가면 앞으로 최신 연구를 이해할 때 훨씬 수월해질 거라고 느꼈음</p>
</li>
<li><p>대학원 준비 과정에서도 이 흐름을 이해하고 있다는 점이 큰 장점이 될 것 같아서 이번 논문을 시작점으로 앞으로 관련 논문들을 꾸준히 이어서 읽어볼 계획임</p>
</li>
</ul>
<blockquote>
<p>논문 만족도 : ⭐️⭐️⭐️⭐️ (self attention이란 개념의 등장이 얼마나 대단한지 체감)
논문 이해도 : ⭐️⭐️⭐️⭐️ (대학 강의에서도 들었었고 이해하기 쉽게 정리도 같이 해서 잘됨)
LLM 관심도 : ⭐️⭐️⭐️⭐️ (추천시스템과 LLM 두개를 가장 관심있게 공부할 계획)</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[논문 리뷰 : Contrastive Learning for Sequential Recommendation]]></title>
            <link>https://velog.io/@sjh9_4/%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0-Contrastive-Learning-for-Sequential-Recommendation</link>
            <guid>https://velog.io/@sjh9_4/%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0-Contrastive-Learning-for-Sequential-Recommendation</guid>
            <pubDate>Tue, 18 Nov 2025 07:59:49 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p><a href="https://arxiv.org/abs/2010.14395">https://arxiv.org/abs/2010.14395</a></p>
</blockquote>
<h1 id="❖-논문-선정-이유">❖ 논문 선정 이유</h1>
<blockquote>
<p>이전에 S³-Rec을 분석하면서 self-supervised 학습이 추천 시스템에서 얼마나 강력한지 알게되었고, 자연스럽게 후속 연구들이 어떤 방향으로 확장되는지 궁금해졌음
그러다 contrastive learning을 시퀀스 추천에 직접 적용한 CL4SRec을 확인하게 되었고, 기존 한계를 어떻게 개선했는지 살펴보고자 본 논문을 선정함</p>
</blockquote>
</br>

<hr>
<h1 id="❖1introduction">❖1.Introduction</h1>
</br>

<h2 id="◆-핵심-문제">◆ 핵심 문제</h2>
<ul>
<li><strong>Sequential Recommendation(순차 추천)</strong>는 사용자의 과거 행동 시퀀스를 보고 다음 아이템을 예측하는 방식인데, 기존 모델들은 보통 supervised learning만 사용함</br>
→ 문제는 사용자 행동이 sparse함 레이블(y)이 부족하고 모델 파라미터는 많아서 과적합되기 쉬워서 high-quality representation을 학습하기 어려움</br>

</li>
</ul>
<h2 id="◆-핵심-해결-아이디어">◆ 핵심 해결 아이디어</h2>
<blockquote>
<p>CL4SRec은 <strong>self-supervised learning(자기지도학습) + contrastive learning(대조학습)</strong> 을 시퀀스 추천에 활용하는 최초의 시도임</p>
</blockquote>
<ul>
<li>한 사용자의 시퀀스를 augmentation 해서 서로 다른 view를 뽑고, 이 view들이 같은 사용자에서 나왔다면 representation을 가깝게 만들어서 레이블 없이도 representation 품질이 좋아지게 함 </li>
</ul>
</br>

<hr>
<h1 id="❖-2related-work">❖ 2.Related Work</h1>
</br>

<h2 id="◆-21-sequential-recommendation">◆ 2.1 Sequential Recommendation</h2>
<ul>
<li><p><strong>초기: Markov Chain 기반</strong>
→ 바로 다음 행동만 고려하여 성능이 낮음</p>
</li>
<li><p><strong>중기: RNN, LSTM, GRU 기반</strong>
→ 시퀀스 전반을 고려하지만 long-term dependency 한계</p>
</li>
<li><p><strong>최근(2021 기준) : Transformer 기반 SASRec 등장</strong>
→ self-attention으로 중요한 아이템들에 집중
→ SOTA 달성</p>
</li>
<li><p>또 다른 라인: GNN 기반 모델
→ 그래프 구조에서 이웃 정보를 활용하나
→ computational cost 큼 + 복잡함 증가</p>
</li>
</ul>
<blockquote>
<p>하지만 여전히 문제는 <strong>레이블 부족 + sparse</strong></p>
</blockquote>
</br>

<h2 id="◆-22-self-supervised-learning">◆ 2.2 Self-supervised Learning</h2>
<ul>
<li><strong>Self-supervised</strong> 는 크게 두 가지 스타일이 있음</li>
</ul>
<p><strong>1) Prediction-style task</strong></p>
<ul>
<li><p>Masked prediction(BERT)
→ 시퀀스 일부 토큰을 [MASK]로 가리고, 모델이 가려진 원래 아이템을 맞히도록 학습시키는 방식</p>
</li>
<li><p>Rotation prediction
→ 시퀀스를 임의로 회전(shift)시켜 순서를 섞어놓고, 모델이 원래의 올바른 시작 위치를 맞히도록 학습시키는 방식.</p>
</li>
<li><p>Jigsaw puzzle 
→ 데이터를 변형하고 원래를 맞추는 방식</p>
</li>
</ul>
<p><strong>2) Contrastive learning</strong></p>
<ul>
<li><p>SimCLR
→ 같은 데이터에서 만든 두 개의 증강 뷰는 가깝게, 다른 데이터는 멀게 학습시키는 가장 기본적인 대조학습 프레임워크</p>
</li>
<li><p>MoCo
→ 대규모 음성(negative) 샘플을 안정적으로 유지하기 위해 ‘모멘텀 큐’를 사용해 더 일관된 대조학습을 가능하게 한 방식</p>
</li>
<li><p>두 view가 같으면 가깝게, 다르면 멀게하는 방식이 추천 시스템에서도  중요해지고 있지만, 기존 연구들은 <strong>item-level augmentation</strong>이 많고 <strong>sequence-level self-supervised</strong>는 거의 없음</p>
</li>
</ul>
<blockquote>
<p>여기서 <strong>CL4SRec</strong>이 등장하여 <strong>sequence-level contrastive</strong>를 최초로 제안함</p>
</blockquote>
<ul>
<li>저번 논문에서 리뷰한 <strong>S³-Rec</strong> 은 sequence-level prediction-style SSL이 메인이고, 일부 alignment loss가 contrastive 느낌을 포함한 하이브리드 방식이여서 contrastive 모델이라기보다는 <strong>prediction-style</strong> 중심 모델</li>
</ul>
</br>

<hr>
<h1 id="❖-3-cl4srec">❖ 3. CL4SRec</h1>
</br>

<ul>
<li>CL4SRec은 다음 4가지 요소로 구성됨:</li>
</ul>
</br>

<h2 id="◆-31-notations-and-problem-satement">◆ 3.1 Notations and Problem Satement</h2>
<ul>
<li>사용자 시퀀스 :
$$s_u = [v_1^{(u)}, v_2^{(u)}, ... ,v_t^{(u)}]$$</br></li>
<li>예측해야 할 것 :
$v_{\text{next}} = \arg\max_{v_i} P(v_i \mid s_u)$</br></li>
<li>즉 다음 클릭/구매 아이템 예측 문제</li>
</ul>
</br>

<h2 id="◆-32-contrastive-learning-framework">◆ 3.2 Contrastive Learning Framework</h2>
<ul>
<li><p>모델은 3부분으로 구성됨:</p>
<h4 id="321-augmentation-module">3.2.1 Augmentation Module</h4>
</li>
<li><p>사용자의 시퀀스를 <strong>3가지 방식</strong>으로 랜덤하게 변형시켜 <strong>두 개의 correlated views</strong> 생성함</p>
<p>(1) <strong>Item Crop</strong>
시퀀스 일부 구간만 남기기
→ 지역적인 취향 정보 캡처</p>
<p>(2) <strong>Item Mask</strong>
token을 [MASK]로 가리기
→ BERT의 masked LM과 유사한 효과</p>
<p>(3) <strong>Item Reorder</strong>
아이템 순서를 일부 섞기
→ 시퀀스 순서가 조금 바뀌어도 취향은 동일하다는 가정</p>
</li>
<li><p>두 개의 augmentation(ai, aj)을 적용하여 $$s_u^{a_i}, s_u^{a_j}$$ 두 개의 view를 생성함</p>
</li>
</ul>
</br>

<h4 id="322-user-representation-encoder">3.2.2 User Representation Encoder</h4>
<ul>
<li>Transformer encoder(<strong>SASRec</strong> 구조)를 그대로 차용하여 augmentation된 시퀀스를 임베딩
→ SASRec(2018)은 Transformer의 self-attention을 추천 시스템에 적용한 최초의 모델</li>
</ul>
<h4 id="323-contrastive-loss">3.2.3 Contrastive Loss</h4>
<ul>
<li>같은 사용자의 두 view는 가깝게 다른 사용자의 view는 멀게하는 것이 목적<blockquote>
<p><strong>SimCLR loss</strong> :
$$
L_{CL}
=-\log
\frac{
  \exp(\mathrm{sim}(s_u^{a_i}, s_u^{a_j})/\tau)
}{
  \sum \exp(\mathrm{sim}(\text{positive})/\tau)
  +
  \sum \exp(\mathrm{sim}(\text{negative})/\tau)
}
$$</p>
</blockquote>
</li>
</ul>
<p>** 수식 설명**</p>
<p>*<em>$L_{CL}$ *</em></p>
<ul>
<li>contrastive learning에서 사용하는 loss 값</li>
<li>이 값을 최소화하는 방향으로 학습이 이뤄짐</li>
</ul>
<ul>
<li>$s_u^{a_i}, s_u^{a_j}$ → 같은 user u의 시퀀스에 서로 다른 augmentation $a_i,a_j$ 를 적용한 두 개의 view</li>
</ul>
</br>


<p>$sim(,)$</p>
<ul>
<li>두 벡터 사이의 유사도를 재는 함수이며 보통 코사인 유사도를 많이 쓰며 유사도가 클수록 두 representation이 비슷하다 봄</li>
</ul>
</br>

<p>$\tau$ (temperature)</p>
<ul>
<li>softmax에서 분포를 얼마나 뾰족하게 만들지 조절하는 스칼라이며 작을수록 유사도 차이가 크게 반영되고 클수록 유사도 차이를 완만하게 봄</li>
</ul>
</br>

<p>$분자$ 
$$\exp(\mathrm{sim}(s_u^{a_i}, 
s_u^{a_j})/\tau)$$</p>
<ul>
<li>현재 우리가 관심있는 positive 쌍 $$s_u^{a_i}, s_u^{a_j}$$의 similarity를 먼저 계산</li>
<li>그 값을 $$\tau$$로 나누고 다시 exp를 취함</li>
<li>softmax에서 이 쌍이 선택될 확률의 분자 역할을 함</li>
<li>두 view의 임베딩이 비슷할수록(sim이 클수록) 분자가 커짐 → 확률이 커짐 → loss가 작아짐</li>
<li>그래서 모델이 같은 유저의 augmentation된 시퀀스들은 서로 더 비슷하게 만들도록 학습하게 됨</li>
</ul>
</br>

<p>$분모$
$$ \sum \exp(\mathrm{sim}(\text{positive})/\tau)+
\sum \exp(\mathrm{sim}(\text{negative})/\tau)$$</p>
<ul>
<li>첫 번째 합: 같은 anchor에 대해 고려하는 모든 positive 쌍들</li>
<li>두 번째 합: anchor와 negative 후보들(다른 user/sequence) 사이의 similarity들</li>
<li>즉, 분모 전체는 이 anchor와 관련된 모든 후보(positive + negative)를 대상으로 계산한 softmax의 분모라고 보면 됨</li>
</ul>
<p>$log 이유$</p>
<p>$$L_{CL} = 
-\log(\text{위 확률})$$</p>
<ul>
<li><p>우리가 원하는 건 anchor와 진짜 positive 쌍이 선택될 확률이 최대화 하는 것인데 그 확률을 최대화하는 대신
→ 그 확률에 log를 취하고 마이너스를 붙여서그 값을 최소화하는 형태로 바꾼 것</p>
</li>
<li><p>그래서 학습이 진행되면서
→ positive 쌍의 similarity는 점점 커지게 만들고
→ negative 쌍의 similarity는 상대적으로 작아지도록 압박하는 구조가 됨</p>
</li>
</ul>
<blockquote>
<p>contrastive loss는 같은 유저 시퀀스에서 나온 두 augmentation view의 유사도가 모든 다른 시퀀스들과의 유사도보다 상대적으로 높아지도록 확률 형태로 강제하는 함수라고 보면 되며 <strong>CLS4Rec 성능의 핵심</strong>임</p>
</blockquote>
</br>

<h2 id="◆-33-data-augmentation-operators">◆ 3.3 Data Augmentation Operators</h2>
<ul>
<li><p><strong>CL4SRec의 핵심</strong>은 <strong>사용자 행동 시퀀스</strong>를 여러 <strong>다른 관점(view)으로 변환</strong>해 <strong>self-supervised 신호</strong>를 만듦</p>
</li>
<li><p>이를 위해 세 가지 증강 기법을 사용함</p>
</li>
</ul>
<h4 id="1-item-crop-부분-시퀀스-자르기">1) Item Crop (부분 시퀀스 자르기)</h4>
<ul>
<li><p><strong>이미지에서 crop 하듯</strong>이, 사용자 시퀀스에서 연속된 일정 길이의 sub-sequence만 남기고 나머지를 버림</p>
</li>
<li><p>사용자의 최근 행동 패턴에 집중하게 해주며 두 개의 서로 다른 crop을 만들면, 상호 겹치지 않을 때는 다음 아이템 예측 같은 신호도 만들어짐</p>
</li>
<li><p>즉, 로컬한 관심사 + 다음 행동을 더 선명하게 학습하도록 만들기 때문에 representation 품질 향상에 도움됨</p>
</li>
</ul>
</br>

<h4 id="2-item-mask-아이템-마스킹">2) Item Mask (아이템 마스킹)</h4>
<ul>
<li><p><strong>NLP에서 word dropout과 비슷</strong>하며 시퀀스에서 일정 비율(η)의 아이템을 골라 [mask] 토큰으로 대체함</p>
</li>
<li><p>사용자가 특정 제품을 구매하려는 의도는 전체 시퀀스에 균질하게 나타나므로, 일부 아이템이 mask 돼도 중심 관심사를 유지할 수 있음</p>
</li>
<li><p>서로 다른 masking 결과물 두 개를 만들면 같은 사용자 시퀀스에서 나온 두 view가 동일한 선호를 나타내도록 representation을 학습할 수 있음</p>
</li>
</ul>
</br>

<h4 id="3-item-reorder-순서-뒤섞기">3) Item Reorder (순서 뒤섞기)</h4>
<ul>
<li><p>원래 순서 기반 모델은 시퀀스의 순서를 강하게 신뢰하지만, 실제로는 클릭 순서가 뒤죽박죽일 수도 있고 여러 행동이 동시에 발생하기도 함</p>
</li>
<li><p>reorder 증강은 <strong>시퀀스 내 일부 구간을 랜덤하게 섞어서</strong> 순서에 대한 강한 의존도를 완화함</p>
</li>
<li><p>모델이 순서 노이즈에 덜 민감해지고, 시퀀스 전반의 맥락을 좀 더 유연하게 파악할 수 있게 됨</p>
</li>
</ul>
</br>

<h2 id="◆-34-user-representation-model">◆ 3.4 User Representation Model</h2>
<ul>
<li><p>CL4SRec은 <strong>SASRec과 동일한 Transformer Encoder 구조</strong>를 사용함</p>
</li>
<li><p>Transformer 기반 SASRec 구조:</p>
<ul>
<li>Embedding layer</li>
<li>Multi-head self-attention</li>
<li>Position-wise feed-forward</li>
<li>Stacking blocks</li>
<li>User representation = 마지막 타임스텝의 hidden state</li>
</ul>
</li>
</ul>
</br>

<h2 id="◆-35-multi-task-training">◆ 3.5 Multi-task Training</h2>
<ul>
<li><p>CL4SRec의 최종 objective는
(1) <strong>추천용 메인 loss (sequence prediction)</strong>
(2) <strong>contrastive learning loss (representation alignment)</strong></p>
</li>
<li><p>두 개를 함께 학습시키는 형태임</p>
</li>
<li><p>1)** Main Loss (L_main)**</p>
<ul>
<li>다음 아이템 예측</li>
<li>sample softmax 기반 NLL 사용</li>
<li>사용자 u가 t+1에서 선택한 긍정 아이템 v⁺와 랜덤으로 뽑은 negative 아이템 v⁻들의 score를 비교함</li>
</ul>
</li>
<li><p>2) <strong>Contrastive Loss (L_CL)</strong></p>
<ul>
<li>같은 사용자 시퀀스에서 만든 두 증강 view(aᵢ, aⱼ)가 가까워지도록</li>
<li>다른 사용자 view들과는 멀어지도록 InfoNCE 형태 사용</li>
</ul>
</li>
</ul>
<ul>
<li>최종적으로 λ는 두 loss 간의 trade-off를 조절하여 prediction과 representation 간 균형을 맞추게 됨</li>
</ul>
<p>$$
\mathcal{L}<em>{\text{total}} = \mathcal{L}</em>{\text{main}} + \lambda \mathcal{L}_{\text{CL}}
$$</p>
<blockquote>
<p><strong>Main Loss는 정답 맞추는 것</strong>에 <strong>Contrastive Loss는 똑똑한 표현을 만드는 것</strong>에 집중하며 
두 개가 결합되면서 CL4SRec은 단순한 ranking accuracy를 넘어 더 견고하고 일반화 능력이 높은 추천 모델을 만들게 됨</p>
</blockquote>
</br>

<hr>
<h1 id="❖-4experiments">❖ 4.Experiments</h1>
<ul>
<li><p>Research Questions (RQ)
논문에서는 실험을 통해 아래 5가지 질문을 해결하려고 함</p>
<ul>
<li><p>** RQ1**. CL4SRec은 기존 state-of-the-art sequential recommendation 모델보다 성능이 좋은가?</p>
</li>
<li><p><strong>RQ2</strong>. 서로 다른 augmentation 방식(크롭·마스크·리오더)이 성능에 어떤 영향을 주는가?</p>
</li>
<li><p><strong>RQ3</strong>. contrastive loss의 가중치 λ 값이 multi-task 학습 프레임워크에서 어떤 영향을 주는가?</p>
</li>
<li><p><strong>RQ4</strong>. CL4SRec의 구성 요소들(augmentation + contrastive learning)이 각각 성능 향상에 어떻게 기여하는가?</p>
</li>
<li><p><strong>RQ5</strong>. CL4SRec은 실제로 다른 모델보다 “더 좋은 user sequence representation”을 학습하는가?</p>
</li>
</ul>
</li>
<li><p>전체적으로 모델 구조 + augmentation 조합 + loss weighting이 성능에 어떤 영향을 주는지 다각도로 검증하는 구성임.</p>
<h2 id="◆-41-experiments-settings">◆ 4.1 Experiments Settings</h2>
<h4 id="411-datasets">4.1.1 Datasets</h4>
</li>
<li><p>총 4개 실제 데이터셋 사용: Beauty, Sports, Yelp, ML-1M</p>
</li>
<li><p>모든 interaction을 binary로 변환</p>
</li>
<li><p>중복 제거 뒤 시간순 정렬</p>
</li>
<li><p>5-core filtering 적용하여 sparse noise 제거</p>
</li>
<li><p>평균 시퀀스 길이는 Beauty/Sports/Yelp는 짧고 sparse, ML-1M은 길고 dense함</p>
<img src = https://velog.velcdn.com/images/sjh9_4/post/05e10819-84d3-4751-9b92-7699ad3cba53/image.png width = 500>

</li>
</ul>
<h4 id="412-evaluation">4.1.2 Evaluation</h4>
<ul>
<li>Leave-one-out 전략 사용</li>
<li>마지막 item → test, 이전 item → validation</li>
<li>Negative sampling은 사용하지 않고 전체 item을 대상으로 ranking</li>
<li>Metric: HR@k, NDCG@k (k = 5,10,20)</li>
</ul>
<h4 id="413-baselines">4.1.3 Baselines</h4>
<ul>
<li><p>Non-sequential: Pop, BPR-MF, NCF</p>
</li>
<li><p>Sequential: GRU4Rec+, SASRec, GC-SAN, S³-RecMIP</p>
</li>
<li><p>Embedding dim=64, Adam optimizer, early stopping 적용</p>
<h2 id="◆-42-overall-performance-comparisonrq1">◆ 4.2 Overall Performance Comparison(RQ1)</h2>
</li>
<li><p>CL4SRec은 4개 데이터셋 모두에서 모든 SOTA baseline을 초과하는 성능을 보임</p>
</li>
<li><p>주요 결과:</p>
<ul>
<li>Sequential 모델(SASRec, GRU4Rec+) &gt; Non-sequential 모델(BPR-MF, NCF)</li>
<li>SASRec이 기존 baseline 중 최고이나 CL4SRec이 HR/NDCG 전 지표에서 뚜렷한 개선폭을 보임</li>
<li>특히 sparse 데이터셋(Beauty, Sports, Yelp)에서 향상폭이 큼</li>
</ul>
</li>
<li><p>평균 개선:</p>
<ul>
<li>HR@5: +11.02%, HR@10: +9.69%</li>
<li>NDCG@5: +5.52%, NDCG@10: +8.50%
→ Contrastive learning 기반 sequence augmentation이 state-of-the-art 이상의 성능을 제공함을 증명</li>
</ul>
</li>
</ul>
<h2 id="◆-43-comparison-of-diifferent-augmentation-methodsrq2">◆ 4.3 Comparison of Diifferent Augmentation Methods(RQ2)</h2>
<ul>
<li>crop, mask, reorder 세 augmentation을 각각 적용하여 성능을 비교<img src = https://velog.velcdn.com/images/sjh9_4/post/cd9d3fad-e3f2-4ad6-a193-2c15e5988128/image.png width = 500>



</li>
</ul>
<ul>
<li><p>결과 요약:</p>
<ul>
<li><p>어떤 augmentation 방식도 대부분 SASRec보다 우수함</p>
</li>
<li><p>dataset마다 가장 효과적인 augmentation은 다름
Sports → Mask
Yelp → Crop</p>
</li>
<li><p>augmentation 비율(0.1~0.9)에는 최적 구간이 존재
→ 너무 적으면 self-supervised 신호 부족
→ 너무 많으면 원본 변형이 커져 정보 손실 발생
→ 적절한 변형 수준이 contrastive learning 성능을 극대화함</p>
</li>
</ul>
</li>
</ul>
<h2 id="◆-44-input-of-contrastive-learning-lossrq3">◆ 4.4 Input of Contrastive Learning Loss(RQ3)</h2>
<ul>
<li>contrastive loss 가중치 λ를 변경하며 성능 변화를 관찰</li>
</ul>
<img src = https://velog.velcdn.com/images/sjh9_4/post/7ee160ca-438c-4958-8751-f09e2d261e06/image.png width = 500>


<ul>
<li><p>핵심 패턴:</p>
<ul>
<li>λ가 너무 크면 contrastive loss가 dominate되어 성능이 하락</li>
<li>λ가 적당한 범위(0.1~1.0)일 때 SASRec 대비 안정적으로 우수한 성능</li>
<li>λ가 커질수록 HR/NDCG는 감소 → sequence prediction을 해치는 trade-off 발생</li>
</ul>
</li>
<li><p>Contrastive learning은 “적당히” 섞여야 효과적이며, representation quality와 prediction 사이의 밸런스가 중요함</p>
</li>
</ul>
<h2 id="◆-45-ablation-studyrq4">◆ 4.5 Ablation Study(RQ4)</h2>
<ul>
<li><p>모델 비교:</p>
<ul>
<li>SASRec</li>
<li>SASRec_aug (augmentation만 적용)</li>
<li>CL4SRec (augmentation + contrastive)<img src = https://velog.velcdn.com/images/sjh9_4/post/3add747d-bc88-4f08-af97-5c24645ad213/image.png width = 500>
</li>
</ul>
</li>
<li><p>결론:</p>
<ul>
<li><p>SASRec_aug &gt; SASRec
→ augmentation만으로도 학습 generalization이 개선됨</p>
</li>
<li><p>CL4SRec &gt; SASRec_aug
→ contrastive loss가 representation 품질을 크게 향상</p>
<ul>
<li>Figure 6을 통해 CL4SRec embedding이 더 의미 있는 구조를 형성함을 시각적으로 확인</li>
</ul>
</li>
</ul>
</li>
</ul>
<h2 id="◆-46-quality-of-user-representationrq5">◆ 4.6 Quality of User Representation(RQ5)</h2>
<ul>
<li><p>Yelp의 “친구 관계(friend links)” 데이터를 이용해 latent space에서의 유저 유사도를 측정</p>
<img src = https://velog.velcdn.com/images/sjh9_4/post/c50648e7-ded8-4464-a418-ae2171599962/image.png width = 500></li>
<li><p>결과:</p>
<ul>
<li><p>평균 cosine similarity
→ SASRec: 0.5198
→ CL4SRec: 0.6100</p>
</li>
<li><p>CL4SRec의 embedding은 비슷한 취향(친구 관계) 사용자끼리 더 가깝게 위치</p>
</li>
<li><p>학습 중 friend 정보는 사용하지 않았음에 embedding 구조가 더 semantic하게 형성됨</p>
</li>
</ul>
</li>
<li><p>CL4SRec은 단순 추천 정확도뿐 아니라 user representation quality 자체가 개선됨</p>
</li>
</ul>
</br>

<hr>
<h1 id="❖-5conclusion-and-future-work">❖ 5.Conclusion and Future Work</h1>
<ul>
<li><p>본 논문에서는 <strong>Contrastive Learning for Sequential Recommendation (CL4SRec)</strong> 라는 새로운 모델을 제안하였으며 CL4SRec은 interaction 데이터만으로도 효과적인 사용자 표현 학습이 가능하도록 설계되었음</p>
</li>
<li><p><strong>contrastive learning 프레임워크를 활용</strong>하여 <strong>추가 레이블 없이 raw sequence로부터 self-supervised 신호를 추출</strong>하고 <strong>crop, mask, reorder</strong>의 세 가지 data augmentation 전략을 제안을 함</p>
</li>
<li><p>네 개의 공개 데이터셋(Beauty, Sports, Yelp, ML-1M)에서의 실험 결과 CL4SRec은 기존 SOTA 모델들보다 일관적으로 우수한 성능을 보이며 <strong>contrastive learning이 sequential recommendation에서 매우 효과적임을 입증</strong>함</p>
</li>
</ul>
</br>

<hr>
<h1 id="❖-논문-후기">❖ 논문 후기</h1>
<ul>
<li><p>지난주에 리뷰했던 S³-Rec 논문에 이어, 이번에는 또 다른 추천시스템 관련 연구를 선택하여 리뷰하였음</p>
</li>
<li><p>BERT4Rec → S³-Rec → CL4SRec 으로 이어지는 흐름을 따라가며, 추천 모델이 어떻게 발전해 왔는지 살펴보니 새로운 모델을 제안할 때 어떤 관점에서 성능을 개선하려 하는지 점점 더 이해하게 되는 느낌이음</p>
</li>
<li><p>특히 이번 논문에서는 contrastive learning을 추천 시스템에 적용한다는 점이 가장 인상적이었는데 contrastive learning은 현재 다양한 영역에서 활용되는 핵심 기법이며 이를 sequential recommendation에 효과적으로 녹여낸 방식이 매우 흥미로웠음</p>
</li>
<li><p>그래서 이번 리뷰에서는 다른 논문들보다 관련 수식과 학습 구조를 좀 더 깊이 정리하는 데 집중하였는데 이유는 수식을 이해하는 것이 CL4SRec의 핵심이라고 판단했기 때문임</p>
</li>
<li><p>물론 2021년 논문이라 최신 연구는 아니지만, 당시 기준으로는 충분히 의미 있는 임팩트를 가진 연구라고 생각하며 앞으로도 최신 논문까지 연속적으로 리뷰하며, 추천 시스템 분야의 흐름을 계속 따라가 보고자 함</p>
</li>
</ul>
<p>++ 그리고 추천뿐 아니라 다른 분야 논문도 가끔 탐색하며 시야를 넓히는 것도 좋을 것 같음!</p>
<blockquote>
<p>논문 만족도 : ⭐️⭐️⭐️ (contrastive learning을 활용한 점이 인상깊었음)
논문 이해도 : ⭐️⭐️⭐️⭐️ (논문 핵심이라 생각한 수식을 자세히 리뷰하니 이해가 더 잘됨)
추천시스템 관심도 : ⭐️⭐️⭐️⭐️ (추천시스템은 현실 서비스에서 가장 큰 영향을 미치는 분야라 생각해서 관심이 많음)</p>
</blockquote>
]]></description>
        </item>
    </channel>
</rss>