<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <author>
    <name>chenlongxu</name>
  </author>
  <generator uri="https://hexo.io/">Hexo</generator>
  <id>https://blog.tjdata.site/</id>
  <link href="https://blog.tjdata.site/" rel="alternate"/>
  <link href="https://blog.tjdata.site/atom.xml" rel="self"/>
  <rights>All rights reserved 2026, chenlongxu</rights>
  <subtitle>Stay hungry,stay foolish</subtitle>
  <title>Chenlong's blog</title>
  <updated>2026-03-15T14:58:05.000Z</updated>
  <entry>
    <author>
      <name>chenlongxu</name>
    </author>
    <category term="生活杂谈" scheme="https://blog.tjdata.site/categories/%E7%94%9F%E6%B4%BB%E6%9D%82%E8%B0%88/"/>
    <category term="工作随想" scheme="https://blog.tjdata.site/tags/%E5%B7%A5%E4%BD%9C%E9%9A%8F%E6%83%B3/"/>
    <content>
      <![CDATA[<p>算上提前实习已经在职场中工作一年了，发现走出象牙塔自己的目标已经迷失，没有考试的指引、没有”封号斗罗“的目标，逐渐丧失对自己的生活的热爱，以至于最近反复出现失眠、焦虑、刷短视频的过程，本质上是失去了对于生命的感受。</p><p>但是唯有热爱才能让自己自发的愿意去做事情，才能寻找到时间答案，我的人生感悟包括：</p><ol><li>一切都没有标准答案，只取决于”你想活出什么样的人生“</li><li>工作中的追求可以是多样性的</li><li>自驱力来源于热爱</li><li>平衡「自我&#x2F;能力」是维持前进的动力</li><li>正确答案来源于自己</li></ol><hr><h1 id="走出象牙塔的一年：当人生失去了“进度条”，我们该如何寻找意义？"><a href="#走出象牙塔的一年：当人生失去了“进度条”，我们该如何寻找意义？" class="headerlink" title="走出象牙塔的一年：当人生失去了“进度条”，我们该如何寻找意义？"></a>走出象牙塔的一年：当人生失去了“进度条”，我们该如何寻找意义？</h1><p>从走出校园校门到入职职场，算上实习的时间，转眼已是一年。</p><p>这一年里，我完成了从学生到职场人的切换，在工作路径上也算小步快跑，但是我发现自己陷入了一种前所未有的<strong>“算法失效”</strong>：深夜失眠、清晨焦虑、无意识地刷短视频直到大脑麻木……这种状态的本质，其实是<strong>失去了对于生命的感受。</strong> 当生活不再有标准的教学大纲，当KPI无法填补内心的虚无，我们该如何锚定自己的坐标？</p><h3 id="1-唯一没有“标准答案”的考场"><a href="#1-唯一没有“标准答案”的考场" class="headerlink" title="1. 唯一没有“标准答案”的考场"></a>1. 唯一没有“标准答案”的考场</h3><p>在学校时，标准答案是唯一的。但在真实的社会系统中，<strong>一切都没有标准答案。</strong></p><p>我们习惯了被动接受指标，却忘了人生本质上是一场<strong>开放世界游戏</strong>。萨特（Jean-Paul Sartre）曾说：“存在先于本质”，这意味着人并没有预设的说明书，我们是通过每一个选择来定义自己的。</p><p><strong>答案不来自外部，而来自自身。</strong> 焦虑的根源往往是我们试图用“社会公认的正确”去套用极其个性化的人生。当你不再寻找那个“唯一的优解”，而是问自己“你想活出什么样的人生”时，这种内生的坐标才会让心安稳下来。</p><h3 id="2-承认职业追求的多样性：没有高下，只有适配"><a href="#2-承认职业追求的多样性：没有高下，只有适配" class="headerlink" title="2. 承认职业追求的多样性：没有高下，只有适配"></a>2. 承认职业追求的多样性：没有高下，只有适配</h3><p>我们常有一种错觉，认为职场成功只有一种线性路径。事实上，<strong>工作中的追求可以是极其多样性的：</strong></p><ul><li><strong>追求成长：</strong> 将公司视为实验室，享受见识不同业务边界、死磕底层逻辑的认知升级感。</li><li><strong>追求金钱：</strong> 这并不可耻，将工作时长最大价值化，为生活提供坚实的底座，追求资产的复利。</li><li><strong>追求挑战：</strong> 不拘泥于安稳，热衷于在不确定性中寻找最优解，享受解决难题的瞬间。</li></ul><p>承认这种多样性是<strong>自我和解</strong>的第一步。当你认清了自己当下的优先级，那种“别人在内卷，我却在焦虑”的无意义内耗就会大幅降低。</p><h3 id="3-自驱力：从“被动受控”到“主动热爱”"><a href="#3-自驱力：从“被动受控”到“主动热爱”" class="headerlink" title="3. 自驱力：从“被动受控”到“主动热爱”"></a>3. 自驱力：从“被动受控”到“主动热爱”</h3><p>为什么刷短视频会感到空虚？因为那是一种<strong>“被动的信息喂养”</strong>，它并不产生能量。</p><p>心理学中的<strong>自决理论（Self-Determination Theory）</strong>告诉我们，真正的自驱力来源于内部动机。<strong>唯有热爱，才能让人自发地产生那种不计成本、不问结果的投入感。</strong> 这种热爱是内生性的能量，它能帮你寻找到“时间的答案”——即在冗长且重复的日常中，哪些时刻让你觉得“活得真实”。</p><p>没有热爱的驱动，自驱力就像无米之谈，最终只会沦为被DDL（截止日期）鞭策的被动执行。</p><h3 id="4-长期价值：不畏浮云遮望眼"><a href="#4-长期价值：不畏浮云遮望眼" class="headerlink" title="4. 长期价值：不畏浮云遮望眼"></a>4. 长期价值：不畏浮云遮望眼</h3><p>在数据科学的世界里，我们深知“局部最优解”往往不是“全局最优解”。职场初期的焦虑，往往来自于过分关注即时的反馈和短期的波动。</p><blockquote><p>“不畏浮云遮望眼，自缘身在最高层。”</p></blockquote><p>这里的“最高层”不是职级的高低，而是<strong>认知维度的跨越</strong>。追求长期价值意味着要有对抗短视的定力。当你把视野拉长到五年、十年，当下那点因为项目变动或节奏失调带来的焦虑，不过是时间序列中的一个微小噪点。</p><h3 id="5-平衡「自我-能力」：寻找心流的动态锚点"><a href="#5-平衡「自我-能力」：寻找心流的动态锚点" class="headerlink" title="5. 平衡「自我&#x2F;能力」：寻找心流的动态锚点"></a>5. 平衡「自我&#x2F;能力」：寻找心流的动态锚点</h3><p>焦虑往往发生两个极端：一是挑战远超能力，产生恐惧；二是能力远超挑战，产生倦怠。</p><p><strong>平衡「自我&#x2F;能力」是维持前进的动力。</strong> 最近的迷茫，或许是因为我们正处于一个“能力平台期”或者是“目标断档期”。找回状态的方法不是彻底躺平，而是重新寻找一个能让自己进入<strong>微挑战</strong>状态的锚点。</p><p>在工作之外，无论是捕捉光影的瞬间，还是研究投资的逻辑，抑或是在代码之外构建生活的小确幸，都是在能力边界内寻找“心流”的过程。</p><hr><h3 id="结语"><a href="#结语" class="headerlink" title="结语"></a>结语</h3><p>职场第一年，我最大的感悟是：在这个充满了确定性指标的世界里，最不该被指标化的就是“对生活的热爱”。</p><p>不要怕迷失，迷失本身就是寻找坐标的开始。既然没有了“考试指引”，那就让我们自己来编写那本属于自己的、唯一的参考书。</p><p>终点并不重要，重要的是你感受到了呼吸、光影，以及那个正在思考的、真实的自己。</p>]]>
    </content>
    <id>https://blog.tjdata.site/posts/49689.html</id>
    <link href="https://blog.tjdata.site/posts/49689.html"/>
    <published>2026-03-15T05:08:38.000Z</published>
    <summary>
      <![CDATA[<p>算上提前实习已经在职场中工作一年了，发现走出象牙塔自己的目标已经迷失，没有考试的指引、没有”封号斗罗“的目标，逐渐丧失对自己的生活的热爱，以至于最近反复出现失眠、焦虑、刷短视频的过程，本质上是失去了对于生命的感受。</p>
<p>但是唯有热爱才能让自己自发的愿意去做事情，才]]>
    </summary>
    <title>20206年工作随想_保持生活的热爱</title>
    <updated>2026-03-15T14:58:05.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>chenlongxu</name>
    </author>
    <category term="生活杂谈" scheme="https://blog.tjdata.site/categories/%E7%94%9F%E6%B4%BB%E6%9D%82%E8%B0%88/"/>
    <category term="年终总结" scheme="https://blog.tjdata.site/tags/%E5%B9%B4%E7%BB%88%E6%80%BB%E7%BB%93/"/>
    <content>
      <![CDATA[<p><em>本文不包括任何AI生成的内容</em></p><p><strong>🎉 最惊喜的产品</strong></p><ol><li><strong>Google NotebookLM</strong>，是一款Google推出的基于Gemini的笔记本，可以自定义上传文件、配合在线Deep research、网页和YouTube视频等作为资源，利用AI能力输出博客、演示文稿、闪卡（Anki er 福音！）、思维导图等。适用于论文阅读、网页总结等场景，令人震惊的AI能力之精美和Google整合的资源。</li><li>**Apple Fitness+**，在Apple one中的提供运动建议的一款软件，其功能包括选择不同类型的运动（冥想、瑜伽、Hit等），同时可以配合Apple watch提供实时监测，并将数据传递到健康中，除此之外并无广告并其他打扰。相比国内的华为健康、Keep软件塞满广告的营销手段，Apple凭借其垄断的地位给出最优雅简洁的解法。</li><li><strong>Kindle oasis3 - 香槟金 - 2019款</strong>，之前使用的电纸书是掌阅的smart xs pro - 2021 - 7.8inch，但是总感觉文字渲染有点糊，由于KPW握持手感不佳，因此选择了oasis的最后一代。到手后发现虽然其反应速度、显示屏硬件参数落后，但是其做工极其精致、字体渲染超过掌阅半级，非常值得收藏。可惜的是只能通过网页使用微信读书，非常耗电。</li></ol><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com//blog/fc69df6a98dad4b6dbb2c64637ee3a6c.jpg" alt="Gemini 图片制作"></p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com//blog/image-20260103171846889.png" alt="Notebook LM生成的PPT"></p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com//blog/5ee97a2ea84f8fa3da4d4619f000574c.jpg" alt="Apple fitness+ 奖章"></p><p><strong>💻 好用的软件</strong></p><ol><li><strong>Google NotebookLM、Apple Fitness+ 见上</strong></li><li><strong>Apple Notes</strong>，兜兜转转 Flomo、Logseq、obsidian、feishu、Notion、Craft等等，最终还是回到最原始的记录方式来管理自己的所思所想，今年达成了「52周全部写完了周记」的成就，希望明年仍然可以坚持。</li><li><strong>Raycast</strong>，由于有 Mega support，一直舍不得放弃Alfred，但是由于受不了其简陋的界面和复杂的操作逻辑，转向了免费的 Raycast ，其AI功能、插件非常完善，同时订阅了Pro功能来支持跨设备同步，让我意识到每个人的配置是这款软件对自己最大的价值。</li></ol><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com//blog/image-20260103181636319.png" alt="Raycast"></p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com//blog/08c94807f771475f13e339ae036ac828.png" alt="Apple notes记录"></p><p><strong>🧰 好用的硬件</strong></p><ol><li><strong>Kindle oasis3 - 香槟金 - 32G - 2019，见上</strong></li><li><strong>AirPods Pro3</strong>，在摩尔定律逐渐失效的现在，已经很少有硬件可以实现功能上的代际提升，在从Pro2转换到Pro3中，可以毫不夸张的说降噪能力提升了两倍，完全遮盖了旁边拆迁的声音。</li><li><strong>Macbook Pro M1 - 2020</strong>，这完全是反性能的例子，在有MBP和14600K作为主机，自己的 Mac 性能不再是首要选择参数，淘了一台2020的楔形设计的M1的MBP，包含有Touch bar，堪称是艺术品的巅峰。</li></ol><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com//blog/d02eb3fba30873103daee2b196ecdc12.jpg" alt="M1-2020"></p><p><strong>🎮 好玩的游戏</strong></p><ol><li><strong>蕉力全开 - NS2，</strong>Donkey King用自己的拳头可以咋开一切碎石，真的是太爽了，没有复杂的技能树，看到阻碍砸掉就行了。</li><li><strong>潜水员戴夫 - Steam，</strong>非常解压的游戏，海底的探索就想自己的欲望，常常在往获取更多资源 –&gt; 潜水更深处 –&gt; 氧气耗尽  – &gt; 潜水技巧提升 –&gt; 探望更深处 的循环中追求捕猎的快乐，同时害怕氧气耗尽的惩罚。</li><li><strong>王国之泪 NS2版本</strong>，优秀的机能才能配得上这款游戏，相比switch1版本的画面质量和加载速度真的是好太多，唯一的缺点是其中有很多令人恶心的大花，有点恐怖。</li><li><strong>金铲铲 - 巨龙之巢 - IOS，</strong>优秀的机制，同时也是三年前赛季的回忆。</li></ol><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com//blog/wgzl.png" alt="塞尔达王国之泪"></p><p><strong>📺 好看的剧集</strong></p><ol><li><strong>人生切割术 - Apple TV</strong>，脑洞非常大的一部剧，以生活和工作分离，讲述了「工作的自己」和「生活的自己」如何突破自己的记忆，直到接受并完成自己奴役自己的过程，初识不知曲中意，再识已是曲中人。</li><li><strong>同乐者 - Apple TV</strong>，仍然脑洞非常大的一部剧，“病毒”（或者是社交媒体、或者新时代的共识）让每个人变得意识连接在一起、期望所有的人都变得“快乐”，那么正确便无从谈起，不禁让人反思复杂的信息流、推荐系统、互联网所构建的连接关系是否将自我的生活附依在集体的定义之下，无法评价那种方式是更好的，但是希望每个人可以拥有选择和退出的权利。</li><li><strong>老友记 - B站</strong>，永远可以提供开心的一部剧。</li></ol><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com//blog/d8018155193918c1aca77878ddd44a98.jpg" alt="人生切割术"></p><p> 📖 <strong>好看的书</strong></p><ol><li><strong>《被讨厌的勇气》</strong>，成长的过程便是自己和自己的对抗的克服。</li><li><strong>《平面国》</strong>，抽象但是深刻，幸好暂时没有遇到。</li><li><strong>《微小的总和》</strong>，远离消费主义。</li></ol><p> 🎵 <strong>好听的歌曲</strong></p><ol><li><strong>《孙燕姿 - 开始懂了》</strong>，歌词真的太棒了，从喜欢《我怀念的》算起已经是8年孙燕姿的粉丝，虽然前6年都以为是林俊杰的歌。</li><li><strong>《陶喆 - 就是爱你》</strong>，永远爱R&amp;B！</li><li><strong>《汪苏泷 - 晴》</strong>，这该死的宿命感。</li></ol><p> 📍<strong>好玩的地方</strong></p><ol><li><strong>广州 - 顺德 - 蒸四味</strong>，非常地道的蒸鲮鱼，完整的鱼上桌太棒了。</li><li><strong>香港 - 天星小轮 - 港口</strong>，因为今年在广州的缘故，就近去了五次香港，最喜欢的还是坐在港口前吹着风，看着清澈的海水，空闲的时间总是很快的溜走了。</li><li><strong>三亚 - 沙滩</strong>，躺平在沙滩上可以治愈一切。</li><li><strong>广西 - 桂林 - 桂海晴岚，</strong>大草坪+ 喀斯特地貌有一瞬间觉得进入的旷野之息之中，原来我喜欢的并不只是游戏，而是自由呼吸的自由。</li></ol><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com//blog/20260103181320855.png" alt="一些记忆"></p><p><strong>⏰ 最难忘的时刻</strong></p><ol><li><strong>2025年1月TRB会议</strong>，第一次参加学术会议感受了纽约的烟草味，也感受到自己历年摸索的共鸣，知道在世界上的另一个遥远角落里也有一批人在研究相同的问题，产生了莫名的连接。</li><li><strong>2025年5月研究生毕业</strong>，从大四进组开始，经历了“磨砺”人的 xx 项目直到完成毕业论文，没想到自己的学生生涯会结束的如此急促，远程的完成了所有的准备工作，匆匆忙忙的完成中期答辩、初稿、终稿、PPT制作，在唯唯诺诺中完成了答辩，终于毕业了！</li><li><strong>2025年6月征服峨眉山</strong>，作为毕业旅行的最后一场，用了9个小时爬升17.35公里穿过了阎王坡、钻天坡，突破了自己的极限，永远忘不了一起走过的傻狗，也完整的和自己的学生生涯做了最后的告别。</li></ol><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com//blog/b62547749e84e81b02a0ccbed9ece65c.jpg" alt="再见" style="zoom:25%;" /><p>2026年就这么来了，期待生活和工作中会有新的惊喜发生，希望今年会有月球移民，毕竟现在是曾经是小时候故事中的未来。</p>]]>
    </content>
    <id>https://blog.tjdata.site/posts/5926.html</id>
    <link href="https://blog.tjdata.site/posts/5926.html"/>
    <published>2026-01-03T10:23:15.000Z</published>
    <summary>
      <![CDATA[<p><em>本文不包括任何AI生成的内容</em></p>
<p><strong>🎉 最惊喜的产品</strong></p>
<ol>
<li><strong>Google NotebookLM</strong>，是一款Google推出的基于Gemini的笔记本，可以自定义上]]>
    </summary>
    <title>2025 年终内容推荐</title>
    <updated>2026-01-03T10:30:32.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>chenlongxu</name>
    </author>
    <category term="生活杂谈" scheme="https://blog.tjdata.site/categories/%E7%94%9F%E6%B4%BB%E6%9D%82%E8%B0%88/"/>
    <category term="理财" scheme="https://blog.tjdata.site/tags/%E7%90%86%E8%B4%A2/"/>
    <content>
      <![CDATA[<h2 id="TL；DR"><a href="#TL；DR" class="headerlink" title="TL；DR"></a>TL；DR</h2><ul><li>这篇指南  1. 开设港卡、2.了解入金、3. 港美股券商开设建议。</li><li>港卡开户目的为获取银行账户和实体银行卡，涉及包括汇丰银行、中国银行香港、众安银行（ZA Bank）、蚂蚁银行（Ant Bank）【必须肉身到HK】</li><li>港美股券商：介绍如何入金、券商选择，本文选择的盈立证券</li><li>香港游玩攻略</li></ul><h2 id="一、开设港卡"><a href="#一、开设港卡" class="headerlink" title="一、开设港卡"></a>一、开设港卡</h2><p>大多数人适用的 Checklist，开卡原因建议一律选择投资理财</p><ul><li><input disabled="" type="checkbox"> 肉身到港</li><li><input disabled="" type="checkbox"> 身份证明，身份证+港澳通行证。注意开卡的过程中会反光识别多次</li><li><input disabled="" type="checkbox"> 稳定的香港流量&#x2F;WI-FI ，比如 KFC、星巴克等等</li><li><input disabled="" type="checkbox"> 内地电话漫游确保能接收短信</li><li><input disabled="" type="checkbox"> 居住地址的中文地址、英文地址</li><li><input disabled="" type="checkbox"> 出入境证明，出境后半个小时在12367移民小程序上查询</li><li><input disabled="" type="checkbox"> 出入境记录，小白条</li></ul><p>需要的APP如下</p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/IMG_0130.jpg" alt="IMG_0130" style="zoom:25%;" /><h3 id="1-1-中国银行香港：目的无损入金"><a href="#1-1-中国银行香港：目的无损入金" class="headerlink" title="1.1 中国银行香港：目的无损入金"></a>1.1 中国银行香港：目的无损入金</h3><p>优点：中国银行内地和中国银行香港，跨境汇款无需各种手续费（转账教程可xhs搜索）</p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/image-20250923193523113.png" alt="香港-中国银行开户流程" style="zoom:25%;" /><p>后续timeline</p><ol><li>线上提交后，一般2-3个工作日会收到开通成功的邮件。</li><li>开通成功后3天内转账限额是1万&#x2F;天，之后会调高到20万&#x2F;天</li><li>等待30天左右，以「平邮」的方式寄出。可以电话加急为挂号信（+35HKD）</li></ol><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/image-20250923193724401.png" alt="开设成功证明" style="zoom:25%;" /><h3 id="1-2-汇丰银行：大家都开了（跟风）"><a href="#1-2-汇丰银行：大家都开了（跟风）" class="headerlink" title="1.2 汇丰银行：大家都开了（跟风）"></a>1.2 汇丰银行：大家都开了（跟风）</h3><p>优点：很酷的蓝狮子卡</p><p>开通流程基本同上，注意点</p><ol><li>开设完汇丰one账户之后需要立马开设网上银行账户，不然需要等一个月的时间拿到「密码」+「红狮子」卡之后才能拿到</li></ol><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/45981adaeb1a3e10a2b64e6c3b7368bd.jpg" alt="汇丰银行成功证明" style="zoom:25%;" /><p>后续timeline：</p><ol><li>汇丰会以EMS方式寄出，密码和红狮子</li><li>自己申请蓝狮子账户</li></ol><h3 id="1-3-ZA-BANK：最大的虚拟银行，适配wise"><a href="#1-3-ZA-BANK：最大的虚拟银行，适配wise" class="headerlink" title="1.3 ZA BANK：最大的虚拟银行，适配wise"></a>1.3 ZA BANK：最大的虚拟银行，适配wise</h3><p>优点：链接wise之后可以订阅ChatGPT API、PayPal等</p><p>开通流程基本如上，没有需要注意的，非常的迅速</p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/image-20250923194536460.png" alt="众安审核通过正吗" style="zoom:25%;" /><blockquote><p>利益相关：ZA BANK 开通邀请码SP25V7</p><p>注册链接去众安银行开户，赚价值 HKD 2,000 奖赏！达标还可赚 10% 港元定存年利率！<br>3️⃣ 个真心推荐 ZA Bank 的原因<br>💛 全线上开户，无需前往分行<br>💛 无最低存款要求，零账户管理费<br>💛 24x7 银行服务<br>立即用我的专属邀请码 [SP25V7] 在港开户啦！投资涉及风险。受条款及细则约束。<br><a href="https://l.za.group/DFt1U">https://l.za.group/DFt1U</a><br>*此资料仅可于香港境内分发或传阅，在未经本行授权下，任何人不得在香港境外复制，分发或传阅此资料（查看更多：<a href="https://l.za.group/iAF3x%EF%BC%89%E3%80%82">https://l.za.group/iAF3x）。</a></p><p>立即开户 👇<br><a href="https://l.za.group/nb5Es">https://l.za.group/nb5Es</a></p></blockquote><h3 id="1-4-蚂蚁银行-Ant-Bank"><a href="#1-4-蚂蚁银行-Ant-Bank" class="headerlink" title="1.4 蚂蚁银行 Ant Bank"></a>1.4 蚂蚁银行 Ant Bank</h3><p>推荐开户，这样可以 Ant Bank &lt;-&gt; AliPay HK &lt;-&gt; Alipay, 极速入金，会有较少的手续费。</p><h2 id="二、关于券商：盈立AFF"><a href="#二、关于券商：盈立AFF" class="headerlink" title="二、关于券商：盈立AFF"></a>二、关于券商：盈立AFF</h2><h3 id="2-1-入金方式"><a href="#2-1-入金方式" class="headerlink" title="2.1 入金方式"></a>2.1 入金方式</h3><ul><li>内地与香港<ul><li>最佳的入金方式：中国银行和中国银行香港互转，但是时间较长</li><li>可行的入金方式：蚂蚁银行，使用Alipay互转，时间最快</li><li>Other银行转账：广州兴业寰宇银行</li><li>普通银行转账：手续费、电汇费剧高</li></ul></li><li>香港互转<ul><li>银行转账：填写信息繁琐</li><li>FPS转账：转数快可以快速转账</li></ul></li></ul><h3 id="2-2-券商选择：盈立"><a href="#2-2-券商选择：盈立" class="headerlink" title="2.2 券商选择：盈立"></a>2.2 券商选择：盈立</h3><p>现在很多银行的开户政策逐渐收紧，例如需要海外工作证明 or 香港居住地址，当然需要注意交易费用和安全性的Trade off。</p><blockquote><p>利益相关：「盈立证券」开通 vd6l9</p><p>多友 · 多赏｜邀请好友齐享高达 HK$1,900 uSMART奖赏现金券 + NVIDIA股票<em>，只要分享者成功邀请好友开户，分享者及被邀者都可获得奖励。</em>优惠受条款约束<br><a href="https://m.usmart66.com/u/1-0200c0cd2E">https://m.usmart66.com/u/1-0200c0cd2E</a></p></blockquote><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/image-30.png" alt="image 30" style="zoom: 33%;" /><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/image-28.png" alt="image 28" style="zoom:33%;" /><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/image-29.png" alt="image 29" style="zoom:33%;" /><h2 id="三、One-more-thing：香港游玩攻略"><a href="#三、One-more-thing：香港游玩攻略" class="headerlink" title="三、One more thing：香港游玩攻略"></a>三、One more thing：香港游玩攻略</h2><ol><li>HK和纽约城市规划很像，小小的城市、大大的高楼</li><li>有很多好逛的店，有很香的柔顺剂</li><li>游玩地点：尖沙咀、维多利亚港、天星小轮、中环</li><li>购物建议：港版iPhone、曲奇四重奏、柔顺剂、跌打酒</li></ol><table><thead><tr><th><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/image-20250923201930965.png" alt="image-20250923201930965" style="zoom: 25%;" /></th><th><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/image-20250923201950744.png" alt="image-20250923201950744" style="zoom:25%;" /></th><th><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/image-20250923202005516.png" alt="image-20250923202005516" style="zoom:25%;" /></th></tr></thead><tbody><tr><td><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/image-20250923202017818.png" alt="image-20250923202017818" style="zoom:25%;" /></td><td><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/image-20250923202040287.png" alt="image-20250923202040287" style="zoom: 25%;" /></td><td><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/image-20250923202220468.png" alt="image-20250923202220468" style="zoom:25%;" /></td></tr><tr><td><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/image-20250923202420637.png" alt="image-20250923202420637" style="zoom:25%;" /></td><td>利益相关ZA BANK：邀请码SP25V7，注册链接去众安银行开户，赚价值 HKD 2,000 奖赏！达标还可赚 10% 港元定存年利率！<br/></td><td>「盈立证券」开通邀请码 vd6l9<br />uSMART奖赏现金券 + NVIDIA股票*，只要分享者成功邀请好友开户，分享者及被邀者都可获得奖励。</td></tr></tbody></table><p>参考链接</p><p>【1】香港保险Cindy，<a href="https://xueqiu.com/1734181754/288501209">https://xueqiu.com/1734181754/288501209</a></p><p>【2】<a href="https://xiaowan.hk/stock/">https://xiaowan.hk/stock/</a></p>]]>
    </content>
    <id>https://blog.tjdata.site/posts/28502.html</id>
    <link href="https://blog.tjdata.site/posts/28502.html"/>
    <published>2025-09-23T12:29:15.000Z</published>
    <summary>
      <![CDATA[<h2 id="TL；DR"><a href="#TL；DR" class="headerlink" title="TL；DR"></a>TL；DR</h2><ul>
<li>这篇指南  1. 开设港卡、2.了解入金、3. 港美股券商开设建议。</li>
<li>港卡开户目的为获]]>
    </summary>
    <title>香港开户总结-2025-附香港游玩攻略</title>
    <updated>2025-09-23T12:34:18.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>chenlongxu</name>
    </author>
    <category term="生活杂谈" scheme="https://blog.tjdata.site/categories/%E7%94%9F%E6%B4%BB%E6%9D%82%E8%B0%88/"/>
    <category term="旅行" scheme="https://blog.tjdata.site/tags/%E6%97%85%E8%A1%8C/"/>
    <content>
      <![CDATA[<h2 id="TL-DR"><a href="#TL-DR" class="headerlink" title="TL;DR"></a>TL;DR</h2><p>时间真是过的太快了，在学术生涯末期有幸参与TRB学术会议，同时也是一次学术旅游的机会！第一次去美国真的非常痛苦</p><h2 id="一、行程安排"><a href="#一、行程安排" class="headerlink" title="一、行程安排"></a>一、行程安排</h2><p><strong>1 月 3 日晚：从浦东出发（白天）1 月 3 日晚：威尔逊机场</strong></p><p><strong>1 月 4 日白天【纽约】：纽约</strong>🥯<strong>，时代广场，灰狗</strong>🚌<strong>，到达 Airbnb</strong> 🏠</p><p><strong>1 月 5 日白天【华盛顿】：早中饭</strong> 🥚<strong>，华盛顿</strong>🪦<strong>，国家历史博物馆，TRB 会场，Trade Joey 杂货铺</strong></p><p><strong>1 月 6 日【华盛顿】：大汉堡</strong>🍔<strong>，会议，</strong></p><p><strong>1 月 7 日【华盛顿】：香水，购物，奥莱购物</strong></p><p><strong>1 月 8 日【华盛顿】：三大博物馆，航空航天博物馆、艺术博物馆、自然历史博物馆</strong></p><p><strong>1</strong> <strong>月</strong> <strong>9</strong> <strong>日【纽约】：特种兵的一天，中央公园、大都会博物馆</strong>🎨<strong>、任天堂限定</strong> 🧸<strong>、jellycat dinner</strong> 🧇<strong>、自由女神</strong>⚓️<strong>、布鲁克林大桥</strong>🌉<strong>、下城区、帝国大厦</strong> 🏢</p><h2 id="二、第一影响：城市可以很小也很大-纽约"><a href="#二、第一影响：城市可以很小也很大-纽约" class="headerlink" title="二、第一影响：城市可以很小也很大&#x2F;纽约"></a>二、第一影响：城市可以很小也很大&#x2F;纽约</h2><p>快接近13个小时的行程真的是太远，做的让人全身酥麻、做的头昏欲裂。第一次意识到地理上的距离也可以很远，可能Trump和Xi之间也不能随便打电话（因为有时差哈哈哈），好奇之间会怎么交流。</p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/IMG_9062.jpeg" alt="IMG_9062" style="zoom: 33%;" /><p>第一次到纽约被整齐的城市规划所吸引，与在HK一样是一种高楼+网格+街道之间的秩序感，城市的活动范围严格的被划分为静态的道路和动态的高楼，注意这一切并不是在土地上，而不是在各个大楼的楼层里。</p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/IMG_9089.jpeg" alt="IMG_9089"></p><p>道路上的人权和路权之间划分的非常清晰，或许这也是国外自动驾驶更加方便的原因吧，规则定义清晰让边界问题容易理解。唯一的缺点就是纽约的脚手架太多了，但反而让城市更有一点风味。</p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/IMG_9129.jpeg" alt="第五大道&amp;茅台"></p><p>其次不习惯的是点餐模式和小费文化。之前看过一个视频，里面说us餐馆分为谈话的和快餐式的。因此没有国内的沙县小吃、麻辣烫这种介于两者之前但仍然热乎的饭菜。落地第一顿是在小红书上搜了推荐的一家贝果，小费痛失3刀😭，但的确很大。面包的口感和国内大部分面包店不一样，人生第一次吃到大麦的层次感。</p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/IMG_9095.jpeg" alt="IMG_9095"></p><p>被震惊的纽约地铁，当公告基础设施以盈利为目的，而不是发挥交通行业的派生性作用，必然会造成其衰落。当然HK公共交通做的很好，依靠高额的费用。纽约地铁有一股腥臭味，特别是在布鲁克林一代，也是认识到双城之战的上城和下城。当然纽约地铁也不便宜 1.9刀一次</p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/IMG_9081.jpeg" alt="没有围栏的纽约地铁"></p><p>接下来坐着大巴从纽约到华盛顿,真的是非常远! 沿途看到凄凉的郊区,是一种不一样的体验。唯一影响深刻的是这里的火车底盘都很低。</p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/IMG_9199.jpeg" alt="IMG_9199"></p><h2 id="二、华盛顿特区：真的很现代"><a href="#二、华盛顿特区：真的很现代" class="headerlink" title="二、华盛顿特区：真的很现代"></a>二、华盛顿特区：真的很现代</h2><p>如果纽约是高楼城市的代表，那么华盛顿特区则是社区的典型代表，到处都是house，街道和地铁都很宽敞，当然更加验证了汽车对于US的重要性，第一眼便被华盛顿的地铁所震撼，适合纽约不一样的体验。</p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/IMG_9204.jpeg" alt="IMG_9204"></p><p>第一次正宗的brunch，在工作后发现一天吃两顿似乎是合理的。没有规则说一天必须三顿 或者五顿，结合现代社会紧凑的工作节奏，在11:00～13:00来一顿足够丰盛的brunch，在晚上18:00来一次正餐，期间可以通过下午茶、水果、牛奶、咖啡等补充体力，似乎更适合节奏。因为早起并不适合非农耕文化。</p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/IMG_9221.jpeg" alt="IMG_9221"></p><p>政府单位并不是只是办公地点，也是政府权威的象征，所以xx权神授仍然如此，很多政府大楼非常的雄伟和庄严，让我想到饼叔提到的奢侈品商店也是，通过维护庄严的地域来让人失去主观性、进而上头，似乎互联网的公司也是这样。其实不过是草台班子罢了。</p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/IMG_9295.jpeg" alt="IMG_9295"></p><p>来一个地方一定要去Apple store，正好遇到下雪的🍎，真的是非常棒的体验。在会议上与一些从未谋面的人探讨这相同的话题，意识到枯燥的世界上也是有一些共鸣的人，在这个corner中并不孤单。</p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/IMG_9410.jpeg" alt="IMG_9410"></p><p>第二天的brunch点了一杯伦敦雾，茶真的很难喝，不过幸亏吃到了大米饭。</p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/IMG_9571.jpeg" alt="IMG_9571"></p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/IMG_9569.jpeg" alt="IMG_9569"></p><p>傍晚和好友去outlets购物，突然想到两个人去这么远的地方有点risky，晚上回来在寒风中纸币不小心飞出来被路过的黑鬼看到了，然后就被“can you help me”爆了金币</p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/IMG_9610.jpeg" alt="IMG_9610"></p><p>数天的学术会议结束后就扔掉了自己的海报，和这一段过去说再见。很痛苦、很感恩时刻表项目，几乎伴随着我四年的时间，让我意识大家的能力、社会的合作是多么的困难，也认识到个人的能力也可以很大，持续坚持下去一定会有结果的，相信自己。</p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/IMG_9604_%E5%89%AF%E6%9C%AC.jpeg" alt="IMG_9604_副本"></p><h2 id="三、特别篇SE：华盛顿特区博物馆"><a href="#三、特别篇SE：华盛顿特区博物馆" class="headerlink" title="三、特别篇SE：华盛顿特区博物馆"></a>三、特别篇SE：华盛顿特区博物馆</h2><p>美国国家历史博物馆：正好遇到了交通篇，很棒的体验。</p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/IMG_9304.jpeg" alt="IMG_9304"></p><p>惊喜的看到初代Apple-II</p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/IMG_9310.jpeg" alt="IMG_9310"></p><p>国家航空航天博物馆</p><p>阿波罗11号，全体人类社会的结晶，很难想象七十多年前将三个人送到月球上是什么体验，只有做好每一步才能完成伟大的事业</p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/IMG_9700.jpeg" alt="IMG_9700"></p><p>艺术博物馆</p><p>看了很多画家的展不禁好奇：“为什么他们要作画呢”，只是想通过图片的方式表达自己，袒露自己对世界的看法，展示自己对人生的认知，这没有什么不好，这是超过仅仅活着的意义，有想法的表达自己真的太酷了！</p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/IMG_9753.jpeg" alt="IMG_9753"></p><h2 id="四、最后一站：纽约特种兵"><a href="#四、最后一站：纽约特种兵" class="headerlink" title="四、最后一站：纽约特种兵"></a>四、最后一站：纽约特种兵</h2><p>坐着美国高铁从华盛顿到纽约，感觉舒适度其实也还行，检票采用传统的人工方式，虽然说中国高铁很长，但是要知道美国在上个世纪五十年代疯狂建铁路的遗产，让其现在仍然是世界第一</p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/IMG_9797.jpeg" alt="IMG_9797"></p><p>深夜灯火通明的纽约才是许多人的梦想吧，不过这个也很纽约规定晚上不许关灯有关，似乎是担心鸟撞击大楼</p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/IMG_9806.jpeg" alt="IMG_9806"></p><p>冬天的中央公园很荒凉，但是难以置信在这么大的高楼密布的城市里居然会有如此大的公园，很棒</p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/IMG_9875.jpeg" alt="IMG_9875"></p><p>大都会博物馆真的太痛心了，看到了好多来自于各个国家和地区的宝藏，包括但不限于法老、佛像、庭院、绘画等等</p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/IMG_9921.jpeg" alt="IMG_9921"></p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/IMG_9944.jpeg" alt="IMG_9944"></p><p>做自由女神像邮轮可以看到纽约和新泽西，很奇妙的体验，百年前可能很多人都会喊出 America吧</p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/IMG_0131.jpeg" alt="IMG_0131"></p><p>夜晚的布鲁克林真的非常危险</p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/IMG_0181.jpeg" alt="IMG_0181"></p><p>最后再看一眼纽约吧</p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/IMG_0220.jpeg" alt="IMG_0220"></p><h2 id="五、感悟"><a href="#五、感悟" class="headerlink" title="五、感悟"></a>五、感悟</h2><ol><li>表达自己比做对事情更重要，儒家文化和应试教育给了我们太多条条框框，但是生活并不需要这么多约束</li><li>城市也是可以有很多风格的</li></ol><p>还是中国饭适合中国胃～</p>]]>
    </content>
    <id>https://blog.tjdata.site/posts/1361.html</id>
    <link href="https://blog.tjdata.site/posts/1361.html"/>
    <published>2025-07-19T01:35:47.000Z</published>
    <summary>
      <![CDATA[<h2 id="TL-DR"><a href="#TL-DR" class="headerlink" title="TL;DR"></a>TL;DR</h2><p>时间真是过的太快了，在学术生涯末期有幸参与TRB学术会议，同时也是一次学术旅游的机会！第一次去美国真的非常痛苦</p]]>
    </summary>
    <title>US旅行游记第一次-2025年</title>
    <updated>2025-07-19T03:43:06.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>chenlongxu</name>
    </author>
    <category term="生活杂谈" scheme="https://blog.tjdata.site/categories/%E7%94%9F%E6%B4%BB%E6%9D%82%E8%B0%88/"/>
    <category term="计算广告" scheme="https://blog.tjdata.site/tags/%E8%AE%A1%E7%AE%97%E5%B9%BF%E5%91%8A/"/>
    <content>
      <![CDATA[<p>在广告系统中，主要存在三个核心角色：广告主、媒体平台和消费者。这三者之间形成了一个相互依存的生态系统。</p><ul><li>广告主：投入广告预算（quota），期望获得最大的营销效果（conversion）和投资回报（ROI）</li><li>媒体平台：提供广告展示空间（VV），需要平衡<strong>用户体验（多维）</strong>和<strong>广告收入</strong></li><li>消费者：获取免费或低价内容服务，同时被动接受广告信息</li></ul><h2 id="一、如何售卖广告？"><a href="#一、如何售卖广告？" class="headerlink" title="一、如何售卖广告？"></a>一、如何售卖广告？</h2><h3 id="1-直接投放"><a href="#1-直接投放" class="headerlink" title="1. 直接投放"></a>1. 直接投放</h3><ul><li>通过自有广告平台或代理公司直接购买广告位</li><li>可以更好地控制广告预算和投放策略</li><li>适合大型品牌和有稳定广告需求的企业</li></ul><h3 id="2-广告网络"><a href="#2-广告网络" class="headerlink" title="2. 广告网络"></a>2. 广告网络</h3><ul><li>加入广告联盟或广告网络平台</li><li>可以覆盖更广泛的媒体资源</li><li>支持更灵活的预算管理和投放调整</li></ul><h3 id="3-实时竞价（RTB）"><a href="#3-实时竞价（RTB）" class="headerlink" title="3. 实时竞价（RTB）"></a>3. 实时竞价（RTB）</h3><ul><li>参与程序化广告购买</li><li>根据目标受众特征实时出价</li><li>可以实现更精准的人群触达</li></ul><p>广告主通常会根据自身需求和预算规模，选择合适的广告售卖方式或采用多种方式组合。</p><h2 id="二、eCPM-是什么？"><a href="#二、eCPM-是什么？" class="headerlink" title="二、eCPM 是什么？"></a>二、eCPM 是什么？</h2><p>eCPM（每千次展示收益）是衡量广告效果的重要指标，对不同角色具有不同的意义：</p><h3 id="对广告主而言"><a href="#对广告主而言" class="headerlink" title="对广告主而言"></a>对广告主而言</h3><p>eCPM 帮助广告主：</p><ul><li>评估广告投放效率</li><li>优化预算分配</li><li>比较不同渠道的成本效益</li></ul><h3 id="对媒体平台而言"><a href="#对媒体平台而言" class="headerlink" title="对媒体平台而言"></a>对媒体平台而言</h3><p>eCPM 帮助平台：</p><ul><li>衡量广告位价值</li><li>优化广告投放策略</li><li>评估整体商业化效果</li></ul><h3 id="对消费者而言"><a href="#对消费者而言" class="headerlink" title="对消费者而言"></a>对消费者而言</h3><p>虽然消费者可能不直接关注 eCPM，但它间接影响：</p><ul><li>用户体验的质量</li><li>免费服务的可持续性</li><li>广告相关性和价值</li></ul><h2 id="三、受到那些因素的影响？"><a href="#三、受到那些因素的影响？" class="headerlink" title="三、受到那些因素的影响？"></a>三、受到那些因素的影响？</h2><table><thead><tr><th><strong>影响因素类别</strong></th><th><strong>具体因素</strong></th><th><strong>对 eCPM 的影响方式</strong></th></tr></thead><tbody><tr><td>流量质量</td><td>·用户画像精准度  用户活跃度  流量来源质量</td><td>高质量流量通常带来更高的点击率和转化率，直接提升 eCPM。优质用户群体更容易吸引高预算广告主。</td></tr><tr><td>广告位属性</td><td>·展示位置  广告形式  可见度</td><td>黄金位置、创新广告形式和高可见度会提升用户注意力，增加互动率，从而提高 eCPM。</td></tr><tr><td>季节性因素</td><td>·节假日  促销季  营销周期</td><td>在广告预算集中的季节（如双11、春节），广告主竞争加剧，推高 eCPM；淡季则可能导致 eCPM 下降。</td></tr><tr><td>竞争环境</td><td>·市场供需  竞品定价  预算分配</td><td>广告位供不应求会推高价格；竞争加剧可能降低单个媒体的议价能力；广告主预算分散会影响单位收益。</td></tr><tr><td>技术因素</td><td>·投放系统  定向能力  创意展示</td><td>先进的技术能提供更精准的投放、更好的创意展示效果，提升广告效果，进而提高 eCPM。</td></tr></tbody></table><h2 id="四、eCPM的变化对于各方意味着什么？"><a href="#四、eCPM的变化对于各方意味着什么？" class="headerlink" title="四、eCPM的变化对于各方意味着什么？"></a>四、eCPM的变化对于各方意味着什么？</h2><h2 id="eCPM-偏高的影响"><a href="#eCPM-偏高的影响" class="headerlink" title="eCPM 偏高的影响"></a>eCPM 偏高的影响</h2><p>对广告主：</p><ul><li>获客成本增加，可能影响广告预算的使用效率</li><li>需要更严格的ROI考核标准</li><li>可能降低广告投放的规模和持续性</li></ul><p>对媒体平台：</p><ul><li>短期内获得更高的广告收入</li><li>可能导致广告主流失，影响长期收益</li><li>有利于提升平台议价能力</li></ul><p>对消费者：</p><ul><li>可能面临更多的高价值广告展示</li><li>广告主为保证ROI可能提供更好的产品和服务</li><li>平台有更多资源提升用户体验</li></ul><h2 id="eCPM-偏低的影响"><a href="#eCPM-偏低的影响" class="headerlink" title="eCPM 偏低的影响"></a>eCPM 偏低的影响</h2><p>对广告主：</p><ul><li>获得更高的性价比和投资回报</li><li>可以扩大广告投放规模</li><li>有更多预算用于测试和优化</li></ul><p>对媒体平台：</p><ul><li>广告收入下降，可能影响运营可持续性</li><li>议价能力降低，在广告市场中处于劣势</li><li>需要通过提升流量来弥补收入损失</li></ul><p>对消费者：</p><ul><li>可能面临更多低质量广告</li><li>平台为增加收入可能增加广告频次</li><li>服务质量可能下降due to减少的收入</li></ul><p>因此，合理的eCPM水平对维持广告生态系统的平衡至关重要，需要各方在实践中不断调整和优化。</p><h2 id="1-经济可持续性"><a href="#1-经济可持续性" class="headerlink" title="1. 经济可持续性"></a>1. 经济可持续性</h2><ul><li>广告主获得合理的投资回报率</li><li>媒体平台能够维持正常运营成本</li><li>支持长期稳定的商业合作关系</li></ul><h2 id="2-用户体验平衡"><a href="#2-用户体验平衡" class="headerlink" title="2. 用户体验平衡"></a>2. 用户体验平衡</h2><ul><li>广告展示频次和密度适中</li><li>广告内容与用户兴趣相关</li><li>不影响产品核心功能使用</li></ul><h2 id="3-市场竞争力"><a href="#3-市场竞争力" class="headerlink" title="3. 市场竞争力"></a>3. 市场竞争力</h2><ul><li>与行业平均水平保持适当比较优势</li><li>具有差异化定价的灵活性</li><li>能适应市场波动和季节性变化</li></ul><h2 id="4-技术支持"><a href="#4-技术支持" class="headerlink" title="4. 技术支持"></a>4. 技术支持</h2><ul><li>支持精准的受众定向</li><li>具备实时优化能力</li><li>提供完善的数据分析和报告</li></ul><p>合理的 eCPM 应该是一个动态平衡的结果，需要考虑多方利益，并根据市场环境和技术发展不断调整优化。</p><h1 id="思考与问题"><a href="#思考与问题" class="headerlink" title="思考与问题"></a>思考与问题</h1><p>关于 eCPM 和广告系统，我们需要思考：</p><ul><li>如何在用户体验和广告收益之间取得更好的平衡？</li><li>新技术（如人工智能）将如何改变 eCPM 的计算和优化？</li><li>未来是否会出现比 eCPM 更优的广告效果衡量指标？</li><li>在隐私保护趋严的背景下，广告定向和 eCPM 优化将何去何从？</li></ul><p>结合以上几个方面的分析，我们可以看到 eCPM 不仅是一个简单的广告效果指标，更是连接广告生态各方的重要纽带。理解和优化 eCPM，需要我们在技术、商业和用户体验等多个维度进行深入思考和实践。</p>]]>
    </content>
    <id>https://blog.tjdata.site/posts/36311.html</id>
    <link href="https://blog.tjdata.site/posts/36311.html"/>
    <published>2025-03-09T02:49:08.000Z</published>
    <summary>
      <![CDATA[<p>在广告系统中，主要存在三个核心角色：广告主、媒体平台和消费者。这三者之间形成了一个相互依存的生态系统。</p>
<ul>
<li>广告主：投入广告预算（quota），期望获得最大的营销效果（conversion）和投资回报（ROI）</li>
<li>媒体平台：提供广告展示]]>
    </summary>
    <title>如何理解广告系统</title>
    <updated>2025-03-09T03:14:42.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>chenlongxu</name>
    </author>
    <category term="计算机科学" scheme="https://blog.tjdata.site/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%A7%91%E5%AD%A6/"/>
    <category term="数据工程" scheme="https://blog.tjdata.site/tags/%E6%95%B0%E6%8D%AE%E5%B7%A5%E7%A8%8B/"/>
    <content>
      <![CDATA[<p>该系列文章主要介绍下列基本概念：</p><ol><li>数据仓库、数据湖、数据湖仓</li><li>云存储平台 AWS、Azure、Google cloud</li><li>优化数据存储</li><li>大数据手段 Apache Spark、Kafka</li><li>实时数据处理 ETL</li><li>事件驱动架构 EDA</li><li>其他 topic：数据关联、xAI、推理计算、无限存储、人类在环集成</li></ol><p>帮助更好的理解数据的方式</p><h1 id="一、数据仓库、数据湖、数据湖仓"><a href="#一、数据仓库、数据湖、数据湖仓" class="headerlink" title="一、数据仓库、数据湖、数据湖仓"></a>一、数据仓库、数据湖、数据湖仓</h1><h2 id="1-1-历史"><a href="#1-1-历史" class="headerlink" title="1.1 历史"></a>1.1 历史</h2><p>数据仓库（data  warehouses）作为商业手段从 Oracle、SAP 公司起源，<strong>公司由此从不同的数据源构建集中的数据库，并使用商业智能工具开展分析</strong></p><p>数据湖（data lakes）从<strong>非结构化</strong>或<strong>半结构化</strong>数据存储需求的发展，数据湖常用语存储原始数据（结构化和非结构化），例如包括<em>社交媒体的照片、推文等</em></p><p>数据湖仓（data lakehouse）结合了数据仓库和数据湖的结果，由公司<em>Databricks</em>提出自己的<em>Delta lake</em>，核心有点在于<strong>允许 存储和查询非结构化数据 in 数据湖仓，和结构化数据 in 数据仓库 中一样</strong>，解决了<strong>数据库通常受到限制，数据湖通常难以搜索的缺点</strong></p><h2 id="1-2-为什么需要这些结构？"><a href="#1-2-为什么需要这些结构？" class="headerlink" title="1.2 为什么需要这些结构？"></a>1.2 为什么需要这些结构？</h2><p>从 2000 年互联网爆炸开始，个人和企业生产的数据开始越来越多。由此面临的挑战包括：</p><ol><li>数据集成，在多源数据集合的基础上，复杂的 ETL、ELT 技术</li><li>拓展性和成本，数据库昂贵，数据湖容易造成数据混乱，数据湖仓需要技术投资</li><li>数据获取，各种权限要求</li></ol><h1 id="二、云平台-AWS、Azure、Google-CLoud"><a href="#二、云平台-AWS、Azure、Google-CLoud" class="headerlink" title="二、云平台 AWS、Azure、Google CLoud"></a>二、云平台 AWS、Azure、Google CLoud</h1><p>这些平台提供了可扩展的存储基础设置，同时用此存储数据并使用商业智能分析手段智能的。</p><h2 id="2-1-个人常常面临的挑战"><a href="#2-1-个人常常面临的挑战" class="headerlink" title="2.1 个人常常面临的挑战"></a>2.1 个人常常面临的挑战</h2><ol><li>在准备我的 Salesforce Data Cloud 认证（这是一个数据湖仓）时，我发现自己陷入了一个全新的术语海洋——这些术语都是 Salesforce 生态中特有的。每个云平台都有自己独特的术语和工具，这使得企业员工需要花费大量时间来熟悉这些内容。</li><li>数据存储在云端，所以必须明确访问控制权限</li></ol><h1 id="三、优化数据存储"><a href="#三、优化数据存储" class="headerlink" title="三、优化数据存储"></a>三、优化数据存储</h1><p>更大的数据意味着更多的成本</p><ol><li>删除冗余或者不必要的数据进行数据压缩</li><li>数据分区，将大型数据集拆分成更小的部分</li><li>选择合适的存储格式优化存储效率和查询性能</li></ol><h1 id="四、大数据手段-Apache-Spark、Kafka"><a href="#四、大数据手段-Apache-Spark、Kafka" class="headerlink" title="四、大数据手段 Apache Spark、Kafka"></a>四、大数据手段 Apache Spark、Kafka</h1><p>上述 1-3 介绍如何高效的存储数据，而大数据技术让我们可以处理 ta 更加高效，包括使用实时流（Real-time）或者批处理（Batch）方法</p><ul><li>Spark，是一个框架可以分布式处理框架用于机器学习、数据工程、ETL 处理方式</li><li>Kafks，是一种实时数据流处理应用，比如金融或者物流企业</li></ul><p>其中面临的挑战：</p><ol><li>实施的困难，这一套系统构建和维护需要工程技术</li><li>数据质量，收集的数据需要确定数据的有效性</li></ol><h1 id="五、数据集中手段"><a href="#五、数据集中手段" class="headerlink" title="五、数据集中手段"></a>五、数据集中手段</h1><p>ETL（Extract-transformer-loading）描述不同集成和处理数据手段</p><h1 id="六、事件驱动架构"><a href="#六、事件驱动架构" class="headerlink" title="六、事件驱动架构"></a>六、事件驱动架构</h1><p>如果我们能够（几乎）实时地在系统之间传输数据，我们同样希望能够（几乎）实时地对其做出反应：这就是<strong>事件驱动架构（Event-Driven Architecture，EDA）</strong>的应用场景。</p><p>EDA 是一种<strong>以事件为驱动</strong>的架构模式，其中应用程序的运行由事件触发。事件是系统中任何相关的状态变化，例如用户登录应用程序，或接收到一笔支付。架构中的各个组件对这些事件作出响应，而无需彼此直接连接，从而提高了应用的<strong>灵活性和可扩展性</strong>。</p><p>典型的技术实现包括 <strong>Apache Kafka</strong> 或 <strong>AWS EventBridge</strong>。</p><h1 id="七、可解释性与xAI"><a href="#七、可解释性与xAI" class="headerlink" title="七、可解释性与xAI"></a>七、可解释性与xAI</h1><p>xAI：从模型角度解析模型是如何取得成果的</p><p>数据血统：通过可追溯的数据来了解数据来自哪里，如何处理并最终如何被使用</p><h1 id="八、生成式AI"><a href="#八、生成式AI" class="headerlink" title="八、生成式AI"></a>八、生成式AI</h1><p>包括AI、LLM、Agents 等术语</p><h1 id="九、人类在环-human-in-the-loop"><a href="#九、人类在环-human-in-the-loop" class="headerlink" title="九、人类在环 human-in-the-loop"></a>九、人类在环 human-in-the-loop</h1><p>将人类和人工智能之间的合作优势结合起来：</p><ol><li>人工智能的优势在于模型可以有效的处理大量的数据，帮助人们发现其中难以识别的模式</li><li>人类的优势在于没有事先训练的情况下将判断力、到的、创造力和理解能力放到工作中，并有能力面对不可预知的情况</li></ol><p>面临的问题在于：</p><ol><li>两者之间缺乏协同作用和不信任，似乎缺乏直观的界面，是的人类更容易与人工智能工具进行足够有效的互动</li><li>人工智能当前的技术限制，难以理解逻辑一致性和上下文，这可能会导致错误或者不准确的结果</li></ol><p><a href="https://LTAI5tNwHtQGucyrs15ssbvo@chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/s41562-024-02024-1.pdf">Humans and AI: Do they work better together or alone?</a></p><h2 id="参考链接"><a href="#参考链接" class="headerlink" title="参考链接"></a>参考链接</h2><p><a href="https://towardsdatascience.com/the-concepts-data-professionals-should-know-in-2025-part-1-47e7e797801d">https://towardsdatascience.com/the-concepts-data-professionals-should-know-in-2025-part-1-47e7e797801d</a></p>]]>
    </content>
    <id>https://blog.tjdata.site/posts/6123.html</id>
    <link href="https://blog.tjdata.site/posts/6123.html"/>
    <published>2025-01-23T02:20:53.000Z</published>
    <summary>
      <![CDATA[<p>该系列文章主要介绍下列基本概念：</p>
<ol>
<li>数据仓库、数据湖、数据湖仓</li>
<li>云存储平台 AWS、Azure、Google cloud</li>
<li>优化数据存储</li>
<li>大数据手段 Apache Spark、Kafka</li>]]>
    </summary>
    <title>2025 年度后数据工程需要了解的基本概念</title>
    <updated>2025-01-23T03:03:34.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>chenlongxu</name>
    </author>
    <category term="算法基础" scheme="https://blog.tjdata.site/categories/%E7%AE%97%E6%B3%95%E5%9F%BA%E7%A1%80/"/>
    <category term="因果推断" scheme="https://blog.tjdata.site/tags/%E5%9B%A0%E6%9E%9C%E6%8E%A8%E6%96%AD/"/>
    <content>
      <![CDATA[<p>本文主要介绍生存分析所需要解决的问题，常见的基本概念、解决方法，帮助快速理解</p><h2 id="一、问题背景"><a href="#一、问题背景" class="headerlink" title="一、问题背景"></a>一、问题背景</h2><p>生存分析（Survival analysis）是一种统计方法，专门用于研究「事件的一系列发生节点」的时间，常见的事件列表如下：</p><ol><li>（疾病治疗）研究某种病被治疗之后的复发情况，如果复发则被认为“死亡”，如果未复发则被认为是“生存”，在这种情况下关注“复发”的医学规律</li><li>（职业升迁）在职业升迁的研究中，升迁可以看作是死亡、未升迁则可以认为是生存，升迁是终点事件，此时的生存分析主要介绍与升迁有关的规律</li></ol><p>生存分析的核心是希望得到下列结果：</p><ol><li>估计生存曲线，得到不同时间点下的生存结果</li><li>估计因果效应，包括使用Log rank 检验、广义秩和检验</li><li>影响因素识别，评价影响生存过程中的影响因素，cox 回归分析</li></ol><p>生存分析中面临的困难在于，其观察数据往往具有下列特点：</p><ol><li>偏态分布，生存时间通常具有明显的偏态分布，有正态分布假设的统计方法不能适用</li><li>删失（Censoring），研究对象在观察时间内没有事件发生，一种是中途的丢失或者退出，另一种是超过最长的随访时间时间仍然没有发生</li></ol><h2 id="二、基本概念"><a href="#二、基本概念" class="headerlink" title="二、基本概念"></a>二、基本概念</h2><h2 id="2-1-符号定义"><a href="#2-1-符号定义" class="headerlink" title="2.1 符号定义"></a>2.1 符号定义</h2><ul><li>生存时间 T 随机变量</li><li>生存函数，表示个体生存时间超过 t 的概率</li><li>生存时间累计分布函数，表示个体生存时间不超过 t 的概率</li><li>生存时间概率密度函数，为上述分布函数的导数</li><li>风险函数 hazard function，表示个体在活过时间 t 之后的瞬死概率，是回归模型的重要概念</li><li>累计风险函数 cumulative hazard function，表示累计的死亡风险</li></ul><h2 id="2-2-生存曲线"><a href="#2-2-生存曲线" class="headerlink" title="2.2 生存曲线"></a>2.2 生存曲线</h2><p>其横轴是时间、纵轴是生存率，核心是希望直观的展示不同时间点上生存率的变化情况，有助于对比不同组别之间的生存差异，同时也可以用于评估潜在的印象因素。常见的曲线包括：</p><ol><li>Kaplan-Meier 曲线，最常见的曲线</li><li>Nelson-Aalen 曲线，非参数生存曲线，绘制的累计风险（Cumulative hazard）随时间变化，直接反映时间发生的累计风险</li><li>Cumulative incidence function 曲线，用于描述在竞争性环境下的生存情况</li><li>Smoothed survival curves，使用平滑的生存曲线，用于减少数据中的噪音或小样本效应引起的不稳定性，可以通过核密度估计的方式进行平滑处理</li><li>Restricted mean survival time：用于描述特定时间段内的平均生存时间，而不是整个生存时间的曲线</li></ol><h2 id="2-2-生存曲线常见指标"><a href="#2-2-生存曲线常见指标" class="headerlink" title="2.2 生存曲线常见指标"></a>2.2 生存曲线常见指标</h2><p><strong><a href="https://zhida.zhihu.com/search?content_id=240571580&content_type=Article&match_order=1&q=%E6%80%BB%E4%BD%93%E7%94%9F%E5%AD%98%E6%9C%9F&zhida_source=entity">总体生存期</a>（Overall Survival, OS）</strong>：任何原因导致的死亡，只关心是否死亡，不考虑死亡的具体原因。用于评估患者在治疗或研究中的总体生存情况，我们一般见到的5年生存率、10年生存率等都是基于OS的。</p><p><strong><a href="https://zhida.zhihu.com/search?content_id=240571580&content_type=Article&match_order=1&q=%E6%97%A0%E8%BF%9B%E5%B1%95%E7%94%9F%E5%AD%98%E6%9C%9F&zhida_source=entity">无进展生存期</a>（Progression-Free Survival, PFS）</strong>：疾病经过治疗后没有出现进一步恶化的生存期，结局指标是发生疾病<strong>进展或死亡</strong>。PFS相比OS包含了恶化这个概念，可用于评估治疗的临床效益，也就是对疾病进展的影响，要求对<strong>疾病进展的标准</strong>进行明确的定义。</p><p><strong><a href="https://zhida.zhihu.com/search?content_id=240571580&content_type=Article&match_order=1&q=%E6%97%A0%E7%97%85%E7%94%9F%E5%AD%98%E6%9C%9F&zhida_source=entity">无病生存期</a>（Disease-Free Survival, DFS）</strong>：从随机分组开始至疾病复发或由于疾病进展导致患者死亡的时间。不考虑因何种原因死亡，只关心疾病复发或进展。用于评估治疗对疾病复发或进展的影响，常用于<a href="https://zhida.zhihu.com/search?content_id=240571580&content_type=Article&match_order=1&q=%E6%A0%B9%E6%B2%BB%E6%80%A7%E6%89%8B%E6%9C%AF%E6%B2%BB%E7%96%97&zhida_source=entity">根治性手术治疗</a>或放疗后的辅助治疗，比如乳腺癌术后<a href="https://zhida.zhihu.com/search?content_id=240571580&content_type=Article&match_order=1&q=%E5%86%85%E5%88%86%E6%B3%8C%E7%96%97%E6%B3%95&zhida_source=entity">内分泌疗法</a>等，要求对<strong>复发的标准</strong>进行明确的定义。</p><p><strong>疾病进展时间（Time to Progress, TTP）</strong>：从开始到肿瘤发生任意进展或者进展前死亡的时间。TTP相比PFS只包含了肿瘤的恶化，不包含死亡。</p><p><strong><a href="https://zhida.zhihu.com/search?content_id=240571580&content_type=Article&match_order=1&q=%E7%96%BE%E7%97%85%E7%89%B9%E5%BC%82%E6%80%A7%E7%94%9F%E5%AD%98%E6%9C%9F&zhida_source=entity">疾病特异性生存期</a>（Disease-Specific Survival, DSS）</strong>：结局指标为由<strong>特定疾病</strong>导致的死亡，只关心特定疾病引起的死亡，而不考虑其他原因。反映特定疾病的临床获益，但患者的死因可能不容易明确。</p><p><strong><a href="https://zhida.zhihu.com/search?content_id=240571580&content_type=Article&match_order=1&q=%E6%97%A0%E4%BA%8B%E4%BB%B6%E7%94%9F%E5%AD%98%E6%9C%9F&zhida_source=entity">无事件生存期</a>（Event Free Survival, EFS）</strong>：指从开始到发生任何事件的时间，这里的事件包括肿瘤进展、死亡、治疗方案的改变、致死副作用等（主要用于病程较长的恶性肿瘤或该实验方案危险性高等情况下）</p><h2 id="三、常见方法"><a href="#三、常见方法" class="headerlink" title="三、常见方法"></a>三、常见方法</h2><h3 id="3-1-描述性方法"><a href="#3-1-描述性方法" class="headerlink" title="3.1 描述性方法"></a>3.1 描述性方法</h3><p>KM 生存曲线获取方法</p><h3 id="3-2-检验方法"><a href="#3-2-检验方法" class="headerlink" title="3.2 检验方法"></a>3.2 检验方法</h3><p>比较不同组的生存曲线或检验变量对于生存时间的显著性影响</p><ul><li>对数秩检验 log-rank test</li><li>wilcoxon 检验，对生存时间不均匀的情况有较好的表现</li></ul><h3 id="3-3-建模方法"><a href="#3-3-建模方法" class="headerlink" title="3.3 建模方法"></a>3.3 建模方法</h3><p>影响因素识别、预测方法</p><ol><li>Cox 比例风险模型</li></ol><p>假设指标生存时间的分布模型，可以通过观察数据来估计模型的参数，最终利用假设的分布模型来计算生存率</p><ol start="2"><li>参数模型，通过假设生存时间服从某种特定分布来预测生存概率</li><li>加速失效时间模型 AFT，研究协变量如何加速或者减缓生存时间</li></ol><h3 id="3-4-时间依赖性方法"><a href="#3-4-时间依赖性方法" class="headerlink" title="3.4 时间依赖性方法"></a>3.4 时间依赖性方法</h3><p>用于处理协变量或者风险随时间变化的情况<br>$$<br>h(t,X) &#x3D; h_0(t)exp(\beta_1 x_1+…+\beta_n x_n)<br>$$</p><h2 id="其他"><a href="#其他" class="headerlink" title="其他"></a>其他</h2><p><a href="https://mp.weixin.qq.com/s?__biz=MzIzNjk2NDg4NA==&mid=2247483938&idx=1&sn=ae913d5a109705c950a411ccf3586f4a&chksm=e8ce9f59dfb9164f252c559e40f064265ee4a829f012ffe4ede321779af602c8b143e2d8b9a3#rd">https://mp.weixin.qq.com/s?__biz=MzIzNjk2NDg4NA==&amp;mid=2247483938&amp;idx=1&amp;sn=ae913d5a109705c950a411ccf3586f4a&amp;chksm=e8ce9f59dfb9164f252c559e40f064265ee4a829f012ffe4ede321779af602c8b143e2d8b9a3#rd</a></p>]]>
    </content>
    <id>https://blog.tjdata.site/posts/1172.html</id>
    <link href="https://blog.tjdata.site/posts/1172.html"/>
    <published>2025-01-16T06:14:48.000Z</published>
    <summary>
      <![CDATA[<p>本文主要介绍生存分析所需要解决的问题，常见的基本概念、解决方法，帮助快速理解</p>
<h2 id="一、问题背景"><a href="#一、问题背景" class="headerlink" title="一、问题背景"></a>一、问题背景</h2><p>生存分析（Sur]]>
    </summary>
    <title>生存分析基本概念、常见方法、评价指标</title>
    <updated>2025-01-16T07:32:26.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>chenlongxu</name>
    </author>
    <category term="算法基础" scheme="https://blog.tjdata.site/categories/%E7%AE%97%E6%B3%95%E5%9F%BA%E7%A1%80/"/>
    <category term="机器学习" scheme="https://blog.tjdata.site/tags/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/"/>
    <category term="强化学习" scheme="https://blog.tjdata.site/tags/%E5%BC%BA%E5%8C%96%E5%AD%A6%E4%B9%A0/"/>
    <content>
      <![CDATA[<p>这篇文章算是从第一份实习开始之后就一直想写，但是又不知道怎么表述，直到最近看到<a href="https://www.youtube.com/watch?v=YLiXgPhb8cQ&t=3s">《Rich Sutton，toward a better deep learning》</a>关于深度学习中短期学习与持续学习的讨论，才发现这是我一直想表达的：<strong>不断的训练单个模型最优并不意味着全局最优，但可悲的是团体无法跨越时间长度来追求长期价值，除非具有强有力的集权注意</strong>，希望这篇文章能带给你启发！</p><h2 id="0x01-互联网公司-与-MDP-过程"><a href="#0x01-互联网公司-与-MDP-过程" class="headerlink" title="0x01 互联网公司 与 MDP 过程"></a>0x01 互联网公司 与 MDP 过程</h2><p>回顾第一份实习已经过去一年了，依旧忘不了首次踏入互联网公司带给我的 Model shock。当时入职的是滴滴，一家国内最早开始做网约车平台的公司，车厂或者司机可以通过平台与乘客呼单即时交流来完成接送乘客的服务，在这背后需要完成大量的交易匹配、定价策略、供需调节的模型，一个常见的链路是：</p><blockquote><p>根据市场的反馈，利用收集的离线数据更新模型，并根据模型上线的效果</p></blockquote><p>而回顾带奖励的MDP 过程则是</p><blockquote><p> 智能体（Agent）根据环境（Env）输入的观察（Observation）来输出自己的选择（Action）得到对应的奖励（Rewards）并生成下一个新的状态（State）和观察（Obs），希望最大化自己的回报（Return），也就是累计奖励之和。</p></blockquote><ul><li><strong>即时奖励（Reward）</strong>：指的是在某一时刻，智能体因采取某个动作所获得的直接反馈。这是一个短期的量化反馈，可能代表了该动作在该时刻的“好坏”。</li><li><strong>长期回报（Return）</strong>：是指智能体从当前状态开始，通过一系列动作所能获得的累积奖励。它通常是未来所有奖励的折扣和加权总和。强化学习的目标不是仅仅最大化某一时刻的奖励，而是最大化 <strong>未来的累积奖励</strong>，即长期回报。</li></ul><p>类比上来看，互联网公司类似智能体，而算法工程师则是智能体的 update 策略，我们会收集离线的数据来训练我们的模型，来获取最大的短期 reward而不是 return。</p><blockquote><p>为什么我们要追求 return 而不是 reward？</p><p>强化学习的核心目标是学习到一个 <strong>最优策略</strong>，使得智能体在整个任务过程中获得最大的累积奖励。如果智能体只关注即时奖励，<strong>它可能会做出只对当前有利但不对未来有利的决策，导致整个任务的表现并不理想。</strong></p><p>例如，如果一个机器人正在玩一个游戏，它可能在某个时刻获得了很高的即时奖励，但如果它没有考虑到游戏后期的情况，它的决策可能会导致在后期失去更多的奖励。因此，智能体需要通过 <strong>长期回报</strong> 来评估当前决策的“好坏”，而不是仅仅依赖于即时反馈。</p></blockquote><p>AB 实验方法可以看作是蒙特卡洛采样 Sample，来得到对应的数据</p><p>大盘数据可以看作是自举式的 bootstrap 方法，需要 online 学习</p><p>大量的数据、产品、算法、开发根据市场需求来不断调整公司的（Policy），进而为用户的状态传递输出对应的动作。</p><h2 id="0x02-ROI和LTV"><a href="#0x02-ROI和LTV" class="headerlink" title="0x02 ROI和LTV"></a>0x02 ROI和LTV</h2><h3 id="2-1-指标计算"><a href="#2-1-指标计算" class="headerlink" title="2.1 指标计算"></a>2.1 指标计算</h3><p><strong>ROI（投资回报率）</strong>是一个用来衡量投资效益的财务指标。它通过比较投资所获得的回报与投资成本之间的比例，帮助企业或个人评估某项投资是否值得进行。ROI 是评估各种投资决策的常用工具，可以帮助确定资金投入是否产生了预期的收益。</p><p>LTV（<strong>Lifetime Value</strong>，客户生命周期价值）是一个常用的商业和营销指标，用于衡量一个客户在其与公司合作的整个生命周期中，可能为公司带来的总利润。LTV的计算通常基于客户的购买频率、购买金额、购买周期以及客户留存时间等因素。</p><h3 id="2-2-指标理解"><a href="#2-2-指标理解" class="headerlink" title="2.2 指标理解"></a>2.2 指标理解</h3><p>计算指标最终是希望衡量模型长期的优劣，上述两个指标中 ROI 可以看作是一个短期奖励，是容易看到的但是不客观的，其中 LTV 是不可计算的但是是我们追求的圣杯。</p><p>因为从用户的生命周期来看 ta 可以分为获取（A）、激活（A）、留存（R）、活跃（R）推荐（R）、流失（C）不同的阶段，不同阶段代表着不同的价值水平。如果在单次的模型迭代中仅仅关注一个维度（例如指标提升的 ROI）可能会出现下列错误：</p><ol><li>用户的留存率低，但是长期贡献的消费低，说明引入的用户是白嫖党</li><li>用户的消费水平很高，但是立刻流失，难以形成复购和转化</li><li>初始的 ROI 很低，但是用户留存率和复购率执行，可以有效的提升业务收益</li></ol><p>但是无论是互联网日星月异的变化，或者自身岗位的更迭都很难对于LTV 进行准确的计算，同时我们也没有反事实的能力去做蒙特卡洛采样，所以 AB 实验成为互联网公司的唯一准则，但是往往忘记到了环境是在改变的额</p><h3 id="2-3-TD-learning-与-MC"><a href="#2-3-TD-learning-与-MC" class="headerlink" title="2.3 TD learning 与 MC"></a>2.3 TD learning 与 MC</h3><p>TD 学习是强化学习中基本的概念，主要是采用 online 学习的思想（bootstrap 自举的方法），不断的在环境中进行探索来逼近自身估计的 return，下列两种方法的区别在于 TD target 的不同，造成学习的 TD difference 进行</p><ol><li>SARSA 的 TD target</li><li>Q learning 的 TD target</li></ol><p>不同蒙特卡洛（MC sample）方法的采样，off-line 学习的成本太大了。</p><h2 id="0x03-从宏观的-RL-到-DL"><a href="#0x03-从宏观的-RL-到-DL" class="headerlink" title="0x03 从宏观的 RL 到 DL"></a>0x03 从宏观的 RL 到 DL</h2><h3 id="3-1-数据处理-–-偏差"><a href="#3-1-数据处理-–-偏差" class="headerlink" title="3.1 数据处理 – 偏差"></a>3.1 数据处理 – 偏差</h3><p>在因果推断中核心的问题是处理观察数据中存在的偏差，但是很难有人可以讲清楚偏差是什么。从推荐系统中具体业务的角度理解可以对偏差有更加具体的认识，这里由 GPT 来总结常见的偏差类型：</p><table><thead><tr><th><strong>偏差类型</strong></th><th><strong>定义</strong></th><th><strong>表现</strong></th><th><strong>解决方法</strong></th></tr></thead><tbody><tr><td><strong>选择偏差</strong></td><td>训练数据中某些用户或物品的行为过度或不足代表。</td><td>训练数据只包含活跃用户，导致系统无法有效预测冷门用户。</td><td>确保数据采样的代表性，进行平衡采样。</td></tr><tr><td><strong>反馈偏差</strong></td><td>用户反馈受推荐系统推荐的影响，形成循环。</td><td>系统倾向推荐热门物品，忽略冷门物品或新物品。</td><td>区分离线和在线数据，使用探索策略（如多臂老虎机）。</td></tr><tr><td><strong>暴露偏差</strong></td><td>用户仅基于展示的内容进行反馈，导致物品低估。</td><td>展示频率低的物品未得到足够反馈，导致其被低估。</td><td>增加展示频率或采用探索性推荐。</td></tr><tr><td><strong>冷启动偏差</strong></td><td>没有足够历史数据时，推荐系统难以有效推荐物品或用户。</td><td>新用户或新物品无法得到足够反馈，推荐效果差。</td><td>引入基于内容的推荐或利用外部数据（如社交网络）。</td></tr><tr><td><strong>时间偏差</strong></td><td>用户行为或物品流行趋势随时间变化，训练数据未能捕捉到这种动态。</td><td>推荐过时物品，忽略用户的最新偏好。</td><td>定期更新模型，使用时间衰减函数或时间序列模型。</td></tr><tr><td><strong>稀疏性偏差</strong></td><td>用户与物品之间的交互矩阵稀疏，许多用户对大部分物品没有交互。</td><td>模型无法有效捕捉用户真实偏好。</td><td>使用矩阵分解或深度学习技术填补缺失数据，增强协同过滤。</td></tr><tr><td><strong>标签偏差</strong></td><td>训练标签不准确或具有偏差，用户点击数据未必反映真实兴趣。</td><td>点击率等指标过度偏向展示频繁内容，忽略内容多样性。</td><td>通过多种反馈信号（如停留时间、评分）来综合评估用户兴趣。</td></tr><tr><td><strong>用户偏差</strong></td><td>用户行为的偏差影响推荐效果，某些用户只关注特定类型物品。</td><td>模型过于依赖用户历史行为，忽略潜在兴趣。</td><td>引入用户画像和多种特征，增强推荐个性化和多样性。</td></tr><tr><td><strong>上下文偏差</strong></td><td>用户偏好与环境因素（时间、地点、设备）相关，忽略这些信息会产生偏差。</td><td>忽略上下文时，推荐结果可能不适合特定场景或时间。</td><td>融入上下文信息，如设备、地点、时间等。</td></tr></tbody></table><p>核心偏差的问题在于训练模型时候的状态是不一致的，我们无法单纯的输出动作到奖励之间的相关关系，而是需要考虑环境输出状态的变化造成的影响。但是往往是我们将状态S + 收集的短期数据来进行训练，依旧无法很好的保证在之后下一个 S 下的结果，因为环境是在变化的，而离线评估的结果往往也会收到状态的影响造成的偏差影响。</p><h3 id="3-2-重要性采样-–-去偏"><a href="#3-2-重要性采样-–-去偏" class="headerlink" title="3.2 重要性采样 – 去偏"></a>3.2 重要性采样 – 去偏</h3><p>可以和倾向性分数（PS）的角度去理解，这里忽略</p><h3 id="3-3-To-be-continuing"><a href="#3-3-To-be-continuing" class="headerlink" title="3.3 To be continuing"></a>3.3 To be continuing</h3>]]>
    </content>
    <id>https://blog.tjdata.site/posts/45280.html</id>
    <link href="https://blog.tjdata.site/posts/45280.html"/>
    <published>2024-12-08T09:10:05.000Z</published>
    <summary>
      <![CDATA[<p>这篇文章算是从第一份实习开始之后就一直想写，但是又不知道怎么表述，直到最近看到<a href="https://www.youtube.com/watch?v=YLiXgPhb8cQ&t=3s">《Rich Sutton，toward a better deep learn]]>
    </summary>
    <title>ROI_监督学习_一次性学习, LTV_强化学习_持续学习</title>
    <updated>2024-12-08T12:41:04.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>chenlongxu</name>
    </author>
    <category term="生活杂谈" scheme="https://blog.tjdata.site/categories/%E7%94%9F%E6%B4%BB%E6%9D%82%E8%B0%88/"/>
    <category term="数字移民" scheme="https://blog.tjdata.site/tags/%E6%95%B0%E5%AD%97%E7%A7%BB%E6%B0%91/"/>
    <content>
      <![CDATA[<p>因为希望开通 OPENAI-API，需要有美区发行的信用卡，由此折腾了虚拟信用卡 wildcard、国内 MasterCard、美区 PayPal 来完成 OPENAI、App Store、Amazon 海淘等过程，以下为小白经验贴，如有不对的地方欢迎指正</p><h2 id="一、支付方式简介"><a href="#一、支付方式简介" class="headerlink" title="一、支付方式简介"></a>一、支付方式简介</h2><p>支付方式通常可以分为：银行卡支付、移动支付、数字钱包、银行转账、加密货币、预付卡、电子支票等方式，这里注重解释前三者：</p><ol><li>银行卡支付（Bank card payment），进一步分为信用卡（Credit card）和借记卡（Debit card）</li><li>移动支付（Mobile payment），包括 Apple pay、Google Pay、支付宝（Alipay）、微信支付（WeChat Pay）</li><li>数字钱包（Digital wallet and Online Payment），包括 Paypal、Venmo 等等</li></ol><p>支付中的参与方包括：</p><ol><li>发卡机构（Issuer），通常为银行，负责提供卡片</li><li>支付网络（Payment Network），连接发卡机构和收单机构的中介，处理交易请求和验证</li><li>收单机构（Acquirer），为商户提供银行卡支付处理服务的金融机构</li><li>商户（Merchant），提供商品或者服务的商家</li></ol><p>支付网络可以分为</p><ol><li>**全球性支付网络 (Global Payment Networks)**：这些网络覆盖全球，适用于国际和跨境交易。常见的全球性支付网络包括：</li></ol><p>•<strong>Visa</strong>：覆盖全球的大型信用卡和借记卡支付网络。</p><p>•<strong>MasterCard</strong>：全球通用的支付网络，支持信用卡、借记卡等多种支付方式。</p><p>•<strong>American Express</strong>：提供信用卡支付，覆盖全球多个国家，主要采用三方模式。</p><p>•**UnionPay (银联)**：在中国广泛使用，近年来也在全球扩展，支持信用卡、借记卡和二维码支付。</p><ol><li>**地区性支付网络 (Regional Payment Networks)**：这些支付网络主要在特定区域内使用，通常只支持该地区的银行账户或支付工具。</li></ol><p>•<strong>JCB</strong>（日本）：在亚洲和一些欧洲、北美市场使用广泛。</p><p>•<strong>Interac</strong>（加拿大）：用于加拿大的借记卡支付。</p><p>•<strong>Elo</strong>（巴西）：在巴西使用的支付网络，支持借记和信用支付。</p><p>•<strong>RuPay</strong>（印度）：主要用于印度国内支付。</p><h2 id="二、支付需求"><a href="#二、支付需求" class="headerlink" title="二、支付需求"></a>二、支付需求</h2><h3 id="2-1-OPENAI-支付要求"><a href="#2-1-OPENAI-支付要求" class="headerlink" title="2.1 OPENAI 支付要求"></a>2.1 OPENAI 支付要求</h3><p>支付要求包括</p><blockquote><p>OpenAI 的充值支付方式要求包括以下几点：</p><ol><li><strong>国际信用卡或借记卡</strong>：支持 Visa、MasterCard 和 American Express 等主流国际卡。确保卡片具有国际支付功能，国内银行的银联卡通常不支持。</li><li><strong>PayPal</strong>：在部分地区，OpenAI 也支持通过 PayPal 支付。需要一个经过验证的 PayPal 账户，并关联到支持国际支付的信用卡或银行账户。</li><li><strong>Apple Pay 和 Google Pay</strong>：部分移动端支持 Apple Pay 或 Google Pay 付款，但前提是这些支付账户也必须关联到支持国际支付的信用卡或借记卡。</li><li><strong>虚拟卡</strong>：部分虚拟卡（如虚拟预付卡）可能会被接受，但成功率不高，因为 OpenAI 对支付账户的真实性验证较为严格。</li><li><strong>支付地区限制</strong>：目前 OpenAI 充值服务并非对所有国家和地区开放，部分地区可能无法使用其服务，需参考 OpenAI 官网的支持列表。</li></ol><p>建议在充值前确保支付方式符合以上条件，并检查账户的国际支付功能是否开启，以避免支付失败。</p></blockquote><h3 id="2-2-Amazon-支付要求"><a href="#2-2-Amazon-支付要求" class="headerlink" title="2.2 Amazon 支付要求"></a>2.2 Amazon 支付要求</h3><blockquote><ol><li><strong>信用卡和借记卡</strong>：亚马逊支持主要的国际信用卡和借记卡品牌，如 Visa、MasterCard、American Express、Discover 等。在中国，您可以使用带有银联标识的信用卡或借记卡进行支付。</li><li><strong>第三方支付平台</strong>：在亚马逊中国（<a href="http://amazon.cn/">Amazon.cn</a>），您可以使用支付宝和微信支付等本地支付方式。</li></ol></blockquote><h3 id="2-3-Apple-Store-美区支付要求"><a href="#2-3-Apple-Store-美区支付要求" class="headerlink" title="2.3 Apple Store 美区支付要求"></a>2.3 Apple Store 美区支付要求</h3><blockquote><p>•<strong>美国发行的信用卡或借记卡</strong>：Apple Store 接受由美国银行发行的 Visa、MasterCard、American Express 等信用卡或借记卡。</p><p>•<strong>美国 PayPal 账户</strong>：您可以将美国 PayPal 账户绑定到您的 Apple ID 作为支付方式。</p><p>•<strong>Apple 礼品卡</strong>：购买并兑换美国地区的 Apple 礼品卡，可将其余额用于支付。</p></blockquote><h3 id="2-4-Paypal-支付方式要求"><a href="#2-4-Paypal-支付方式要求" class="headerlink" title="2.4 Paypal 支付方式要求"></a>2.4 Paypal 支付方式要求</h3><blockquote><ol><li><strong>有效的支付方式</strong>：</li></ol><p>•<strong>美国银行账户</strong>：您可以将美国的银行账户关联到您的 PayPal 账户，用于充值和支付。</p><p>•<strong>信用卡或借记卡</strong>：PayPal 支持 Visa、MasterCard、American Express 等主要信用卡和借记卡。确保您的卡片已关联到 PayPal 账户。</p><ol><li><strong>美国账单地址</strong>：在设置支付方式时，通常需要提供一个有效的美国账单地址。您可以使用真实的美国地址，或通过地址生成器获取。</li><li><strong>美国电话号码</strong>：在某些情况下，可能需要提供一个美国电话号码。您可以使用虚拟号码服务，或通过其他方式获取。</li><li><strong>账户验证</strong>：为确保账户安全，PayPal 可能要求您验证关联的银行卡或银行账户。验证过程可能包括小额扣款或其他确认步骤。</li></ol></blockquote><h2 id="三、折腾记录"><a href="#三、折腾记录" class="headerlink" title="三、折腾记录"></a>三、折腾记录</h2><h3 id="3-1-信用卡"><a href="#3-1-信用卡" class="headerlink" title="3.1 信用卡"></a>3.1 信用卡</h3><p><strong>第一种是开通虚拟卡</strong>，这里选择 wildcard 平台</p><p>非常方便但是需要付出手续费，我刚用不到 5 分钟升级了 openai plus 和绑了 api 付费，对于小白来说很方便，因为邀请有奖励这里做一些分享</p><ul><li>官网地址：<a href="https://bewildcard.com/card">https://bewildcard.com/card</a></li><li>创建账户费用： 11.99&#x2F;两年，16.99&#x2F;三年</li><li>手续费：3.5%</li><li>限额：3000 美元&#x2F;天</li><li>使用邀请码可以优惠 <a href="https://bewildcard.com/i/MP40YHIM">https://bewildcard.com/i/MP40YHIM</a></li></ul><p>开通之后可以 openai api platform 绑定自己的 card 作为支付方式，或者利用wildcard 提供的服务来绑定，官方提供 ChatGPT 一键升级的功能</p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/image-20241117102454663.png" alt="image-20241117102454663"></p><p>第二种是实际信用卡，这里不再赘述。</p><p>【上述两种方式都可以支付购买服务了！比如 Amazon、软件购买】</p><p>【但是中国发卡机构发放的支持支付组织的卡大部分情况不能直接完成美国相关线上服务的购买，比如 Apple Store、Google Pay 等】</p><h3 id="3-2-美区Paypal"><a href="#3-2-美区Paypal" class="headerlink" title="3.2 美区Paypal"></a>3.2 美区Paypal</h3><p>这里需要有一个非虚拟号的美国手机号，但是大部分都没有，这里有一个操作是可以通过商户支付页面进行注册，可以是为 Wiki 捐赠页面</p><p><a href="https://donate.wikimedia.org/w/index.php?title=Special:LandingPage&country=HK&uselang=en&wmf_medium=spontaneous&wmf_source=fr-redir&wmf_campaign=spontaneous">https://donate.wikimedia.org/w/index.php?title=Special:LandingPage&amp;country=HK&amp;uselang=en&amp;wmf_medium=spontaneous&amp;wmf_source=fr-redir&amp;wmf_campaign=spontaneous</a></p><p>【注意注册 PayPal 过程中全程美区 IP + 无痕浏览模式】</p><p>【之后可以通过 PayPal 来绑定美区 Apple store】</p>]]>
    </content>
    <id>https://blog.tjdata.site/posts/16132.html</id>
    <link href="https://blog.tjdata.site/posts/16132.html"/>
    <published>2024-11-17T02:23:28.000Z</published>
    <summary>
      <![CDATA[<p>因为希望开通 OPENAI-API，需要有美区发行的信用卡，由此折腾了虚拟信用卡 wildcard、国内 MasterCard、美区 PayPal 来完成 OPENAI、App Store、Amazon 海淘等过程，以下为小白经验贴，如有不对的地方欢迎指正</p>
<h2]]>
    </summary>
    <title>小白的在线支付方式折腾</title>
    <updated>2024-11-17T02:25:16.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>chenlongxu</name>
    </author>
    <category term="计算机科学" scheme="https://blog.tjdata.site/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%A7%91%E5%AD%A6/"/>
    <category term="外部阅读" scheme="https://blog.tjdata.site/tags/%E5%A4%96%E9%83%A8%E9%98%85%E8%AF%BB/"/>
    <content>
      <![CDATA[<p>这里系统自顶向下的对于大数据系统下的分布式平台做一次综述，包括一些简单的实际操作。</p><h1 id="一、背景：什么是分布式系统"><a href="#一、背景：什么是分布式系统" class="headerlink" title="一、背景：什么是分布式系统"></a>一、背景：什么是分布式系统</h1><p><em><a href="https://link.springer.com/article/10.1007/s00607-016-0508-7">A brief introduction to distributed systems</a></em></p><p>分布式系统是以单一完整系统（Single coherent system）为表现的自助计算单元的集合（Collections of autonomous computing elements），实现的技术基础为：</p><ol><li>Node 性能强大的<strong>微处理器</strong></li><li>高速发展的<strong>计算机网络</strong></li></ol><p>为了完成上述目标，分布式系统需要满足一下四个准则：</p><ol><li>资源共享，包括外围设备、存储设备、数据、文件、服务和网络</li><li>分配透明化</li><li>开放性</li><li>具备可拓展性</li></ol><p>分布式系统的主要特点包括：</p><ol><li>分布式（<strong>Distribution</strong>）：节点可以分布在不同的计算机上</li><li>同步 （<strong>Synchronization</strong>）：多个节点可以通过执行任务</li><li>异步（<strong>Asynchrony</strong>）：节点之间通过信息传递进行通信，不同节点可以再不同的时间执行不同的任务</li></ol><p>常见的分布式系统为：</p><ol><li>高性能的分布式计算，包括集群计算、网格计算、云计算</li><li>分布式信息系统（不懂）</li><li>普适系统（不懂）</li></ol><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/image-20241021103055087.png" alt="云计算服务的分类"></p><h1 id="二、分布式计算框架组成"><a href="#二、分布式计算框架组成" class="headerlink" title="二、分布式计算框架组成"></a>二、分布式计算框架组成</h1><p><a href="https://ieeexplore.ieee.org/document/10026506"><em>Survey of Distributed Computing Frameworks for Supporting Big Data Analysis</em></a></p><h3 id="分布式系统架构-（System-architectures）"><a href="#分布式系统架构-（System-architectures）" class="headerlink" title="分布式系统架构 （System architectures）"></a>分布式系统架构 （System architectures）</h3><p>分布式系统需要大量的硬件资源：硬盘、内存、CPU&#x2F;GPU、传输带宽、IO 速度，这样的系统框架可以分为</p><ol><li>HPC，高性能计算系统常见的是用于解决复杂科学、工程和学术问题的超级计算机大型集群，特征是通过并行计算加速任务执行，通常处理的是高度复杂的计算机任务，包括气象模拟、基因组分析、流体动力学模拟</li><li>Cluster computing，主要用于并行处理、分布式计算和大规模数据处理，集群的目的是通过协作提高系统的可拓展性和可靠性</li></ol><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/image-20241021110228456.png" alt="Map Reduce 分布式框架"></p><h3 id="分布式文件系统-（Distributed-file-system）"><a href="#分布式文件系统-（Distributed-file-system）" class="headerlink" title="分布式文件系统 （Distributed file system）"></a>分布式文件系统 （Distributed file system）</h3><p>将一个大数据文件分区（partition）成为数个小文件块（data block）存储再分布式集群（cluster）中的节点（node）里，常见的分布式存储系统包括：</p><ul><li>GFS（Google File System）</li><li>HDFS（Hadoop Distributed File System） from Apache Hadoop</li><li>TFS（Taobao File System）</li><li>FastDFS</li><li>CEPH：统一分布式存储系统，支持对象、块和文件存储</li></ul><h3 id="分布式数据库"><a href="#分布式数据库" class="headerlink" title="分布式数据库"></a>分布式数据库</h3><ul><li><p>HBase，在上述文件系统的基础上，如基于 HDFS 构造NoSQL 的数据库 Hbase ，通过 HiveSQL 将 SQL 语句转换成为 Map Reduce 语句来实现计算功能。其本身并不是真正意义上的数据库，只是将结构化的数据文件转换成为一种数据库表，因此本质上是一种内存的 Hash 表，所以其相对于传统的关系型 SQL 会需要加上 Partition 和 Bucket 的字段</p></li><li><p>ClickHouse 用于联机分析处理的开源列式数据库</p></li><li><p>ElasticSearch 基于 Lucene 库的全文搜索引擎</p></li><li><p>Redis Cluster基于内存的键值对数据库</p></li><li><p>Mongo DB</p></li><li><p>Cassandra</p></li><li><p>DynamoDB</p></li><li><p>TiDB</p></li></ul><p><strong>注：普通的关系数据库的区别</strong></p><p>普通的关系性数据库常见的使用的是服务器本地的文件系统，利用自身设计的计算模型来实现实时查询，具备介绍的拓展性</p><h3 id="分布式计算处理框架-（distributed-process）"><a href="#分布式计算处理框架-（distributed-process）" class="headerlink" title="分布式计算处理框架 （distributed process）"></a>分布式计算处理框架 （distributed process）</h3><p>分布式计算是通过将算法切分成可以并行的处理框架来实现高效的计算效果，其最基本的思想是通过“分治法（Divide-and-conquer）”来进行计算，通常可以分为是基于离线数据处理和在线数据处理两种方法，常见的处理框架为</p><ul><li><strong>Apache Hadoop</strong>，基于 Mapreduce 模型，主要用于处理大规模数据，Hive 是基于 HDFS 的数据仓库工具，用于数据提取、转化和加载、可以实现数据存储、查询和分析存储的大规模数据的机制，适合用海量数据做数据挖掘，但是实时性较差，但是计算能力和存储拓展方便</li><li><strong>Apache spark</strong>，基于内存的数据处理，是强大的分布式处理框架，处理速度更快，且更加适合迭代计算的任务，主要组件包括 Spark core、Spark streaming、MLlib、GraphX</li><li><strong>Apache Flink</strong>，流处理框架</li><li>Kafka Streams，允许直接在消息中处理数据，用于消息传递系统中进行流式计算</li><li>Map-Reduce ，最原始的版本，在单一节点上进行计算来得到本地结构 local result，汇合多个节点的计算结果，来得到 global result</li></ul><h3 id="其余的平台（platform）与包（package）"><a href="#其余的平台（platform）与包（package）" class="headerlink" title="其余的平台（platform）与包（package）"></a>其余的平台（platform）与包（package）</h3><ul><li>基本程序语言：JVM、Java、Scala（面向对象和函数式编程）、Python</li><li>采集和传输：Kafaka（分布式订阅消息系统）、Flume、Datax</li><li>数据湖：在数据存储和数据处理之间：Iceberg、Hudi</li><li>资源调度框架：YARN、KUbernets、Mesos</li></ul><h1 id="三、如何学习分布式计算系统"><a href="#三、如何学习分布式计算系统" class="headerlink" title="三、如何学习分布式计算系统"></a>三、如何学习分布式计算系统</h1><h2 id="2-1-编程基础"><a href="#2-1-编程基础" class="headerlink" title="2.1 编程基础"></a>2.1 编程基础</h2><h3 id="Scala基础"><a href="#Scala基础" class="headerlink" title="Scala基础"></a>Scala基础</h3><p><a href="https://www.runoob.com/scala/scala-tutorial.html">Scala 菜鸟教程</a></p><p>Scala 是一门类 Java 的编程语言，结合了面向对象编程和函数式编程</p><ul><li>每个值都是一个对象，对象的类型和行为由类定义，不同的类可以通过混入的方式混合在一起</li><li>函数式编程芋圆，原生支持嵌套函数定义和高阶函数</li></ul><h3 id="PySpark-基础"><a href="#PySpark-基础" class="headerlink" title="PySpark 基础"></a>PySpark 基础</h3><p><a href="https://help.aliyun.com/zh/emr/emr-on-ecs/user-guide/use-spark-shell-and-rdds?spm=a2c4g.11186623.0.0.12522e0b0BmqTk">阿里云文档</a></p><p>需要深刻理解如何使用 pyspark 来完成 spark 的算力的厂检查熬做</p><h2 id="2-2-计算框架-Spark"><a href="#2-2-计算框架-Spark" class="headerlink" title="2.2 计算框架 Spark"></a>2.2 计算框架 Spark</h2><p><em><a href="https://spark.apache.org/docs/3.5.2/">Spark documentation overview</a></em></p><p>关键的Topic 包括</p><ol><li><strong>快速理解 spark 的 API</strong></li><li><strong>理解如何使用 RDD 来进行编程、核心 API、加速和广播操作</strong></li><li><strong>理解 SPARK 的 SQL、Dataset、Dataframe，利用最新的操作 API</strong></li><li><em>流处理structured streaming、spark streaming（可选）</em></li><li><strong>机器学习库 MLlib</strong></li><li><strong>图网络学习 GraphX</strong></li><li><em>利用 R 语言来进行学习（可选）</em></li><li><strong>利用 Python 来使用 Spark</strong></li></ol><h2 id="2-3-额外知识"><a href="#2-3-额外知识" class="headerlink" title="2.3 额外知识"></a>2.3 额外知识</h2><h4 id="SQL-CRUD"><a href="#SQL-CRUD" class="headerlink" title="SQL - CRUD"></a>SQL - CRUD</h4><h4 id="HDFS-常见操作"><a href="#HDFS-常见操作" class="headerlink" title="HDFS - 常见操作"></a>HDFS - 常见操作</h4><h4 id="Flink-流数据处理-pipeline（可选）"><a href="#Flink-流数据处理-pipeline（可选）" class="headerlink" title="Flink 流数据处理 pipeline（可选）"></a>Flink 流数据处理 pipeline（可选）</h4><ol><li>首先利用 Flink 从实时流数据采集中获取数据流，例如用户的行为日志</li><li>利用 Flink 处理的 api 来完成数据的清晰、格式化和特征提取操作（基于 MapReduce）</li><li>调用深度学习模型来完成预测，Map 操作</li><li>将更新的数据输入到 Kafka，或者根据应用常见写入到数据库、消息队列或者文件系统中</li></ol><h1 id="四、其他问题"><a href="#四、其他问题" class="headerlink" title="四、其他问题"></a>四、其他问题</h1><h4 id="流数据（Stream-data）和批数据（Batch-data）处理的区别？"><a href="#流数据（Stream-data）和批数据（Batch-data）处理的区别？" class="headerlink" title="流数据（Stream data）和批数据（Batch data）处理的区别？"></a>流数据（Stream data）和批数据（Batch data）处理的区别？</h4><ul><li>流数据是连续生成，需要实时采集并实时处理，通常的数据来源包括传感器用户日期和、社交媒体更新、金融交易等操作。<ul><li>金融服务的交易分析，比如检查用户的行为</li><li>实时用户和推荐系统，比如实时分析用户的需求</li></ul></li><li>批数据模式下，数据是成块或者成批次组成的，通常被定时的收集或者存储<ul><li>金融网贷业务的预处理</li></ul></li></ul><h4 id="全量更新和增量更新"><a href="#全量更新和增量更新" class="headerlink" title="全量更新和增量更新"></a>全量更新和增量更新</h4><ul><li>全量更新 （Full update） 每次更新的时候处理整个数据集<ul><li>Pro 实现逻辑简单，不需要复杂的变更追踪的逻辑，每次更新都是完整的数据集，可以直接避免数据不一致的风险</li><li>Con 每次都需要处理全部数据，对于系统资源要求高。特别是对于大型数据集需要很长时间才能完成更新</li></ul></li><li>增量更新（incremental update）只处理上次更新依赖发生变化的数据<ul><li>Pro 增量更新的效率高、实时性更强</li><li>Con 但是面临数据处理逻辑的复杂性，容易造成数据不一致的风险，对历史数据管理要求较高</li></ul></li></ul><p>增量更新常见的操作是根据 key 和 update time 来保留最新的记录</p><p>对应的表格分类包括：</p><ol><li>增量表：记录更新周期内新增的数据，在原表中数据的基础上新增本周起产生的新数据</li><li>全量表：记录更新周期内的全量数据，无论数据是否有变化都需要记录</li><li>拉链表：记录数据的历史信息，记录数据从开始 i 一直到当前所有变化的信息</li></ol><h4 id="持续更新…"><a href="#持续更新…" class="headerlink" title="持续更新…"></a>持续更新…</h4><h2 id="Reference"><a href="#Reference" class="headerlink" title="Reference"></a>Reference</h2><p><a href="https://www.sqlboy.tech/">https://www.sqlboy.tech/</a></p>]]>
    </content>
    <id>https://blog.tjdata.site/posts/51817.html</id>
    <link href="https://blog.tjdata.site/posts/51817.html"/>
    <published>2024-10-21T02:10:15.000Z</published>
    <summary>
      <![CDATA[<p>这里系统自顶向下的对于大数据系统下的分布式平台做一次综述，包括一些简单的实际操作。</p>
<h1 id="一、背景：什么是分布式系统"><a href="#一、背景：什么是分布式系统" class="headerlink" title="一、背景：什么是分布式系统"></]]>
    </summary>
    <title>大数据与分布式系统概述</title>
    <updated>2024-10-21T05:59:37.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>chenlongxu</name>
    </author>
    <category term="计算机科学" scheme="https://blog.tjdata.site/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%A7%91%E5%AD%A6/"/>
    <category term="代码基础" scheme="https://blog.tjdata.site/tags/%E4%BB%A3%E7%A0%81%E5%9F%BA%E7%A1%80/"/>
    <category term="生产效率" scheme="https://blog.tjdata.site/tags/%E7%94%9F%E4%BA%A7%E6%95%88%E7%8E%87/"/>
    <content>
      <![CDATA[<p>以 LLM 为底层的自动代码补全工具帮助我们从代码敲击的背景下剥离出来，一定程度上减轻了劳动量。但是其能力的限制使得通常无法在高度定制化的场景下给出最优方案，此时对于熟悉 Copilot 的我们会发现生疏到无法解决。因此如何权衡自动补全工具带来的便利性和自身能力成长是必要的，合理的解决方法是建立心智模型来得其意，再指挥工具免其劳帮助工作效率的提升。本文从自身的角度建立自己的心智模型，</p><h2 id="一、从-Cheetsheet、Cookbook-到-LLM"><a href="#一、从-Cheetsheet、Cookbook-到-LLM" class="headerlink" title="一、从 Cheetsheet、Cookbook 到 LLM"></a>一、从 Cheetsheet、Cookbook 到 LLM</h2><p>学习代码工具中速查表、官方文档、cookbook 是非常重要的资源。</p><ol><li>速查表（Cheetsheet）是列出某个库的常用的命令、语法和代码片段，给初学者快速参考的工具，可以帮助快速的查找特定命令和语法，共享的互联网资源总结了很多可行的速查表。eg: <a href="https://github.com/rahulmakwana1/machine-learning-cheat-sheets/tree/master">ML-cheetsheet</a></li><li>但是从学习的角度官方文档（Document）往往会给出详细的例子，让人望而却步。</li><li>在两者之间的 cookbook 更倾向于结合代码片段给出如何解决实际案例，除了代码片段本身，也还会解释、上下文信息以及在什么样的场景下采取特定的解决方法。</li></ol><p>在后 LLM 时代，copilot 的自动补全功能可以说完全代替了 cookbook，当用户提出一个需求场景，如“帮我写一个归并排序”，先天的代码补全功能可以给用户自动生成所需要的代码。</p><ol><li>优点一在于提升效率，可以从烦躁的代码敲击和函数名称记录中剥离出来，让一些常见的操作可以自动的从代码补全来完成</li><li>优点二让边界更进一步，代码补全有的时候会“涌现”出新的编辑方式，这通常是因为别人已经有过相同的表达，可以将大模型看作是共同记忆的集合</li><li>缺点在于无法完成创新工作，如果这件事情从来没有出现过，LLM 通常是无法完成固定的操作的，这个时候仍然依赖于写作者自身对于工具的理解，但是长时间未写相关论文的过程中，会消失对于 API 的熟练性而导致无从下手。</li></ol><p>解决这样问题的前提是思考我们是如何学习一件事物的：我们会通过学习相关概念和实际案例来获取属于自己的理解和知识，个体的理解程度决定对于知识的掌握程度。个人将在代码领域中的理解称为**<a href="https://zh.wikipedia.org/wiki/%E5%BF%83%E6%99%BA%E6%A8%A1%E5%9E%8B">心智模型</a>**。</p><blockquote><p>认知心理学中将心智模型定义为我们脑海中的世界是一种概念，通过概念和关系来表达真实的系统</p></blockquote><p>通过建立自己对于某种概念的全局认识，再通过自动补全工具是操作 API 可以帮助我们在每次使用的过程中都是对自身理解外在表现应用的认知，可以进一步加深自己的印象而不是让自己变得生疏</p><h2 id="二、心智模型-Copilot-复利效应"><a href="#二、心智模型-Copilot-复利效应" class="headerlink" title="二、心智模型 + Copilot &#x3D; 复利效应"></a>二、心智模型 + Copilot &#x3D; 复利效应</h2><p>Copilot 的含义是辅助工具，抛开 LLM 时代不谈很多场景下的工业工具都是对人类个体自身的辅助增强：</p><ul><li>纺织机，通过工具的方式来提升纺织的效率，但是起无法替代苏绣的作用</li><li>汽车，通过新的能源转换方式代替双腿移动，但是起无法在所有道路上运行</li><li>社交媒体，通过互联网来代替 face-to-face 的表达，让物理距离变得不重要，但是其无法代替线下交流</li><li>洗衣机，是在洗衣场景下双手的解放，但是其无法适用所有的衣物</li><li>相机，对于人类视觉和绘画的简化，但是其无法替代艺术创作</li><li>…</li></ul><p>AI-Copilot 也是如此，通过对简单事物的替代，配合自己的理解可以增加创作效率，但是坐在主导位的只能是自身，为了更好的使用辅助驾驶需要理解其行为的含义，建立其工作的心智模型，来更好的使用 ta</p><h2 id="三、【个人向】需要建立什么样的心智模型"><a href="#三、【个人向】需要建立什么样的心智模型" class="headerlink" title="三、【个人向】需要建立什么样的心智模型"></a>三、【个人向】需要建立什么样的心智模型</h2><h3 id="3-1-编程基础"><a href="#3-1-编程基础" class="headerlink" title="3.1 编程基础"></a>3.1 编程基础</h3><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/Python_cheetsheet.drawio.png" alt="Python_cheetsheet.drawio"></p><h3 id="3-2-数据获取、数据预处理、数据转换"><a href="#3-2-数据获取、数据预处理、数据转换" class="headerlink" title="3.2 数据获取、数据预处理、数据转换"></a>3.2 数据获取、数据预处理、数据转换</h3><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/structure_data_cheetsheet.drawio.png" alt="structure_data_cheetsheet.drawio"></p><h3 id="3-3-数学操作、模型构建、框架展示"><a href="#3-3-数学操作、模型构建、框架展示" class="headerlink" title="3.3 数学操作、模型构建、框架展示"></a>3.3 数学操作、模型构建、框架展示</h3><h2 id="附录：关于写作的一些思考"><a href="#附录：关于写作的一些思考" class="headerlink" title="附录：关于写作的一些思考"></a>附录：关于写作的一些思考</h2><p>文字、语言、肢体表达是个体与个体之间有限的交流方式，内在的逻辑性是上述三者均需要的内核，其中文字是最为正式和准确的信息交流方式。现代社会的高度分工需要敏锐、清晰的文字表达，除了逻辑性之外，其还需要有准确的词汇和语法技巧，在图文编辑器发达的背景下恰当的格式排版更加重要。但是在中文互联网背景和推荐系统肆掠的背景下，如何培养自己的文字表达成为一种奢侈。这里给出自己的建议总结：</p><ol><li><strong>凝练表达，目的为先</strong>。用尽可能少的语言让别人来抓住自己的核心思想，达成从“听不懂”到“听懂但是不知道为什么”的目的，建立起快速联系的纽带</li><li><strong>逻辑连贯，有理有据。</strong>在说服别人的时候可以通过精炼表达，利用层次递进的方式来让别人接受自己的想法。注意每个论据也可以看作是一个需要精炼表达的命题，尽可能的用数据和事实去表达自己。重复冗余的话术只会让自己变得不够信服</li><li><strong>词汇专业，语法通顺。</strong>所谓的互联网黑话或者是英语的专业词汇本质上是一种语言共识，可以快速的将希望表达的含义浓缩的传递给别人，专业学习也是如此，很多的专业壁垒来自于浓缩的含义。除了词汇之外，句子的语法通顺也很重要，这部分中文的表达（图）不如英文的表达（树）方式有趣，平时要多加锻炼</li><li><strong>格式清晰，排版准确。</strong>现代编辑器带来从个体化（书法、签字）向工业化（字体、格式、排版、符号）的转变，如何善用这些模块可以更好的提升自己的表达。<ol><li>符号：字体、大小、颜色、中文符号、英文符号</li><li>工具：斜体、加粗、划线</li><li>排版：段落、缩进、表格</li></ol></li><li><strong>理解意图，尊重读者</strong>。表达的核心目的在于建立起双方的联系，而不是为了坚持自己的想法来辩论得到输赢，因此充分的理解读者的理解诉求，针对不同群众可以接受的方式来表达自己。</li><li><strong>敏锐思考，在反馈中成长</strong>。表达交流并不只是将内心的东西全部的释放，和别人交流反馈的过程中也是提升自己内在思考的一种手段因此表达的时候也要持续保持对于自身观点的思考，讨论是表达的最终目的。</li></ol><p>推荐书籍</p><p>《金字塔原理》</p><p>《批判性思维》</p>]]>
    </content>
    <id>https://blog.tjdata.site/posts/54653.html</id>
    <link href="https://blog.tjdata.site/posts/54653.html"/>
    <published>2024-10-08T08:43:05.000Z</published>
    <summary>
      <![CDATA[<p>以 LLM 为底层的自动代码补全工具帮助我们从代码敲击的背景下剥离出来，一定程度上减轻了劳动量。但是其能力的限制使得通常无法在高度定制化的场景下给出最优方案，此时对于熟悉 Copilot 的我们会发现生疏到无法解决。因此如何权衡自动补全工具带来的便利性和自身能力成长是必要的]]>
    </summary>
    <title>如何建立自己的代码心智模型</title>
    <updated>2024-10-09T07:16:58.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>chenlongxu</name>
    </author>
    <category term="算法基础" scheme="https://blog.tjdata.site/categories/%E7%AE%97%E6%B3%95%E5%9F%BA%E7%A1%80/"/>
    <category term="因果推断" scheme="https://blog.tjdata.site/tags/%E5%9B%A0%E6%9E%9C%E6%8E%A8%E6%96%AD/"/>
    <content>
      <![CDATA[<p>上一篇文章从概念的角度解释了因果推断中常见的问题，同时介绍因果图的分析方法来得到相关性信息和因果性信息流之间的方法。在这篇将更加深入的理解干预（Invention）、后门路径（Backdoor path）和后门调整（Backdoor adjustment）来准确的计算因果效应。以及假设较为困难的前门准则和 do 算子的方式来估计因果效应。这些方法的核心目的是：将因果估计转换成为统计估计，进而估计结果。</p><h2 id="第四章、干预与后门调整"><a href="#第四章、干预与后门调整" class="headerlink" title="第四章、干预与后门调整"></a>第四章、干预与后门调整</h2><h3 id="4-1-Do-运算符"><a href="#4-1-Do-运算符" class="headerlink" title="4.1 Do 运算符"></a>4.1 Do 运算符</h3><p>注意干预 invention 和统计学中的 conditioning 之间的区别，为了表示区别因果中利用 do 算子表示</p><ol><li>统计中的conditional，指的是我们只将注意力限定在接受治疗的 subgroup 中</li><li>因果中的 invention，指的是针对所有的群体添加干预</li></ol><p>同时我们希望得到的结果是干预分布（interventional distributions）P（Y｜do（T）），同时也要注意干预分布和观测到的分布之间的区别。其中面临反事实的问题，那么什么样的情况下可识别？</p><blockquote><p>如果可以将包含 do 算子的表达式（Casual estimation）还原成为没有 do 算子的表达式（statistical estimate），则说明是可识别的</p></blockquote><p>因果机制（Casual mechanism）指的是，对于一个节点来说，影响其的结果只包含其parent 和对应的边。在因果机制的基础上，我们作出<strong>干预是局部的假设</strong>，我们假设对于一些变量的干预改变 X 对应的因果机制，而不是改变其产生其他变量的因果机制，也可以额被称为模块化（modularity），或者是独立机制、自主性和不变性机制。</p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/image-20240918092041754.png" alt="模块化的机制"></p><p>干预操作的本质是希望改变原有的概率分布：</p><ol><li>第一种是观察数据中的因果图</li><li>第二种是针对 T 施加干预的结果，对于其他节点的因果机制没有发生改变，而针对干预节点由于其因果机制发生了改变，因此可以对其parent 节点进行截断</li><li>第三种与上述的情况保持一致</li></ol><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/image-20240918092059134.png" alt="详细解释概率图"></p><p>添加干预的好处是可以让概率发生变化，那么为什么需要将概率升变化呢？核心目的是让策略效应的计算可以更加的简单，通过模块化的假设可以让我们在计算联合概率分布中将干预的节点进行剔除，具体来说就是截断公式（Truncated factorization ）</p><p>针对下列经典的情况，我们可以计算在施加干预和不施加干预前后的输出</p><ol><li>干预分布 P(y|do(t)</li><li>观测分布P(y|t)</li></ol><p>通过计算可以发现核心在于 P(X) 和 P(X|T)之间的分布差异造成了观察结果和干预分布之间的问题</p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/image-20240918093111288.png" alt="经典混淆因果关系"></p><h3 id="4-2-后门路径和后门调整"><a href="#4-2-后门路径和后门调整" class="headerlink" title="4.2 后门路径和后门调整"></a>4.2 后门路径和后门调整</h3><p>在因果图中，如果希望识别两个节点的因果关系我们希望可以截断两个节点直接非因果的关联，而非因果的关联主要是通过非阻塞路径（unblocked path）进行传递，If 我们可以阻断这些路径，Then 就可以在干预 T 的情况下估计出 T 对 Y 的因果效应，由此得到的后门标准为：</p><p>需要有一系列变量的集合造成了：</p><ol><li>W 阻塞了所有 T 和 X 之间的后门路径</li><li>W 不会包含 T 的任何后台节点</li></ol><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/image-20240918093837862.png" alt="后门标准"></p><p>在后门准则的基础上，我们找到了调整变量，进而施加干预得到准确的因果效应估计</p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/image-20240918093954279.png" alt="后门调整公式 backdoor adjustment formula"></p><blockquote><p> 一个实际的例子来计算：干预和非干预情况下 的因果效应估计</p></blockquote><ol><li>第一种在施加干预的情况下，可以通过截断公式来得到 Y 对于 T 的效应识别</li><li>第二种是在不施加干预的情况下，利用相关性公式得到 Y 对于 T 的识别，可以发现是存在有偏差的</li></ol><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/image-20240918094608683.png" alt="示意图"></p><p>在无法准确的施加干预的背景下，我们可以使用施加找到后门调整的变量来估算出因果效应</p><blockquote><p>key point 总结</p><ol><li>为了计算干预之后的概率分布公式，我们可以使用局部性假设来对概率分布进行截断，进而计算出包含 do 算子下的因果效应分析公式</li><li>因果关系识别的核心在于如何将包含 do 算子的公式转换成为没有 do 算子的表达式</li><li>造成偏差的核心问题在于 P（X|T）和 P（X）之间的不一致造成的偏差</li><li>如果我们可以找到后门调整的路径并进行截断，我们可以完成上述的操作</li></ol></blockquote><h2 id="五、随机控制实验-randomized-control-experiments"><a href="#五、随机控制实验-randomized-control-experiments" class="headerlink" title="五、随机控制实验 randomized control experiments"></a>五、随机控制实验 randomized control experiments</h2><p>在 AB 实验中，通过随机的控制策略的分发机制，可以保障最终得到的关联性为因果性。因为 T 和协变量直接完全独立是的最终的因果效应可以识别。</p><p>在随机对照实验需要保证 AB 两组是完全可比的，更加精确的定义这里的可比是各组的协变量之间的分布为相似的状态，确保协变量均衡是有效对比和分析后续的基础。核心是实现<img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/image-20240918100637222.png" alt="image-20240918100637222" style="zoom: 25%;" />，通过保证 X 和 T之间相互独立的状态，可以实现两者满足可交换的假设，进而准确的计算因果效应。如何实现协变量均衡可以从：</p><ol><li>随机化，在实验设计的过程中将变量随机的分配到不同的组别在满足条件</li><li>匹配，通过匹配的方式来均衡协变量的分布</li><li>统计套装，通过回归分析的方法对最终的结果进行纠偏的操作来调整对结果的影响 regression adjustment</li></ol><h2 id="六、非参数识别"><a href="#六、非参数识别" class="headerlink" title="六、非参数识别"></a>六、非参数识别</h2><h3 id="6-1-前门准则"><a href="#6-1-前门准则" class="headerlink" title="6.1 前门准则"></a>6.1 前门准则</h3><p>在第四章中我们在后门准则的基础上介绍了后门调整的方法（通过寻找到恰当的后门准则变量来实现后门调整，进而完成准确的因果效应估计），但是是否有其他的方式来实现因果效应的评估。或者说在之前的经验中我们尝试使用观察到充足的后门调整变量来实现因果效应的识别，但是如果在 W 无法被重插的情况下如何实现效应的评估。这里注重介绍 前门准则和前门调整。</p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/image-20240918101428649.png" alt="前门准则和调整"></p><p>前门调整适用于在后门准则的变量无法被充分识别和观察的情况下+中介变量可以被观察的情况下，可以通过三个步骤来计算出Y 中 T 因果效应</p><ol><li>M 中 T 的因果效应，完全是因果关系</li><li>Y 中 M 的因果效应，可以通过对 T的后门准则的截断来完成</li><li>联合上述两个步骤，来得到 Y 中 T 的因果效应<img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/image-20240918101922155.png" alt="image-20240918101922155" style="zoom: 25%;" /></li></ol><p>其中前门准则包括：</p><ol><li>M 是充分的变量，也就是所有的因果路径均会通过 M 流向 Y</li><li>所有 T 到 M 的后门路径均被截断</li><li>所有从 M 到 Y 的路径均被 T 截断</li></ol><h3 id="6-2-do-算子"><a href="#6-2-do-算子" class="headerlink" title="6.2 do 算子"></a>6.2 do 算子</h3><p>在不满足前门准则和后门准则的基础上，如何来实现因果效应的估计</p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/image-20240918103236733.png" alt="do 计算实现因果效应估计"></p><h3 id="附录"><a href="#附录" class="headerlink" title="附录"></a>附录</h3><p><a href="https://zhang-each.github.io/My-CS-Notebook/Causality/Causality04-Intervention%26BackdoorAdjustment/">小角龙的学习记录- 04</a></p><h5 id="因果发现的方法"><a href="#因果发现的方法" class="headerlink" title="因果发现的方法"></a>因果发现的方法</h5><p>因果发现的目的在于确定一个因果推的马尔可夫等价的方法，主要分为两种方式</p><ol><li>基于约束的方法，需要判定集合是否满足一系列假设检验（例如节点之间是否需要满足条件独立性假设），为了避免对于所有可能的子集合进行搜索，往往从一个全连接图开始逐渐增加条件集合的大小</li><li>基于分数的方法，主要通过对模型类别进行假设限制，直接拟合一个结构因果模型架构来得到最终的打分函数的定义来进行求解。为了得到最优的因果图结果，需要包括两个部分：1. 最大化对数据的拟合程度、2. 对图结构的复杂程度进行惩罚。比如使用贪婪搜索的方法或者动态规划的方式。</li></ol><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/image-20240918103633239.png" alt="因果发现的方法"></p><h4 id="因果估计和统计估计的方法"><a href="#因果估计和统计估计的方法" class="headerlink" title="因果估计和统计估计的方法"></a>因果估计和统计估计的方法</h4><p>在假设后门变量均被观察到的假设的基础上，我们可以使用一系列的方法来进行纠偏的操作</p><ol><li>s learner 和 t learner</li><li>tarnet 和 xlearner</li><li>PS 分数</li><li>double machine learning</li></ol>]]>
    </content>
    <id>https://blog.tjdata.site/posts/29675.html</id>
    <link href="https://blog.tjdata.site/posts/29675.html"/>
    <published>2024-09-18T00:44:53.000Z</published>
    <summary>
      <![CDATA[<p>上一篇文章从概念的角度解释了因果推断中常见的问题，同时介绍因果图的分析方法来得到相关性信息和因果性信息流之间的方法。在这篇将更加深入的理解干预（Invention）、后门路径（Backdoor path）和后门调整（Backdoor adjustment）来准确的计算因果效]]>
    </summary>
    <title>阅读 Casual inference_总结中</title>
    <updated>2024-09-18T02:56:05.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>chenlongxu</name>
    </author>
    <category term="算法基础" scheme="https://blog.tjdata.site/categories/%E7%AE%97%E6%B3%95%E5%9F%BA%E7%A1%80/"/>
    <category term="因果推断" scheme="https://blog.tjdata.site/tags/%E5%9B%A0%E6%9E%9C%E6%8E%A8%E6%96%AD/"/>
    <content>
      <![CDATA[<p>这篇文章主要针对 casual inference 的前置概念进行介绍，核心希望回答的问题是为什么需要因果性，如何得到因果估计。介绍到常见的因果发现的方法。之后会在因果路径的基础上介绍更多的因果方法。</p><h2 id="一、为什么需要因果性而不是相关性"><a href="#一、为什么需要因果性而不是相关性" class="headerlink" title="一、为什么需要因果性而不是相关性"></a>一、为什么需要因果性而不是相关性</h2><h3 id="1-1-从辛普森悖论说起"><a href="#1-1-从辛普森悖论说起" class="headerlink" title="1.1 从辛普森悖论说起"></a>1.1 从辛普森悖论说起</h3><ul><li>辛普森悖论的现象<ul><li>目的希望查看药物T（A，B） 在患者 X（轻、重、总体）下的效果</li><li>悖论：<ul><li>从分层人群来看，药物 A 均优于药物 B</li><li>从总体人群来看，药物 A 均差于药物 B</li><li>问题？应当对于一个新的人给于什么样的治疗</li><li><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/image-20240913110909447.png" alt="image-20240913110909447" style="zoom:50%;" /></li></ul></li><li>解释：<ul><li>可能的解释 1：某种因素影响 T 的分配，比如更严重的人才会用 B，这个时候 B 更好</li><li>可能的解释 2：如果存在中介变量，例如药物 B 需要人停留很长的时间而不被允许，这个时候 A 更好</li></ul></li><li>结论：<ul><li>需要因果才能解释数据中出现违反直觉的结论</li></ul></li></ul></li></ul><h3 id="1-2-因果推断的应用"><a href="#1-2-因果推断的应用" class="headerlink" title="1.2 因果推断的应用"></a>1.2 因果推断的应用</h3><ul><li>希望找到因果的描述，而不是相关性的描述（Associational），这样才能做出有效的策略<ul><li>药物治疗</li><li>强化学习</li><li>社会实验</li></ul></li><li>因果推断对关键决策至关重要<ul><li>温室气体控制</li></ul></li></ul><h3 id="1-3-相关性不代表因果性"><a href="#1-3-相关性不代表因果性" class="headerlink" title="1.3 相关性不代表因果性"></a>1.3 相关性不代表因果性</h3><blockquote><p>Correlation does not imply causation</p></blockquote><p>关联关系（Association 或者 Correlation in linear statistical dependence）与因果关系</p><ul><li>并不是所有的 association 都是 casual</li><li>也不是所有的 association 都不是 casual</li><li>这句话的目的在于说明 association 和 causation 之间是有区别的</li><li>例子：不脱鞋和头疼，但是潜在的混杂在于喝酒 -&gt; 不脱鞋，喝酒 -&gt; 头疼。 这种为 casual association，但是不脱鞋 -&gt; 头疼，为confounding association</li></ul><p><strong>核心问题：希望找到因果关系来产出有效的策略方案</strong></p><h3 id="1-4-核心主题"><a href="#1-4-核心主题" class="headerlink" title="1.4 核心主题"></a>1.4 核心主题</h3><ul><li><p>统计和因果</p><ul><li><p>统计（Statistical）：在有限的样本中估计随机性</p></li><li><p>因果性（casual）：但是 statistical 中的correlation 不代表 casual</p></li></ul></li><li><p>识别和估计</p><ul><li>identification：识别因果效应（casual effect）是因果推断的关键</li><li>estimation：常用到 ML 中的估计方法来实现效应的估计</li></ul></li><li><p>干预和实验</p><ul><li>interventional 干预实验中可以很容易得到因果效应估计</li><li>observation 数据中容易出现很多的观察因素</li></ul></li><li><p>假设</p><ul><li>基于一些假设我们才能正确的计算 potential outcome</li></ul></li></ul><h2 id="二、基本假设：如何得到-Potential-outcome"><a href="#二、基本假设：如何得到-Potential-outcome" class="headerlink" title="二、基本假设：如何得到 Potential outcome"></a>二、基本假设：如何得到 Potential outcome</h2><p>T 表示策略、Y 表示输出值、X 表示可行的协变量，利用大写变量表示随机性、利用小写变量表示具体值。</p><h3 id="2-1-潜在输出到ITE"><a href="#2-1-潜在输出到ITE" class="headerlink" title="2.1 潜在输出到ITE"></a>2.1 潜在输出到ITE</h3><blockquote><p>例子 1：假如你现在很开心（Y&#x3D;1），现在给了你一个玩具狗 （T&#x3D;1），这个时候你仍然很开心（Y&#x3D;1），但是玩具狗对你开心的效应是很弱的</p><p>例子 2：假设你现在不开心（Y&#x3D;0），现在给了你一个玩具狗（T&#x3D;1），这个时候你变开心了（Y&#x3D;1），说明玩具狗具有很强的开心效应</p></blockquote><p>Y（t）表示实施某种策略下潜在的输出，因此对于单个个体的策略包括</p><p>$$ t_i &#x3D; Y_i(1)-Y_i(0) $$</p><h3 id="2-2-基本问题"><a href="#2-2-基本问题" class="headerlink" title="2.2  基本问题"></a>2.2  基本问题</h3><p>但是对于同一个个体无法在同一个时间下同时观察到两种策略下的输出，也就是反事实counterfactuals</p><h3 id="2-3-如何解决这些问题"><a href="#2-3-如何解决这些问题" class="headerlink" title="2.3 如何解决这些问题"></a>2.3 如何解决这些问题</h3><p>如何无法计算 ITE，是否可以有某种方式来计算 ATE</p><p>$$t &#x3D; E[t_i] &#x3D; E[Y_i(1)-E_i(0)] &#x3D; E[Y(1)-Y(0)]$$ </p><p>但是在通常的条件下，这个并不是等于</p><p>$$E[Y|T&#x3D;1] - E[Y|T&#x3D;0]$$</p><p>由此来计算对应的 ATE 输出</p><h4 id="2-3-1-假设1：ignorability-and-exchange"><a href="#2-3-1-假设1：ignorability-and-exchange" class="headerlink" title="2.3.1 假设1：ignorability and exchange"></a>2.3.1 假设1：ignorability and exchange</h4><p>需要保证施加策略的用户是可以实现互换的</p><ul><li>可忽略性假设是人们如何选择策略以及被策略选择</li><li>互换性假设希望两者之间可以互换的</li></ul><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/image-20240913134745864.png" alt="条件独立性"></p><p>如何使用 a2.1 来实现因果关系的识别，也就是可以从相关关系的识别中来观察到因果关系效应，这样可以将 causal expression 转换成为一个 statistical expression。</p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/image-20240913142533915.png" alt="可识别性定义"></p><h4 id="2-3-2-假设2：unconfoundeness-（CIA）或者-conditional-exchange-ability"><a href="#2-3-2-假设2：unconfoundeness-（CIA）或者-conditional-exchange-ability" class="headerlink" title="2.3.2 假设2：unconfoundeness （CIA）或者 conditional exchange ability"></a>2.3.2 假设2：unconfoundeness （CIA）或者 conditional exchange ability</h4><p>在观察数据中，满足假设 1 是完全不可能的，因为不可能找到两者完全相同的组，但是如果我们可以控制住相关的变量，那么在相同条件下可以计算对应的因果效应。</p><ul><li>如何定义“相关变量”在因果图中可以表示</li></ul><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/image-20240913142834998.png" alt="条件独立性"></p><p>这里的核心思想在于 T 和 Y 虽然可能是相关联的 association，但是在控制住相同的协变量之后，不同 T 组别之间是可比的</p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/image-20240913143054989.png" alt="控制住 confounders 来满足计算"></p><p>通过控制混淆变量的方式可以让我们在无法观察到反事实的情况下，计算出因果效应，这里的公式被定义为 adjustment formula，进而可以计算除因果效应。通过将假设 2.1 转换为假设 2.2 ，让这个额条件更加实际，但但是我们仍然不知道控制的变量是什么形式，但是由于协变量中不可能保证完整的混淆变量 confounders 被观察到，因此仍然不满足条件独立性假设</p><ul><li>在自然对照实验中这并不是问题<ul><li>（个人想法，但是理论上完全的自然对照实验是不存在的，因此通过一些纠偏的方法来AB 实验的数据中进行清洗可能会得到一个更好的结果）</li></ul></li><li>在观察数据中很难解决的事情<ul><li>唯一可行的是观察和拟合尽可能多的协变量 X，来尝试保证（无混淆假设 unconfoundedness）</li></ul></li></ul><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/image-20240913143236910.png" alt="调整公式"></p><h4 id="2-3-3-假设3：positivity"><a href="#2-3-3-假设3：positivity" class="headerlink" title="2.3.3 假设3：positivity"></a>2.3.3 假设3：positivity</h4><p>虽然尽可能的保证协变量 X 中包含尽可能多的混淆变量 confounders 可以让 CIA 假设得到的满足，但是为了计算因果效应，我们需要保证正值假设，而随着变量的增多可能会导致某些个体无法观察到对应的数据进而不能计算因果效应。</p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/image-20240913143823575.png" alt="Assumption23"></p><p>证明如下：计算 ATE 提升期望的过程中，使用贝叶斯法则：</p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/image-20240913143902540.png" alt="正值假设"></p><blockquote><p>直觉的解释，为什么需要正值假设？</p><p>因为如果不满足正值假设，说明其中某些子群体 subgroup 常常被分配到固定的策略方式，这种完全观察不到另一种方式会导致无法计算合理的casual effect</p></blockquote><p>因此我们往往面临 假设 2.2-假设 2.3 之间的 tradeoff。协变量 X 中表示更多的混杂变量可以更容易满足假设 2.2，但是随着变量的增多，我们更容易陷入不满足假设 2.3 中，因为一部分群体只会接受到固定的策略。此时在外推情况下往往会导致输出为 0</p><h4 id="2-3-4-假设-4：No-interference-consistency-SUTVA"><a href="#2-3-4-假设-4：No-interference-consistency-SUTVA" class="headerlink" title="2.3.4 假设 4：No interference + consistency &#x3D; SUTVA"></a>2.3.4 假设 4：No interference + consistency &#x3D; SUTVA</h4><p>没有干扰性的假设表示每个人的输出不会受到其他人的影响</p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/image-20240913144519294.png" alt="image-20240913144519294"></p><p>一致性假设表示在给定一个策略下，必然得到固定的产出</p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/image-20240913144556971.png" alt="image-20240913144556971"></p><h4 id="2-3-5-总结"><a href="#2-3-5-总结" class="headerlink" title="2.3.5 总结"></a>2.3.5 总结</h4><p>在满足上述假设的过程中，我们可以通过期望公式将条件因果效应得到对应的输出</p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/image-20240913144707018.png" alt="满足假设条件下的因果效应估计方法"></p><ul><li>Casual estimand 因果效应真实值（通过 identification）</li><li>Statistical estimand 统计效应真实值 （通过 estimation）</li><li>Estimate</li></ul><h2 id="三、违反基本假设的困难：从Casual-Graph-解释"><a href="#三、违反基本假设的困难：从Casual-Graph-解释" class="headerlink" title="三、违反基本假设的困难：从Casual Graph 解释"></a>三、违反基本假设的困难：从Casual Graph 解释</h2><h4 id="3-1-基本图的术语"><a href="#3-1-基本图的术语" class="headerlink" title="3.1 基本图的术语"></a>3.1 基本图的术语</h4><ul><li>graph <ul><li>nodes</li><li>edges</li><li>Connection </li><li>path</li></ul></li></ul><h4 id="3-2-贝叶斯网络"><a href="#3-2-贝叶斯网络" class="headerlink" title="3.2 贝叶斯网络"></a>3.2 贝叶斯网络</h4><p>The chain rule of probability </p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/image-20240913150150844.png" alt="概率计算链条"></p><p>结合贝叶斯网络和马尔科夫性质</p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/image-20240913150342251.png" alt="如何计算 casual estimand"></p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/image-20240913150604517.png" alt="image-20240913150604517"></p><p>PS： 定义 3.2 没太看懂</p><h4 id="3-3-因果图-Casual-Graph"><a href="#3-3-因果图-Casual-Graph" class="headerlink" title="3.3 因果图 Casual Graph"></a>3.3 因果图 Casual Graph</h4><blockquote><p>什么是因果性？</p><p>如果 X 变化，Y 一定会随着变化的。在因果图中每一个父节点都是子节点的直接原因</p></blockquote><h4 id="3-4-两个节点"><a href="#3-4-两个节点" class="headerlink" title="3.4 两个节点"></a>3.4 两个节点</h4><p>对于两个没有关联的节点之间是存在独立性的 $P(x_1,x_2) &#x3D; P(x_1)P(x_2)$</p><p>对于两个存在关联的节点之间是存在 association 的 </p><h4 id="3-5-因果链-chain-和-因果叉-fork"><a href="#3-5-因果链-chain-和-因果叉-fork" class="headerlink" title="3.5 因果链 chain 和 因果叉 fork"></a>3.5 因果链 chain 和 因果叉 fork</h4><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/image-20240913151026087.png" alt="因果图中常见的关系包括"></p><p>在 Chain 下如何计算 X1 对于 X3 的因果效应？</p><p>在 Fork 下如何计算 X1 对于 X3 的因果效应？</p><p>如果在保证变量 X2 的条件下，可以证明 X1 和 X3 之间存在独立性，因此可以计算因果性。由此可以满足条件独立性假设。</p><h4 id="3-6-因果碰撞-Collider-与其后代"><a href="#3-6-因果碰撞-Collider-与其后代" class="headerlink" title="3.6 因果碰撞 Collider 与其后代"></a>3.6 因果碰撞 Collider 与其后代</h4><p>看上去 Immorality 中 X1 和 X3 之间没有association，但是其都是指向了相同的变量 X2，因此在采用 X2 作为变量控制，可能会让两个不相关的变量存在 association</p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/image-20240913151519188.png" alt="Collider 因果发现"></p><blockquote><p>为什么通过控制碰撞变量可以得到因果效应的估计呢？</p><p>比如在相亲的过程中， X1 善良，X3 外表；你会发现大多数好看的男生都是混蛋，而大多数善良的男生都不好看，因此必需要在外表和善良之间做出选择，也就是两者存在负相关。<br>但是变量 X2 表示可获得性，也就是没有对象的人才会相亲。由于 X2 导致两者存在 association，在条件于 X2 的情况下，会导致两者存在 association</p></blockquote><p>因此通过控制 Collider 变量，会导致一个阻断链路成为一个非阻断链路。</p><ul><li>X1 和 X3 在整个人群中没有关系</li><li>但是条件与 X2下，会导致两者出现association</li><li>berkson‘s paradox，这也是导致 selection bias 的存在</li></ul><h4 id="3-7-Do-算子-｜-d-separation"><a href="#3-7-Do-算子-｜-d-separation" class="headerlink" title="3.7 Do 算子 ｜ d-separation"></a>3.7 Do 算子 ｜ d-separation</h4><p>那么上述的阻断路径指的是什么？</p><ul><li>对于 chain 和 fork 变量，需要控制住</li><li>对于 Collider及其子变量，都不需要控制</li></ul><p>未被阻断的路径就是路径中存在未被阻断的节点，其中可能会存在 association，但是在 blocked path 中不存在 association 而可以识别出casual，有次定义的 D -分离的定义<img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/image-20240913153535071.png" alt="符号定义" style="zoom:25%;" /></p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/image-20240913153502329.png" alt="d 分离定义"></p><h4 id="3-8-因果图和相关图"><a href="#3-8-因果图和相关图" class="headerlink" title="3.8 因果图和相关图"></a>3.8 因果图和相关图</h4><p>在介绍完因果图中常见的概念之外，最终的目的是为了能够介绍因果图中的 association 和 causation</p><ul><li>association<ul><li>casual association 按照 direct path 运行</li><li>confounding association 混淆关联</li></ul></li></ul><p>在上述的基础后提出的“后门准则”和“前门准则”中的意义在于</p><ul><li><p>在某些研究中，虽然 DAG 的某些变量不可观测，我们仍然可以从有限的观测数据中估计因果效应</p></li><li><p>有助于鉴别 混杂变量和设计观察性研究</p></li><li><p>后门准则(Fork)：定义变量之间除了直连路径之外的其他 unblocked path 均为后门路径</p><ul><li>Z 中节点不是 X 的后代</li><li>Z 阻断所有指向 X 的路径</li></ul></li><li><p>前门准则(Chain)</p><ul><li>Z  阻断了所有 X 到 Y 的直接路径</li><li>X 到 Z 没有后门路径</li><li>所有 Z 到 Y 的后门路径都被 X 阻断</li></ul></li></ul><blockquote><p><strong>例子：</strong>我们关心吸烟和肺癌之间的因果关系。由于一个潜在的不可观测的基因 的存在，吸烟和肺癌之间有一条“活”的后门路径，因此不借助其他的条件，我们无法识别吸烟与肺癌的因果关系。如果我们有这样的知识“吸烟 仅仅通过肺部烟焦油的含量 来影响肺癌 ”，那么吸烟对肺癌的因果作用就可以估计出来了。不过，这里需要两个条件，也就是在证明中使用的两个条件独立性，他们表明：（1）吸烟  和肺部烟焦油的含量  之间没有“活”的后门路径（或者没有混杂因素）；（2）吸烟 对肺癌 的作用仅仅来源于吸烟 对肺部烟焦油 的作用，或者说，吸烟 对肺癌 没有“直接作用“”</p></blockquote><p>再回到原始的辛普森悖论的 问题，可以发现在背后可以有很多种解释的方法，因此只有基于因果的方式才能更好的描述这个状况</p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/image-20240913155020606.png" alt="辛普森悖论背后的解释方法"></p><h2 id="四、如何得到准确的答案：Casual-Models"><a href="#四、如何得到准确的答案：Casual-Models" class="headerlink" title="四、如何得到准确的答案：Casual Models"></a>四、如何得到准确的答案：Casual Models</h2><h4 id="4-1-do算子和干预输出分布"><a href="#4-1-do算子和干预输出分布" class="headerlink" title="4.1 do算子和干预输出分布"></a>4.1 do算子和干预输出分布</h4><p>因果推断中 do 算子的一些描述</p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/image-20240913160033455.png" alt="可视化描述"></p><h4 id="4-2-核心的假设：模块化-Modularity"><a href="#4-2-核心的假设：模块化-Modularity" class="headerlink" title="4.2 核心的假设：模块化 Modularity"></a>4.2 核心的假设：模块化 Modularity</h4><p>为确保因果图中对于变量 X 的干预只会改变 X 本身的概率，等价于移除所有指向 X 的因果边</p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/image-20240913161235590.png" alt="模块化的定义"></p><p>例如从观察数据中，和对其施加干预之后的干预分布定义</p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/image-20240913161333239.png" alt="分布示意图"></p><p>被定义为反事实规则或者是干预规则</p><h4 id="4-3-因果图分解-truncated-factorization"><a href="#4-3-因果图分解-truncated-factorization" class="headerlink" title="4.3 因果图分解 truncated factorization"></a>4.3 因果图分解 truncated factorization</h4><p>在因果图的局部假设的基础上，可以提出因果图的分解方法</p><ul><li><p>贝叶斯网络分解公式</p><ul><li>对其进行分解</li></ul></li><li><p>马尔可夫假设 或者 模块化假设</p><ul><li>对其进行分解</li></ul><p>通过三个步骤计算出因果统计量</p></li></ul><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/image-20240913161443725.png" alt="因果图分解"></p><h4 id="4-4-后门调整-backdoor-adjustment"><a href="#4-4-后门调整-backdoor-adjustment" class="headerlink" title="4.4 后门调整 backdoor adjustment"></a>4.4 后门调整 backdoor adjustment</h4><p>如果在上述的到完整的后门准则调整的集合之后，在给定的数据集后则可以识别出对应的因果效应</p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/image-20240913161836120.png" alt="后门调整"></p><p>前提是需要满足 正值假设、后门准则（充分集合）来求解出对应的因果效应</p><h4 id="4-5-结构因果模型-SCM"><a href="#4-5-结构因果模型-SCM" class="headerlink" title="4.5 结构因果模型 SCM"></a>4.5 结构因果模型 SCM</h4><h4 id="4-6-后门调整的应用"><a href="#4-6-后门调整的应用" class="headerlink" title="4.6 后门调整的应用"></a>4.6 后门调整的应用</h4><h4 id="4-7-回顾假设"><a href="#4-7-回顾假设" class="headerlink" title="4.7 回顾假设"></a>4.7 回顾假设</h4><h2 id="五、自然对照实验和非参数识别"><a href="#五、自然对照实验和非参数识别" class="headerlink" title="五、自然对照实验和非参数识别"></a>五、自然对照实验和非参数识别</h2><h2 id="六、如何估计因果效应-Casual-effect"><a href="#六、如何估计因果效应-Casual-effect" class="headerlink" title="六、如何估计因果效应 Casual effect"></a>六、如何估计因果效应 Casual effect</h2><h2 id="七、-未观察到的混杂因子"><a href="#七、-未观察到的混杂因子" class="headerlink" title="七、 未观察到的混杂因子"></a>七、 未观察到的混杂因子</h2><h2 id="八、工具变量-IV"><a href="#八、工具变量-IV" class="headerlink" title="八、工具变量 IV"></a>八、工具变量 IV</h2><h2 id="九、时间差异-DID"><a href="#九、时间差异-DID" class="headerlink" title="九、时间差异 DID"></a>九、时间差异 DID</h2><h2 id="十、观察数据中的因果发现"><a href="#十、观察数据中的因果发现" class="headerlink" title="十、观察数据中的因果发现"></a>十、观察数据中的因果发现</h2><h2 id="Reference"><a href="#Reference" class="headerlink" title="Reference"></a>Reference</h2><p>《Introduction to casual inference from a machine learning perspective》 by Brady Neal</p>]]>
    </content>
    <id>https://blog.tjdata.site/posts/29337.html</id>
    <link href="https://blog.tjdata.site/posts/29337.html"/>
    <published>2024-09-13T02:56:52.000Z</published>
    <summary>
      <![CDATA[<p>这篇文章主要针对 casual inference 的前置概念进行介绍，核心希望回答的问题是为什么需要因果性，如何得到因果估计。介绍到常见的因果发现的方法。之后会在因果路径的基础上介绍更多的因果方法。</p>
<h2 id="一、为什么需要因果性而不是相关性"><a hre]]>
    </summary>
    <title>阅读 Casual inference 总结上</title>
    <updated>2024-09-13T08:37:24.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>chenlongxu</name>
    </author>
    <category term="生活杂谈" scheme="https://blog.tjdata.site/categories/%E7%94%9F%E6%B4%BB%E6%9D%82%E8%B0%88/"/>
    <category term="生活杂谈" scheme="https://blog.tjdata.site/tags/%E7%94%9F%E6%B4%BB%E6%9D%82%E8%B0%88/"/>
    <content>
      <![CDATA[<p>从未想象过南方的夏天会如此的丰富多彩，阳光和暴雨的展开姿势是内陆从未见过的大开大合。当天气明媚的时候，仿佛广州塔都在微笑，而当暴雨倾城，突然分不清天地之间的边界。很幸运可以在六月底背负着被航班取消，踏着十个小时的高铁来到羊城，开始了自己的“无问西东“的暑期实习，也希望自己的秋招可以顺利。</p><blockquote><p>“无问西东” 是这个暑假的旋律</p></blockquote><p>朴实竟然是我对腾讯的第一眼，T.I.T 创意园中穿插着矮楼和高树，这些树儿不知何时初见行人，又不知送走了多少代观众。艺术氛围在这里是不缺的，但没想到在游客之中也穿插 B1～B10 的工区，这边是办公地点的，不问西东是未来两个月的主旋律。</p><p>人总是需要追踪点什么才能跑过时间的流失，有的时候是什么都不说的骑着摩托车去体验地面的温度，也有的时候是被赶鸭子上架上手工作。前者是感受生命的禅意，后者可能是感受生命的跳动。初入实习的时候很难适应快节奏：不会写 OKR，看不懂周报黑话，甚至连 SQL 都不熟练，但可能知道自己缺点的时候才是成长最快的时候。当知道自己眼里有梁木之后，时间成为最宝贵的东西。</p><p>天而复始的起床-冥想-工作-下班的飞轮是盛夏的核心，吃掉十几个西瓜、经历过多次暴雨，不知道听过多少蝉鸣，当度过答辩，满下脚步确发现这个夏天已经过去了，如果等站在行刑队面前，一定忘不了这个夏天的坚持。感谢实习中遇到的人让我自己成长，见识到了一个更深层次的世界，也明白追求完美再实际中就要动手去做，“无问西东”是我学到最宝贵的教训。</p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/DSC00223.JPG" alt="DSC00223" style="zoom:10%;" /><blockquote><p> “ 我是谁？我从哪里来？我向哪里去？“ 是无论何时都需要回答的问题</p></blockquote><p>但我好像还是不知道自己应该选择什么样的职业。在绿皮书中，博士爆发时说“我不够黑，我也不够白，告诉我我是谁？”，同样的悖论在日漫中也有体现，无论是金木还是艾伦，当系统中出现变化的人，无法找到自我认同是最大的障碍，筚路蓝缕的孤独只有初代人才能体会。当踏破铁鞋，行半百却蓦然发现不知道自己在哪里，也不知道自己需要什么。</p><p>本人的专业是可笑的交通信息，是个问题非常多的专业。可以说是跨越再文科、工科、理科、商科之外的专业，曾经去过工地见过道路施工，也上过铁路搬过道岔机，了解机场的飞机起飞，也写过公交的排班算法，既要会出彩的报告能力，也要过硬的代码素质，还要探讨群体的管理。仿佛这个专业告诉过我们世界上所有的难题，唯一不告诉的是怎么去解决这些问题。但也幸运的是在这个四不像的专业中，找到了自己喜欢并热爱的东西 – 数据和代码。</p><p>热爱代码是自己的第一步，第一次接触代码是在高中的信息科上，唯一的工具是家里一台 03 年生产的奔腾笔记本，第一次安装 Python，在交互式命令行敲击 print（‘hello world’）,就觉得这是非常酷的事情。上大学最喜欢的一门课是嵌入式系统（交通也要学这个，是不是很神奇），当看到自己写的代码经历烧录和串口传输可以操控硬件，是一件非常有成就感的事情，内心一直希望可以和乔布斯一样可以造出自己的盗版电话机，直到本科的信息论上老师说不同频段使用有规范，才发现条条框框早已梳在虚拟世界之中，接下来唯一有趣的便是数据了。</p><p>机器学习是数据处理中非常热门的话题，但是它到底解决了什么问题？从另外一个角度，当前社会生产力已经经历了很多次的分类，庞大甚至恐怖的信息分发机制笼罩着人们的生活：新闻、生活、外卖、购物、出行… 也由此产生了大量需要决策的需求，而如何将人力解放来使用模型解决它可以解决的问题，让人来确定模型去哪里便是机器学习的意义所在。而幸运的是交通中从不缺难题，因此机器学习、深度学习、强化学习中一些模型也慢慢被尝试动手下来，仿佛自己学会了很多。</p><p>打击来自日常实习的寻找，还记得字节的面试官问我“你知道辛普森悖论”吗？感觉自己就像骄傲的地球人被水滴戳破了虚浮的外表，好像自己从来没有认真的做过什么呢，模型也是只会调包，推导的公式也是复述的，所幸的是通过了滴滴的面试，让我得以认识到真实公司的运作，第一次见识如何处理大规模数据，第一次认真的魔改模型和调参，第一次因为模型效果不够好而焦虑，也第一次因为模型评估通过而高兴。明白了自己的优势并不是刷榜式的改模型，而是针对业务需求是分析问题、应用工具，这边是我需要往哪去。</p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/blog/53c6bb3ed9e27fc57f283b56c0aaadba.jpg" alt="53c6bb3ed9e27fc57f283b56c0aaadba" style="zoom:10%;" /><blockquote><p>心中有信仰，脚下才有力量</p></blockquote><p>人总是需要信仰的，这样才能保持前进的步伐。</p><ul><li>信仰可以是金钱，这是人类社会最通用的等价值交换物，也是个体耐以生存的必要，保持对金钱的渴望才能对现在有更多的动力，但也会专注与六便士而忽略远方的月亮。</li><li>信仰可以是兴趣，因为喜欢代码，旁边的开发小哥会参加 icpc，也会在闲暇时间刷题提升能力，这样的生活是愉悦的，是不自知的。</li><li>信仰也可以来自外部，当失去力量的时候往往需要外部的力量来激励自己，或者说“情绪价值”，保持对代码的热爱可以让人更快速的学习，保持对总结的热爱，可以规范人的行为</li></ul><p>所以在秋招的时候，由于不信任自己擅长什么，在过去一周都过的浑浑噩噩的。所以在此希望自己能勉励自己，在看见自己不足的情况下才是应该成长的时候，去前进而不是去逃避。也希望可以避免成为乌合之众，在牛马之中也可以有天命人的激情。</p>]]>
    </content>
    <id>https://blog.tjdata.site/posts/21152.html</id>
    <link href="https://blog.tjdata.site/posts/21152.html"/>
    <published>2024-09-03T12:55:42.000Z</published>
    <summary>
      <![CDATA[<p>从未想象过南方的夏天会如此的丰富多彩，阳光和暴雨的展开姿势是内陆从未见过的大开大合。当天气明媚的时候，仿佛广州塔都在微笑，而当暴雨倾城，突然分不清天地之间的边界。很幸运可以在六月底背负着被航班取消，踏着十个小时的高铁来到羊城，开始了自己的“无问西东“的暑期实习，也希望自己的]]>
    </summary>
    <title>盛夏之后，苦秋之前 ｜ 致求职</title>
    <updated>2024-09-03T14:23:11.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>chenlongxu</name>
    </author>
    <category term="生活杂谈" scheme="https://blog.tjdata.site/categories/%E7%94%9F%E6%B4%BB%E6%9D%82%E8%B0%88/"/>
    <category term="Apple" scheme="https://blog.tjdata.site/tags/Apple/"/>
    <category term="macOS" scheme="https://blog.tjdata.site/tags/macOS/"/>
    <category term="静电容键盘" scheme="https://blog.tjdata.site/tags/%E9%9D%99%E7%94%B5%E5%AE%B9%E9%94%AE%E7%9B%98/"/>
    <content>
      <![CDATA[<p>最近购买了一款静电容键盘 Niz68 有线双模，首先面临的最大的问题是这款键盘没有功能键，在对功能键的摸索中发现了自定义键盘的海洋，有一种第一次看到 vim的使用方式的敬畏感油然而生。更重要的激发对于键盘，这个在电脑诞生就陪伴人们的工具，产生了好奇：它是如何一步一步发展成为现在这个样子？它之后是否还会改变？从实体键盘到无线键盘，从电脑键盘到手机虚拟键盘，本文搜集材料来介绍键盘的发展史。</p><h2 id="电报-打字机"><a href="#电报-打字机" class="headerlink" title="电报 打字机"></a>电报 打字机</h2><p>19 世纪初，英国、法国和美国逐渐出现了电报，一种通过电信号传递信息的手段，为了将信息从 文本&#x2F;语言 转换成为 电信号，打字机 作为转换装置自然而然的诞生的，1866 年，“打字机之父” <a href="https://en.wikipedia.org/wiki/Christopher_Latham_Sholes">Christopher  Sholes</a>被认为是 QWERTY 键盘的发明家第一，</p><p>参考 wiki 百科，Sholes 在成为一家报纸的编辑者以后，尝试在印刷机排字工人罢工之后尝试制造一台用于排版的机器，之后它希望通过创建一台机器来实现对书籍、门票的页码编号，在 1866 年 11 月 13 日获取编号机的专利，之后与另一位机械车间的发明者发明一种可以敲击字母的机器，科学美国人将其成为“文字钢琴”</p><figure class="highlight apache"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs apache"> <span class="hljs-attribute">3</span> <span class="hljs-number">5</span> <span class="hljs-number">7</span> <span class="hljs-number">9</span> NOPQRSTUVWXYZ <br><span class="hljs-attribute">2</span> <span class="hljs-number">4</span> <span class="hljs-number">6</span> <span class="hljs-number">8</span> 。 ABCDEFGHIJKLM<br></code></pre></td></tr></table></figure><p>之后他们意识到速记员可能是最需要的用户，但是以最快的速度敲击了薄弱的机械结构，让其成为 可以使用的产品，在 1870 年代不断改进打字机，其中 James Densmore 建议将常用的字符组合分开以解决因敲击恢复速度缓慢造成的干扰问题。由此产生的布局至今在计算机键盘中使用，尽管干扰问题不再存在。</p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/img/Sholes_typewriter.jpg" alt="Sholes 打字机"></p><h2 id="键盘"><a href="#键盘" class="headerlink" title="键盘"></a>键盘</h2><p>键盘是我们接触电子设备最直接可靠的工具，它简直创造了一种新的交流方式。同时对于键盘本身，从面向对象的角度可以对ta 进行不同层次的抽象，主要包括硬件电路的物理实体和软件定义的快捷键， 由于键盘天生具有物流按键的含义，因此为了之后的修改，其天然的就具备足够多的功能修饰键来管理对应的信息，</p><h3 id="机械键盘？"><a href="#机械键盘？" class="headerlink" title="机械键盘？"></a>机械键盘？</h3><p>机械键盘的物理按键结构主要分为：</p><ol><li>防尘罩：保护内部零件、原理灰尘</li><li>机械轴（Switch）：舒适手感、按键反馈优化</li><li>黄金十字触点：灵敏反映、快速响应</li><li>强力弹簧：敲击寿命</li></ol><p>根据不同的轴体区分处<a href="https://www.zhihu.com/question/20973635">青、红、茶、黑四大轴体</a>，不同的轴体区分主要影响不同的手感。手感可以从两个方面判断：</p><ol><li>段落感，类似于圆珠笔的感觉，主要是青轴和茶轴</li><li>线性轴体，直上直下，干脆利弱，红轴为 45g、黑轴为 55g</li></ol><h3 id="薄膜键盘？"><a href="#薄膜键盘？" class="headerlink" title="薄膜键盘？"></a>薄膜键盘？</h3><p>薄膜键盘内部存在三层线路板，上下两层有导电线路，中是绝缘层，当键盘依靠按键下的硅胶按下到底，让键盘第一层与第三层接触，判断响应量</p><h3 id="静电容键盘？"><a href="#静电容键盘？" class="headerlink" title="静电容键盘？"></a>静电容键盘？</h3><p>利用电容量的变化来实现触发</p><h2 id="键盘是如何工作的"><a href="#键盘是如何工作的" class="headerlink" title="键盘是如何工作的"></a>键盘是如何工作的</h2><p>键盘在当今的计算机时代主要充当 <strong>输入设备</strong>的角色，通过键盘我们可以键入文档、使用快捷键、访问菜单、游戏等等，键盘的不同按键取决于不同的操作系统，通常键盘包括 60～100 键，功能包括</p><ol><li>打字键，存在不同的布局形式，包括 QQWER、Dvorak、ABCDE、XPeRT 等等</li><li>数字键盘，随着商业环境中计算机使用的增加，对于快速数据输入的需求随之增加</li><li>功能、控制，1986 年，IBM 进一步扩充基础键盘，增加功能键和控制键来让操作系统或应用程序可以将特定命令分配给不同的按键。之后 window 、Apple 都为键盘增加不同的按键</li></ol><p>但是从键盘本身可以看作是一台微型计算器，通过自己的矩阵形处理器电路将信息传入和传出该处理器，并通过存储器中的字符映射比较（maybe 查找表）确定输出的值。</p><p>其中键盘矩阵是按键下方的电路网络，在键盘中电路在每个键下方的某个点处断开，当您按下一个键时，它会按下一个开关从而完成电路并允许少量电流通过。在这个过程中往往出现的问题是机械机构会出现反弹的问题，通常需要滤波装置来消除这种振动。</p><p>但是，电容按键可以认为是非机械的，电容式键盘中电流不断流过按键矩阵的所有部分，每个按键均存在弹簧，底部存在一个小板，当您按下某个按键后，该板会移动到其下方的板，当两块板靠近时流过矩阵的电流量发生变化，进而解释为该按键的位置，电容键盘的好处在于两者未接触进而增加键盘的寿命。</p><p>除了传统的键盘之外，在针对人体工程学设计 的键盘往往将键盘分隔开来让人嗯的双手分开的公园，使得手腕与前臂对齐。</p><p>在键盘处理器确定需要将那些字符发送给计算机之后，可以将字符保留在内存缓冲区中，然后通过信息传送装置，如有线的 rs232、sub 等，无线装置包括蓝牙、射频（RF）等等发送给键盘，并由系统分析是否为系统级别命令 or 操作系统级别命令。</p><h2 id="软件定义键盘-｜-karabiner"><a href="#软件定义键盘-｜-karabiner" class="headerlink" title="软件定义键盘 ｜ karabiner"></a>软件定义键盘 ｜ karabiner</h2><p>在 Mac 端一款非常强大的键位映射工具，官网的描述是“A powerful and stable keyboard customizer for macOS”，其核心功能包括</p><ol><li>简单映射，一对一的按键映射关系</li><li>复杂映射，包括一对多的映射，外加条件的映射关系</li></ol><p><a href="https://today.line.me/hk/v2/article/1P1BXm">电脑键盘进化史</a></p>]]>
    </content>
    <id>https://blog.tjdata.site/posts/4529.html</id>
    <link href="https://blog.tjdata.site/posts/4529.html"/>
    <published>2024-04-30T01:51:59.000Z</published>
    <summary>
      <![CDATA[<p>最近购买了一款静电容键盘 Niz68 有线双模，首先面临的最大的问题是这款键盘没有功能键，在对功能键的摸索中发现了自定义键盘的海洋，有一种第一次看到 vim的使用方式的敬畏感油然而生。更重要的激发对于键盘，这个在电脑诞生就陪伴人们的工具，产生了好奇：它是如何一步一步发展成为]]>
    </summary>
    <title>电脑键盘背后的故事 feat. 宁芝 Plum</title>
    <updated>2024-09-03T14:23:11.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>chenlongxu</name>
    </author>
    <category term="数据科学" scheme="https://blog.tjdata.site/categories/%E6%95%B0%E6%8D%AE%E7%A7%91%E5%AD%A6/"/>
    <category term="机器学习" scheme="https://blog.tjdata.site/tags/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/"/>
    <category term="因果推断" scheme="https://blog.tjdata.site/tags/%E5%9B%A0%E6%9E%9C%E6%8E%A8%E6%96%AD/"/>
    <category term="AB 实验" scheme="https://blog.tjdata.site/tags/AB-%E5%AE%9E%E9%AA%8C/"/>
    <category term="观察数据建模" scheme="https://blog.tjdata.site/tags/%E8%A7%82%E5%AF%9F%E6%95%B0%E6%8D%AE%E5%BB%BA%E6%A8%A1/"/>
    <category term="选择偏差" scheme="https://blog.tjdata.site/tags/%E9%80%89%E6%8B%A9%E5%81%8F%E5%B7%AE/"/>
    <content>
      <![CDATA[<p>这里参考很多前人的经验：</p><p><a href="https://cloud.tencent.com/developer/article/1913932?areaId=106001">因果推断笔记——入门学习因果推断在智能营销、补贴的通用框架（十一）-腾讯云开发者社区-腾讯云</a></p><h2 id="基础理论"><a href="#基础理论" class="headerlink" title="基础理论"></a>基础理论</h2><h3 id="0-相关性和因果性"><a href="#0-相关性和因果性" class="headerlink" title="0. 相关性和因果性"></a>0. 相关性和因果性</h3><p>在日常的生活和数据分析中，我们可以得到大量和相关性的杰伦，通常这些相关性和因果性存在对称性，“小偷多的地方，警察多” or “警察多的地方，小偷也会多”，那么是否需要对这个城市增加警力？</p><p>因果性往往是存在单箭头的，比如辛普森悖论</p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/img/image-20240429194410328.png" alt="image-20240429194410328"></p><p>吃药的意愿收到 X 的印象，由此 T 和 X 共同会影响最终的 Y，这和时候需要做分层的解释才能得到最终的结果</p><h3 id="1-解决问题"><a href="#1-解决问题" class="headerlink" title="1. 解决问题"></a>1. 解决问题</h3><p>推理问题的层次包括：</p><ol><li><strong>关联 association</strong>：纯粹的统计关系，在 X 条件下 Y 的输出会怎么样？eg. 购买儿童纸尿裤的人有较大概率会购买啤酒</li><li><strong>介入 intervention</strong>：如果做了某件事情，会发生什么样的效果？eg. 如果我们将地铁票价翻倍会如何？如果吃了药是否会变好？</li><li><strong>反事实推断 counterfactual inference</strong>：如果我们希望 Y 变化，我们希望对 x 做出什么样的改变？eg. 如果地铁人数减少，我们希望知道是否是由票价提高引起的？我们头疼变好是否是因为吃了药</li></ol><h3 id="2-内生性问题"><a href="#2-内生性问题" class="headerlink" title="2. 内生性问题"></a>2. 内生性问题</h3><p><strong>定义：</strong></p><p>在线性回归模型中可以定义四个假设：</p><ol><li>响应变量 y 和解释变量 x 之间存在线性随机函数关系</li><li>严格外生假定: 当所有时期的解释变量给定时，每一期的随机干扰项的均值都为 0</li><li>球形扰动假定</li><li>无完全共线性假定，也就是变量之间不存在线性关系</li></ol><p>由此可以得到对应权重变量的OLS 的最优线性无偏估计量，外生性值得是：</p><p>E(误差 ｜ 变量) &#x3D; 0 ，E（误差 t ｜ 变量 t） &#x3D; 0</p><p>如果外生性假定不满足，则会产生内生性问题，常见的问包括</p><ol><li>遗漏解释变量，存在un observation variable</li><li>X 和 Y 之间互为因果</li><li>自选择问题</li><li>测量偏差问题</li></ol><p>常见的解决方案包括</p><ol><li>自然实验法，将其看作是一种实验组和对照组</li><li>双重差分法 DID，双重差分法，倘若出现一次外部冲击，影响了一部分样本，对另外一部分样本无影响，如果如何外部冲击的影响？可以使用收影响样本做差、未受影响样本做差，差再做差得到最终的结果</li><li>工具变量 IV，找到影响内在变量的外生变量，连同其他的变量得到最终的结果</li><li>动态面板回归法，将解释变量和被解释变量的滞后项作为工具变量的方法来进行使用，但是不认可这种处理方法</li><li>断点回归</li><li>倾向得分匹配模型 PSM：加权、分层、匹配</li></ol><p>关于 PS 问题存在几个误区：</p><ol><li>没有从根本上介绍因为选择偏差或者遗漏变量造成的内生性问题</li><li>不能成为 准实验，无法提供模拟实验条件</li><li>外部有效性条件，在共同支撑假设，PSM 也会排除缺乏对照组的样本进而使得样本代表性变差，影响效果的外部有效性</li></ol><h3 id="3-因果分析的两种框架"><a href="#3-因果分析的两种框架" class="headerlink" title="3. 因果分析的两种框架"></a>3. 因果分析的两种框架</h3><p><strong>潜在结果框架 Rubin potential outcome RCM</strong></p><p>希望估计单个个体或者整体平均意义下的 treatment effect：</p><ol><li>识别（identification）将因果关系从关联中分割</li><li>估计（estimation）计算因果关系的大小</li><li>检验（hypo test）我们有多大信心结果是正确的</li><li>置信（conf int）结果会存在多大的扰动</li></ol><p>最重要的是需要找到合适的：对照组和实验组</p><p>keywords：</p><ol><li>匹配方法</li><li>双重差分模型 DID</li><li>合成控制法 Synthetic control method</li><li>断点回归</li></ol><p><strong>因果图结果框架 Pearl causal graph CGM</strong></p><p>有向图用来描述变量之间的因果关系，通过计算因果图之间的条件分布，获得变量之间的因果关系，希望使用条件分布来消除估计偏差，最核心的估计检验分布，消除其他变量带来的偏差</p><p>侧重识别</p><p>keywords：后门准则 和 前门准则</p><h3 id="4-调节效应于中介效应"><a href="#4-调节效应于中介效应" class="headerlink" title="4. 调节效应于中介效应"></a>4. 调节效应于中介效应</h3><ol><li>中介效应：X —&gt; M —&gt; Y</li><li>调节效用：X —&gt; Y， M —&gt; Y</li></ol><p>比如，性别 X 和录取 Y 之间的关系，其中性别 X 会影响 M 学历，进而影响 Y，这个是中介效用，这个时候我们需要消除这个学历（confounders）的影响来保证学历不变的情况下，衡量性别于录取结果之间的关系</p><p>比如，收入 I 会影响M，这个就是调节作用</p><h3 id="5-常见假设"><a href="#5-常见假设" class="headerlink" title="5. 常见假设"></a>5. 常见假设</h3><p><strong>无混淆性 unconfounder ｜ 可忽略假设 Ignorability ｜ CIA 假设</strong></p><p>不存在未被观察到的可以影响 T 分布的混杂因子</p><p><strong>正值假设 positivity</strong></p><p>至少存在一项干预导致的结果是无法被观察饿的</p><p><strong>一致性假设 consistency ｜ 稳定单元干预值假设 Stable unit treatment value assumption SUTVA</strong></p><p>任意单元的潜在结果都不会因为其他单元的干预发生改变而改变，且对于每个单元其所接受的每种干预不存在不同的形式或版本导致不同的潜在结果</p><p>干预水平对于所有的个体一致</p><h2 id="常见模型"><a href="#常见模型" class="headerlink" title="常见模型"></a>常见模型</h2><h3 id="1-PS-based-方法"><a href="#1-PS-based-方法" class="headerlink" title="1. PS based 方法"></a>1. PS based 方法</h3><p>Match 匹配方法，寻找对照组</p><p>IPW 逆倾向性打分的方法</p><p>缺点：1. 需要对 PS 估计足够准确 2. 过去趋近于 会导致权重过高</p><p>DR or （AIPW）增强 IPW 方法结合倾向性打分和结果回顾模型来得样本权重</p><p>Stratification PSS 方法</p><h3 id="2-数据驱动的方法"><a href="#2-数据驱动的方法" class="headerlink" title="2. 数据驱动的方法"></a>2. 数据驱动的方法</h3><p>D2VD 变量分解方法</p><ol><li>混淆变量 confounders：影响干预变量 T，也会影响结果变量 Y</li><li>调整变量 adjustment： 与干预变量 T 独立，但是会影响到 Y</li><li>无关变量，不会直接影响到干预变量于估计变量</li></ol><h3 id="3-平衡性-and-均衡性检验检查"><a href="#3-平衡性-and-均衡性检验检查" class="headerlink" title="3. 平衡性 and 均衡性检验检查"></a>3. 平衡性 and 均衡性检验检查</h3><p><strong>如何知道匹配的效果？或者实验组对照组是否分布均匀</strong></p><p>最直观的是观察</p><ol><li>PS 分数在匹配前后的分布，或者是</li><li>特征匹配前后的 QQ plot</li><li>量化指标 SMD，用于计算两者之间的差异</li><li>共同支撑检验 common support：主要检验的目的是确定针对每个处理组，都有对照组与之匹配</li></ol><p><strong>反驳 Refute</strong></p><p>使用不同的数据干预方式来进行检验，来验证得到的因果效应的有效性，反驳的基本原理是对于数据进行某种关于之后，对重新生成的数据进行因果效应的估计</p><ol><li>安慰剂数据方法，使用 placebo 的方法来代替真实的处理变量</li><li>随机混淆变量，增加一个随机生成的混淆变量</li><li>子集数据方法：随机删除一部分数据，作为最终数据的随机自己</li></ol><h3 id="4-DID-双重差分法"><a href="#4-DID-双重差分法" class="headerlink" title="4. DID 双重差分法"></a>4. DID 双重差分法</h3><p>在一定程度上减轻了选择偏差和外因带来的影响</p><p>使用的时候需要满足的假设：</p><ol><li>线性关系假设：来自于线性回归，认为因变量和结果变量存在线性关系</li><li>个体处理稳定假设 SUTVA<ol><li>一致性 consistency：个体接受处理所导致的潜在结果是唯一的</li><li>互不干预：个体接受处理的潜在结果不会受到其他个体吃的影响，eg 比如我在淘宝上购买红包后会更愿意买东西，并不会因为我同事也领到了红包而降低意愿</li></ol></li><li>平行趋势假设：结果的趋势是一只的</li></ol><h3 id="5-工具变量法-Instrumental-variable"><a href="#5-工具变量法-Instrumental-variable" class="headerlink" title="5. 工具变量法 Instrumental variable"></a>5. 工具变量法 Instrumental variable</h3><p>工具变量需要存在以下三个条件</p><ol><li>Z 和 T 相关</li><li>Z 只能通过T 影响 Y</li><li>Z 和 Y 没有共同诱因</li></ol><h3 id="6-Double-machine-learning"><a href="#6-Double-machine-learning" class="headerlink" title="6. Double machine learning"></a>6. Double machine learning</h3><p>消除精准预测，使用任意的 ML 模型给出特征对于目标的无偏估计</p><h2 id="应用细节"><a href="#应用细节" class="headerlink" title="应用细节"></a>应用细节</h2><h3 id="1-双重机器学习-Double-machine-learning"><a href="#1-双重机器学习-Double-machine-learning" class="headerlink" title="1. 双重机器学习 Double machine learning"></a>1. 双重机器学习 Double machine learning</h3><p>问题例子：分析直播推荐多样性（D）对用户活跃度（Y）的影响，都收到用户自身的画像、用户过去的直播浏览历史 X 有关</p><p>存在的问题：</p><ol><li>X 的纬度太高怎么办？</li><li>不知道 X 和 D 的关系</li></ol><p>方法思路：</p><ol><li>CIA 假设，所有混淆变量都可以被观测</li><li>ML 自带的正则化来达到高纬度变量的选择的目的</li></ol><p>估计 X 对 Y 的影响，再估计 X 对 D 的影响，提出这两部分之后，取残差进行估计，来分析直播多样性和输出之间的关系</p><h3 id="2-因果随机森林模型"><a href="#2-因果随机森林模型" class="headerlink" title="2. 因果随机森林模型"></a>2. 因果随机森林模型</h3><p>相当于训练一个 treatment 的树，然后在树的节点做因果头对岸，类似于match or subclass很相似</p><h3 id="3-meta-learner-对于-uplift-modeling"><a href="#3-meta-learner-对于-uplift-modeling" class="headerlink" title="3. meta learner 对于 uplift modeling"></a>3. meta learner 对于 uplift modeling</h3><p>S-learner</p><p>T-learner</p><p>X-learner：利用 weight function 来得到两种不同 ATE 估计的求和</p><h3 id="4-快手的因果推断和实验估计"><a href="#4-快手的因果推断和实验估计" class="headerlink" title="4. 快手的因果推断和实验估计"></a>4. 快手的因果推断和实验估计</h3><p>场景：直播是一个双边网络</p><p>网络设计的难点：网络效应的检测和应对</p><ol><li>流量扶持情况下，主播是否存在流量基站</li><li>主播侧传播到用户侧的双边网络效用</li><li>用户侧传播到主播侧的双边网络效用</li></ol><p>更微观一点的：</p><p>问题挂件是否会存在刺激消费？</p><p>主播：control 不上挂件、treatment 上挂件</p><p>用户：control 看不到挂件、treatment 看得到挂件</p><ol><li>挂件可能会导致 treatment用户在 treatment 和 control 的用户之间转移直播消费</li><li>treatment 主播可能会更加卖力直播，影响 treatment 和 control 组观众</li></ol><h3 id="5-淘宝中的PSM-DID"><a href="#5-淘宝中的PSM-DID" class="headerlink" title="5. 淘宝中的PSM+DID"></a>5. 淘宝中的PSM+DID</h3><p>实验组和对照组是否同质</p><p><a href="https://mp.weixin.qq.com/s/pjgYKfFICqzvFwhHwHBNow">倾向得分匹配（PSM）的原理以及应用</a></p><p>PSM： 根据倾向性打分来进行匹配，适用于样本属性很高，并且不好做切断的离散变量</p><p>CEM：广义精确匹配，使用核心混杂因子进行匹配，每个实验用户匹配到的 N 个同特征用户作为对照组，取 N 个同特征用户的核心指标均值作为实验用户的对照</p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/img/image-20240429194428562.png" alt="image-20240429194428562"></p><h3 id="6-淘宝3D-化价值分析"><a href="#6-淘宝3D-化价值分析" class="headerlink" title="6. 淘宝3D 化价值分析"></a>6. 淘宝3D 化价值分析</h3><p><a href="https://mp.weixin.qq.com/s/etMqiZ0oKH9BtrGwLdJu2g">mp.weixin.qq.com</a></p><h3 id="7-腾讯因果推断框架总结"><a href="#7-腾讯因果推断框架总结" class="headerlink" title="7 腾讯因果推断框架总结"></a>7 腾讯因果推断框架总结</h3><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/img/image-20240429194435623.png" alt="image-20240429194435623"></p><h3 id="8-滴滴国际化外卖团队的因果推断"><a href="#8-滴滴国际化外卖团队的因果推断" class="headerlink" title="8. 滴滴国际化外卖团队的因果推断"></a>8. 滴滴国际化外卖团队的因果推断</h3><p>因果推断建模和 auuc</p><p>ROI &#x3D; （指标｜干预 - 指标｜不干预）&#x2F; （补贴｜干预 - 补贴｜不干预）</p><p>ROI 不一定会是一个好的指标，同时 GMV 和成本分层下对应的ROI 提升也是有效的</p><h3 id="9-QQ-浏览器-push-优化实践"><a href="#9-QQ-浏览器-push-优化实践" class="headerlink" title="9. QQ 浏览器 push 优化实践"></a>9. QQ 浏览器 push 优化实践</h3><p><a href="https://zhuanlan.zhihu.com/p/451884908">安全验证 - 知乎</a></p><h2 id="个人总结"><a href="#个人总结" class="headerlink" title="个人总结"></a><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/img/image-20240429194445924.png" alt="image-20240429194445924">个人总结</h2><p>离散选择或者一类的回归分析、基于特征重要性的树模型是从 结果来分析对应的原因，这个其实和因果推断中得出 AB 实验如何来分析背后的差异是一致的，本质上解决的问题是从结果到原因</p><ul><li>改不改发优惠卷</li></ul><p>在因果推断方法中，我们希望解决what if 的问题，也就是从如果我们希望得到什么样的结果，我们应该如何来做出自己的策略的选择，这个是从“原因来分析结果”，所以通常有因果关系发现和因果效用估计两种方式</p><ul><li>线路关闭受到哪些影响因素</li><li>指标异常分析、流失分析、DAU 分析</li></ul><p>那么为什么要做因果推断？这个表现在强化学习中是可能会造成智能体学习的策略估计，通常最简单的方式是DQN 的 Q 值会过高轨迹，为了解决这个 on policy 的问题，我们通常会使用 off policy 的方法来分离探索智能体和目标智能体来得到教优估计。</p>]]>
    </content>
    <id>https://blog.tjdata.site/posts/77fa14ff.html</id>
    <link href="https://blog.tjdata.site/posts/77fa14ff.html"/>
    <published>2024-04-29T11:42:56.000Z</published>
    <summary>
      <![CDATA[<p>这里参考很多前人的经验：</p>
<p><a href="https://cloud.tencent.com/developer/article/1913932?areaId=106001">因果推断笔记——入门学习因果推断在智能营销、补贴的通用框架（十一）-腾讯云开发者社]]>
    </summary>
    <title>面试经验 vol3 ｜ 从 AB 实验到因果推断</title>
    <updated>2024-04-29T11:45:10.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>chenlongxu</name>
    </author>
    <category term="数据科学" scheme="https://blog.tjdata.site/categories/%E6%95%B0%E6%8D%AE%E7%A7%91%E5%AD%A6/"/>
    <category term="机器学习" scheme="https://blog.tjdata.site/tags/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/"/>
    <category term="深度学习" scheme="https://blog.tjdata.site/tags/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/"/>
    <category term="损失函数" scheme="https://blog.tjdata.site/tags/%E6%8D%9F%E5%A4%B1%E5%87%BD%E6%95%B0/"/>
    <category term="评价指标" scheme="https://blog.tjdata.site/tags/%E8%AF%84%E4%BB%B7%E6%8C%87%E6%A0%87/"/>
    <category term="模型评估" scheme="https://blog.tjdata.site/tags/%E6%A8%A1%E5%9E%8B%E8%AF%84%E4%BC%B0/"/>
    <content>
      <![CDATA[<p>Mitchell 在《机器学习》中对其的定义是：</p><blockquote><p><strong>一个计算机程序被认为能够从经验 E 中学习,去完成任务 T,达到性能度量 P,当且仅当,通过经验 E 的学习,其在任务 T 上的性能度量 P 得到了提升。</strong></p></blockquote><p>假设我们有一个模型 $f(x;θ)$,其中 x 是输入,θ 是模型的参数。给定一组训练数据  $D&#x3D;{(x_i,y_i)}_{i&#x3D;1}^N$,其中 $x_i$是输入,$y_i$是对应的目标输出。我们的目标是找到一组参数 θ,使得模型 f(x;θ) 在任务 T 上的性能度量 P 最大化。</p><p>这里,损失函数 L(f(x;θ),y) 的作用就是衡量模型的预测输出 f(x;θ) 与真实目标输出 y 之间的差异。我们希望通过最小化损失函数,来找到最优的模型参数 θ。因此,机器学习的任务可以表示为一个优化问题:</p><p>$$ min_\theta \frac{1}{N} L(f(x_i;\theta),y_i) $$</p><p>通过最小化训练数据上的平均损失,我们得到了一组最优参数 θ,使得模型 $f(x;\theta)$在任务 $T$上的性能度量 P 得到提升,从而实现了从经验 E 中学习的目标。</p><p>在学习链路的整个过程中，数据（E）、模型（计算机程序）、度量（L）、训练（T） 都是非常重要的部分，本文主要针对学习过程中针对不同的任务设计不同的损失函数，来实现模型效果的最优化。</p><h2 id="0x00-如何设计损失函数"><a href="#0x00-如何设计损失函数" class="headerlink" title="0x00 如何设计损失函数"></a>0x00 如何设计损失函数</h2><h3 id="1-1-ERM-输出～标签"><a href="#1-1-ERM-输出～标签" class="headerlink" title="1.1 ERM 输出～标签"></a>1.1 ERM 输出～标签</h3><p>如果把数据看作是历史观察的经验，那么经验风险就是模型在训练数据上的平均误差：</p><p>$$ R_{erm} &#x3D; \frac{1}{N}\Sigma L(f(x_i),y_i) $$</p><h3 id="1-2-SRM-模型本身"><a href="#1-2-SRM-模型本身" class="headerlink" title="1.2 SRM 模型本身"></a>1.2 SRM 模型本身</h3><p>由于模拟复杂度和问题复杂度之间不匹配会造成《欠拟合或过拟合》的问题，因此通过对模型的复杂度进行限制有有效的避免过拟合</p><p>$$ R_{srm} &#x3D; R_{erm}+\lambda \Omega(f) $$</p><p>初次之外，我们可能需要根据不同的任务来区分不同的损失函数设计方式，比如：</p><ol><li>GAN 的损失函数设计，将生成器看作负样本，将真实样本看作正样本，训练过程</li><li>SVM 的损失函数设计，利用最大间隔来区分正负样本</li><li>交叉熵或 KL 散度，利用信息论来衡量模型预测概率和真实概率分布的差异</li><li>排序学习损失函数设计，包括 list wise、Pair wise、List wise 等方式计算</li></ol><table><thead><tr><th>分类</th><th>Cross entropy</th><th>回归</th><th>Square loss</th><th>LTR</th><th>pairwise CE</th></tr></thead><tbody><tr><td></td><td>hinge loss</td><td></td><td>absolute loss</td><td></td><td>pairwise Hinge</td></tr><tr><td></td><td>Focal loss</td><td></td><td>Huber loss</td><td></td><td>pairwise Square</td></tr><tr><td></td><td>weighted CE</td><td></td><td>Log loss</td><td></td><td>lambdaRANK loss</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td>ListNet loss</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td>对比</td><td>infoNCE</td><td>多任</td><td>Linear weighted</td><td>多标</td><td>soft margin</td></tr><tr><td>学习</td><td>Triplet</td><td>务学</td><td>Mean squared</td><td>签学</td><td>ranking</td></tr><tr><td></td><td>NCE</td><td>习</td><td>uncertain loss</td><td>习</td><td></td></tr><tr><td></td><td>CPC</td><td></td><td>gradient norm</td><td></td><td></td></tr></tbody></table><p>初次之外还包括很多其他的任务，比如分类、回归、学习排序、搜推广、强化学习、生成学习、对比学习、度量学习、多任务学习、异常检测损失、few-shot 学习、零样本学习、多标签学习、非监督学习损失、半监督学习损失、持续学习损失函数、因果推断损失等等。</p><h2 id="0x01-分类损失函数"><a href="#0x01-分类损失函数" class="headerlink" title="0x01 分类损失函数"></a>0x01 分类损失函数</h2><h3 id="1-1-Cross-Entropy-损失"><a href="#1-1-Cross-Entropy-损失" class="headerlink" title="1.1 Cross Entropy 损失"></a>1.1 Cross Entropy 损失</h3><p>利用0-1 分布可以推导出对应的损失函数，注意这里的y_hat 是概率，y是 0-1 标签</p><p>$$ L(y,y_{hat}) &#x3D;\Sigma ylog(y_{hat})+(1-y)log(1-y_{hat})) $$</p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/img/image-20240429194055099.png" alt="image-20240429194055099"></p><h3 id="1-2-KL散度"><a href="#1-2-KL散度" class="headerlink" title="1.2 KL散度"></a>1.2 KL散度</h3><p>KL 散度 &#x3D; 交叉熵 - 信息熵，用于策略两个概率分布差异的方法，其数学表示为；注意通过这个可以看出两者具有非负性、非对称性。</p><p>$$ KL(P||Q) &#x3D; \Sigma_xP(x)\frac{P(x)}{Q(x)} $$</p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/img/image-20240429194102381.png" alt="image-20240429194102381"></p><h3 id="1-3-指数损失"><a href="#1-3-指数损失" class="headerlink" title="1.3 指数损失"></a>1.3 指数损失</h3><p>同号时两者的损失较小，当两者sign 不一致后导致惩罚急剧增大</p><p>$$ L &#x3D; \Sigma exp(-y_if(x_i)) $$</p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/img/image-20240429194112167.png" alt="image-20240429194112167"></p><h3 id="1-4-Hinge-los"><a href="#1-4-Hinge-los" class="headerlink" title="1.4 Hinge los"></a>1.4 Hinge los</h3><p>确定性较强时损失为 0，否则损失不为 0</p><ol><li>间隔最大化：Hinge loss 通过惩罚位于正确分类一边但距离决策边界太近的点，以及位于错误分类一边的点，从而鼓励模型找到一个能够最大化正负样本间隔的决策边界。</li><li>对正确分类的容忍度：如果一个样本被正确分类，并且其预测值与实际标签的乘积大于1（即，它们之间的间隔超过了1），那么这个样本对损失函数的贡献为0。这意味着模型不会因为正确分类的样本而受到惩罚，只要这些样本距离决策边界有足够的间隔。</li><li>对错误分类的惩罚：对于错误分类的样本（即，预测值与实际标签的乘积小于1），损失值随着分类错误的程度增加而增加。这促使模型减少这些错误。</li></ol><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/img/image-20240429194121832.png" alt="image-20240429194121832"></p><h3 id="1-5-Focal-loss"><a href="#1-5-Focal-loss" class="headerlink" title="1.5 Focal loss"></a>1.5 Focal loss</h3><p>通常用于解决分类任务中的类别不平衡和难易样本的问题。它是一种针对二分类问题设计的损失函数，旨在减轻易分类样本对模型训练的影响，使得模型更加关注难分类样本，从而提高整体分类性能。因此，Focal Loss属于分类任务中的损失函数。</p><p>$$ FL(p_t )&#x3D;−α_t (1−p_t )^γ log(p_t ) $$</p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/img/image-20240429194129471.png" alt="image-20240429194129471"></p><figure class="highlight jsx"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br></pre></td><td class="code"><pre><code class="hljs jsx"><span class="hljs-keyword">import</span> torch<br><span class="hljs-keyword">import</span> torch.<span class="hljs-property">nn</span> <span class="hljs-keyword">as</span> nn<br><span class="hljs-keyword">import</span> torch.<span class="hljs-property">nn</span>.<span class="hljs-property">functional</span> <span class="hljs-keyword">as</span> F<br><br><span class="hljs-keyword">class</span> <span class="hljs-title class_">FocalLoss</span>(nn.<span class="hljs-property">Module</span>):<br>    def <span class="hljs-title function_">__init__</span>(self, gamma=<span class="hljs-number">2</span>, weight=<span class="hljs-title class_">None</span>, reduction=<span class="hljs-string">&#x27;mean&#x27;</span>):<br>        <span class="hljs-variable language_">super</span>(<span class="hljs-title class_">FocalLoss</span>, self).<span class="hljs-title function_">__init__</span>()<br>        self.<span class="hljs-property">gamma</span> = gamma<br>        self.<span class="hljs-property">weight</span> = weight<br>        self.<span class="hljs-property">reduction</span> = reduction<br>        <br>    def <span class="hljs-title function_">forward</span>(self, input, target):<br>        # 计算交叉熵<br>        ce_loss = F.<span class="hljs-title function_">cross_entropy</span>(input, target, reduction=<span class="hljs-string">&#x27;none&#x27;</span>)<br>        <br>        # 计算pt<br>        pt = torch.<span class="hljs-title function_">exp</span>(-ce_loss)<br>        <br>        # 计算focal loss<br>        focal_loss = ((<span class="hljs-number">1</span>-pt)**self.<span class="hljs-property">gamma</span> * ce_loss).<span class="hljs-title function_">mean</span>()<br>        <br>        <span class="hljs-keyword">return</span> focal_loss<br></code></pre></td></tr></table></figure><h2 id="0x02-回归损失函数"><a href="#0x02-回归损失函数" class="headerlink" title="0x02 回归损失函数"></a>0x02 回归损失函数</h2><h3 id="2-1-MSE-均方差损失函数"><a href="#2-1-MSE-均方差损失函数" class="headerlink" title="2.1 MSE 均方差损失函数"></a>2.1 MSE 均方差损失函数</h3><p>用于衡量样本真实值和预测值之间的差距，利用概率可以推导出背后的公式</p><h3 id="2-2-RMSE-均方根误差损失函数"><a href="#2-2-RMSE-均方根误差损失函数" class="headerlink" title="2.2 RMSE 均方根误差损失函数"></a>2.2 RMSE 均方根误差损失函数</h3><p>保证与样本量纲保持一致</p><h3 id="2-3-MAE-绝对值损失"><a href="#2-3-MAE-绝对值损失" class="headerlink" title="2.3 MAE 绝对值损失"></a>2.3 MAE 绝对值损失</h3><h2 id="0x03-对比学习（contrastive-learning）中的损失函数"><a href="#0x03-对比学习（contrastive-learning）中的损失函数" class="headerlink" title="0x03 对比学习（contrastive learning）中的损失函数"></a>0x03 对比学习（contrastive learning）中的损失函数</h2><p><a href="https://zhuanlan.zhihu.com/p/346686467">对比学习（Contrastive Learning）综述</a></p><p>这里总结一下对比学习的基本思想，主要是通过度量两者分布的距离，保证同类别度量尽可能小，不同类型之间的距离尽可能的大</p><h3 id="3-1-contrastive-loss"><a href="#3-1-contrastive-loss" class="headerlink" title="3.1 contrastive loss"></a>3.1 contrastive loss</h3><p>对比损失中其中最困难的应该是如何在无标签数据中定义标签来进行学习，其中 d 代表的是(x1,x2)之间的样本距离，其中 y 表示两者是否为同类型的样本，类比弹簧势能 的定义：</p><ol><li>对于模型预测为同类别，1，但是样本实际的距离越远，两者之间的损失越大</li><li>对于模型预测为非同类，0，但是样本实际的距离越远，两者的损失函数越小；至少保证在一定 margin 外不会出现 0 的情况</li></ol><p>对比损失属于 Pair wise 的一种，在通常的情况下并不需要计算所有样本下的损失，而是计算正样本和负样本之间的距离可以作为方式，或者增加一些随机样本、负采样、软采样的方式。</p><p>$CL &#x3D; \frac{1}{2N}\Sigma [y_i ⋅d^2 +(1−y_i )⋅max(margin−d,0)^2 ]$</p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/img/image-20240429194139259.png" alt="image-20240429194139259"></p><h3 id="3-2-Triplet-los-三元组损失"><a href="#3-2-Triplet-los-三元组损失" class="headerlink" title="3.2 Triplet los 三元组损失"></a>3.2 Triplet los 三元组损失</h3><p>但是在实际的训练过程中，我们并不确定所有的样本都可以计算，同时假设所有的样本无限拉近可能会导致过拟合的风险。因此希望通过对比的方式将三元组分为（x 正，x 负，x）;也就是将数据集划分为：Anchor、positive、negative</p><p>$$ L&#x3D; max(d(x^+,x)-d(x^-,x)+\alpha,0) $$</p><p>FaceNet: A Unified Embedding for Face Recognition and Clustering</p><p>在搜索推荐场景中：</p><ol><li>anchor：用户当前搜索查询的浏览记录</li><li>postive：用户点击或者互动过的相关商品和内容</li><li>negative：用户未点击或互动的不相关的商品</li></ol><h3 id="3-3-NCE-loss"><a href="#3-3-NCE-loss" class="headerlink" title="3.3 NCE loss"></a>3.3 NCE loss</h3><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/img/image-20240429194150982.png" alt="image-20240429194150982"></p><h3 id="3-4-Info-NCE-loss"><a href="#3-4-Info-NCE-loss" class="headerlink" title="3.4 Info NCE loss"></a>3.4 Info NCE loss</h3><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/img/image-20240429194208664.png" alt="image-20240429194208664"></p><h3 id="3-5-Center-loss"><a href="#3-5-Center-loss" class="headerlink" title="3.5 Center loss"></a>3.5 Center loss</h3><p>A Discriminative Feature Learning Approach for Deep Face Recognition</p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/img/image-20240429194216806.png" alt="image-20240429194216806"></p><h3 id="3-6-Circle-loss"><a href="#3-6-Circle-loss" class="headerlink" title="3.6 Circle loss"></a>3.6 Circle loss</h3><h2 id="0x04-排序学习（learning-to-rank）中的损失函数"><a href="#0x04-排序学习（learning-to-rank）中的损失函数" class="headerlink" title="0x04 排序学习（learning to rank）中的损失函数"></a>0x04 排序学习（learning to rank）中的损失函数</h2><p><a href="https://www.xiemingzhao.com/posts/IntroductionofLTR.html">LTR(Learning to Rank)概述</a></p><p>了解排序问题首先需要明确目的，比如在搜索问题中，最关心的是返回 N 个样本的相关顺序关系，而不是每个样本的预测值最准确，属于 ranking 问题（另一类是 rate 问题）</p><p>对于训练样本的标注主要包括以下两种：</p><ol><li>人工标注，针对搜索结果进行不同等级的划分</li><li>历史数据，通过搜索历史来获取对应的标注，对应这种观察数据存在选择偏差</li></ol><p>根据 Point wise、Pair wise、List wise，</p><ol><li>Pointwise: Subset Ranking, McRank, Prank, OC SVM</li><li>Pairwise: Ranking SVM, RankBoost, RankNet, GBRank, IR SVM, Lambda Rank, LambdaMart</li><li>Listwise: ListNet, ListMLE, AdaRank, SVM MAP, Soft Rank</li></ol><h2 id="0x05-生成学习（Generative）中的损失函数"><a href="#0x05-生成学习（Generative）中的损失函数" class="headerlink" title="0x05 生成学习（Generative）中的损失函数"></a>0x05 生成学习（Generative）中的损失函数</h2><p><a href="https://github.com/hindupuravinash/the-gan-zoo">https://github.com/hindupuravinash/the-gan-zoo</a></p><h2 id="0x06-多任务学习（Multi-task-learning）中的损失函数"><a href="#0x06-多任务学习（Multi-task-learning）中的损失函数" class="headerlink" title="0x06 多任务学习（Multi-task learning）中的损失函数"></a>0x06 多任务学习（Multi-task learning）中的损失函数</h2><ol><li>uncertainty weighting 不确定性</li><li>Grad normalization 梯度均衡</li><li>Multi-objective optimization</li><li>Geometric loss</li><li>HydaLearn 存在的问题</li><li>Cov - weighting 动态计算</li><li>Scaled loss approximate weighting</li></ol><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/img/image-20240429194227076.png" alt="image-20240429194227076"></p>]]>
    </content>
    <id>https://blog.tjdata.site/posts/d29c87a5.html</id>
    <link href="https://blog.tjdata.site/posts/d29c87a5.html"/>
    <published>2024-04-29T11:39:40.000Z</published>
    <summary>
      <![CDATA[<p>Mitchell 在《机器学习》中对其的定义是：</p>
<blockquote>
<p><strong>一个计算机程序被认为能够从经验 E 中学习,去完成任务 T,达到性能度量 P,当且仅当,通过经验 E 的学习,其在任务 T 上的性能度量 P 得到了提升。</stron]]>
    </summary>
    <title>面试经验 Vol2 ｜ 损失函数和评价指标总结</title>
    <updated>2024-04-29T11:45:10.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>chenlongxu</name>
    </author>
    <category term="计算机科学" scheme="https://blog.tjdata.site/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%A7%91%E5%AD%A6/"/>
    <category term="计算机网络" scheme="https://blog.tjdata.site/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/"/>
    <category term="计算机组成原理" scheme="https://blog.tjdata.site/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90%E5%8E%9F%E7%90%86/"/>
    <category term="面试经验" scheme="https://blog.tjdata.site/tags/%E9%9D%A2%E8%AF%95%E7%BB%8F%E9%AA%8C/"/>
    <category term="程序设计基础" scheme="https://blog.tjdata.site/tags/%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1%E5%9F%BA%E7%A1%80/"/>
    <content>
      <![CDATA[<p>总结常见的诞生于 <strong>计算机组成原理，操作系统</strong>、 <strong>计算机网络</strong>、<strong>算法设计基础</strong>中的常见的知识，在这个过程中回顾快速入门计算机知识中，从纸条到硬盘、从继电器到二极管；这门学科的目的是实现自动化的操作，帮助我们高效的完成既定任务。在这个过程要克服死记硬背的指令，来解决盲目寻找答案的过程。</p><h1 id="操作系统相关"><a href="#操作系统相关" class="headerlink" title="操作系统相关"></a>操作系统相关</h1><h2 id="1-1-Shell和脚本"><a href="#1-1-Shell和脚本" class="headerlink" title="1.1 Shell和脚本"></a>1.1 Shell和脚本</h2><p>使用字符串和计算机内核进行交互。其核心功能是允许执行程序，输入并获取某种结构化的输出。shell和所有的编程语言，同样包括变量、函数、条件、循环等一些系列操作，同时会询问环境变量 $PATH</p><h3 id="Shell-中常见的函数有哪些？"><a href="#Shell-中常见的函数有哪些？" class="headerlink" title="Shell 中常见的函数有哪些？"></a>Shell 中常见的函数有哪些？</h3><p>常见的函数：</p><figure class="highlight jsx"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><code class="hljs jsx">date # 查看的当前日期<br>pwd # 阅读当前的工作目录<br>echo hello # 输出对应的值<br>echo $PATH # 查看环境变量<br>cd # 进入目录<br>ls # 列表<br>mv # 重命名或者移动文件<br>cp # 拷贝文件<br>mkdir #创建文件夹<br>find # 查找文件<br>fd pattern<br> locate<br></code></pre></td></tr></table></figure><h3 id="Shell文本处理三巨头grep、sed、awk的案例"><a href="#Shell文本处理三巨头grep、sed、awk的案例" class="headerlink" title="Shell文本处理三巨头grep、sed、awk的案例"></a>Shell文本处理三巨头grep、sed、awk的案例</h3><figure class="highlight jsx"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><code class="hljs jsx">grep # <span class="hljs-variable language_">global</span> regular expression print ，用于搜索文本内容中匹配特定模式 <br>sed #  stream editor 流编辑器，用于执行文本文件中的文本替换、删除、插入操作<br>awk # 文本和数据的提取和报告生成<br><br># 一些案例<br>grep <span class="hljs-string">&#x27;error&#x27;</span> log.<span class="hljs-property">txt</span><br>grep -r <span class="hljs-string">&#x27;functionName&#x27;</span> /path/to/directory/<br>awk <span class="hljs-string">&#x27;&#123;print $1&#125;&#x27;</span> file.<span class="hljs-property">txt</span><br>awk <span class="hljs-string">&#x27;END &#123;print NR&#125;&#x27;</span> file.<span class="hljs-property">txt</span><br>sed <span class="hljs-string">&#x27;s/oldText/newText/g&#x27;</span> file.<span class="hljs-property">txt</span><br>sed <span class="hljs-string">&#x27;3d&#x27;</span> file.<span class="hljs-property">txt</span>‘<br></code></pre></td></tr></table></figure><h3 id="Shell-中函数的常见参数"><a href="#Shell-中函数的常见参数" class="headerlink" title="Shell 中函数的常见参数"></a>Shell 中函数的常见参数</h3><figure class="highlight jsx"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs jsx">-h # 帮助<br>-- version# 查看版本<br></code></pre></td></tr></table></figure><h3 id="管道的使用方式Pipeline"><a href="#管道的使用方式Pipeline" class="headerlink" title="管道的使用方式Pipeline"></a>管道的使用方式Pipeline</h3><figure class="highlight jsx"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs jsx">&gt; file  &lt; file # 将程序的输入输出重定向<br>｜ # 使用pipes来连接输入和输出<br></code></pre></td></tr></table></figure><h3 id="从shell命令到脚本"><a href="#从shell命令到脚本" class="headerlink" title="从shell命令到脚本"></a>从shell命令到脚本</h3><p>从shell到脚本，可以实现变量、控制流和语法，同时加强了pipelines、保存到文件、标准输入输出原生操作的优势。</p><ol><li>$Var 是变量，$0 脚本名、$1~9 参数名、$@所有参数、$# 参数个数、$? 前一个命令的饭绘制、$$ 当前脚本的进程识别码、!! 上一次命令、$_ 上一条命令最后一层参数</li><li>‘ 和 “” 是不一样的</li><li>同样支持 if case while for的控制流关键字的操作</li><li>命令替换（command substitution）、进程替换（process substitution）</li><li></li></ol><h3 id="常用的正则表达式"><a href="#常用的正则表达式" class="headerlink" title="常用的正则表达式"></a>常用的正则表达式</h3><p>必须要熟悉正则表达式：</p><ol><li>. 除去换行符之外的任意单个字符</li><li>*匹配前面字符零次或者多次</li><li>‘+’ 匹配前面字符一次或者多次</li><li>[abc]匹配abc其中的任何一个</li><li>(rx1|rx2)任何能够匹配Rx1或者rx2的结果</li><li>^ 行首</li><li>$ 行尾</li></ol><p><a href="https://regexone.com/">RegexOne - Learn Regular Expressions - Lesson 1: An Introduction, and the ABCs</a></p><h3 id="配置文件的格式-dotfile"><a href="#配置文件的格式-dotfile" class="headerlink" title="配置文件的格式 dotfile"></a>配置文件的格式 dotfile</h3><p>相关程序的配置问价 DOTFILE 是通过这类隐藏的配置文件实现的</p><figure class="highlight jsx"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><code class="hljs jsx">bash ~/.<span class="hljs-property">bashrc</span><br>git /.<span class="hljs-property">gitconfig</span><br>vim ~/.<span class="hljs-property">vimrc</span> <br>ssh ~<span class="hljs-regexp">/.ssh/</span>config<br></code></pre></td></tr></table></figure><h3 id="SSH-使用教程"><a href="#SSH-使用教程" class="headerlink" title="SSH 使用教程"></a>SSH 使用教程</h3><p>ssh 使用过程，只需要向服务器证明客户端的私钥即可，等效于密码。</p><ul><li>ssh-keygen可以生成密钥</li><li>查询 .ssh&#x2F;authorized_keys</li><li>ssh-copy-id -i **pub username@ip</li></ul><h2 id="1-2-构建系统"><a href="#1-2-构建系统" class="headerlink" title="1.2 构建系统"></a>1.2 构建系统</h2><h3 id="调试器是什么以及其对应的作用？"><a href="#调试器是什么以及其对应的作用？" class="headerlink" title="调试器是什么以及其对应的作用？"></a><strong>调试器是什么以及其对应的作用？</strong></h3><p>是一种可以允许我们和正在执行的程序进行交互的程序，可以做到一条一条执行并且在程序崩溃之后查看变量的值；对于python的调试器包括：</p><ol><li>l 显示当前行附近11行或继续执行之前的提示</li><li>s 执行当前行</li><li>n 继续执行到下一个条遇见</li><li>b 设置断点</li><li>p 打印，pprint对于表达式求值并输出结果</li><li>r继续执行</li><li>q推出</li></ol><p>除了代码调试之外，通常还包括专<strong>门工具、静态分析、性能分析、事件分析等等</strong></p><h3 id="元编程-（meta-programming）是什么？"><a href="#元编程-（meta-programming）是什么？" class="headerlink" title="元编程 （meta programming）是什么？"></a>元编程 （meta programming）是什么？</h3><p>不是关于代码、高效工作，而是如何在大型工程中提升代码的鲁棒性，这些包括构建系统、持续集成、代码测试、依赖管理等等内容</p><h3 id="构建系统-（Make-system）"><a href="#构建系统-（Make-system）" class="headerlink" title="构建系统 （Make system）"></a>构建系统 （Make system）</h3><p>构建系统在多次可以见到，包括嵌入式中将语言烧录成为hex格式并传送至小车、包括latex中构建pdf的过程等等了这个步骤包括不同的分支。通常这些工具需要 定义 依赖（dependence）、目标（target）和规则（rule）</p><ul><li>依赖：系统的任务是找到构建这些目标所需要的依赖</li><li>目标：告诉构建系统的具体目标</li><li>规则：构建规则</li></ul><p>常见的make是最常用的构建系统之一，包括makefile</p><h3 id="依赖管理（Dependency-management）"><a href="#依赖管理（Dependency-management）" class="headerlink" title="依赖管理（Dependency management）"></a>依赖管理（Dependency management）</h3><p>对于项目来说，依赖于其他的项目、其他的程序、系统包、语言库。这些依赖往往需要特定的方式来进行管理。每一种仓库、每一种工具的运行机制都不太一样，也就是版本控制（Version control）方法的不同，常见的规则包括</p><ol><li>如果新的版本没有改变API，则补丁递增</li><li>如果添加api，且向后兼容，则次版本号递增</li><li>如果修改api，但并不兼容，则主版本好递增</li></ol><h3 id="持续集成（Continuous-integration）"><a href="#持续集成（Continuous-integration）" class="headerlink" title="持续集成（Continuous integration）"></a>持续集成（Continuous integration）</h3><p>随着项目规模的扩大，往往除了修改代码本身还需要有额外的操作。包括但不限于 <strong>代码风格检查、上传文档、编译文件、发不到pypi、执行测试套件</strong>等等。持续集成通常指的是“当您的代码变动的时候、自动运行的东西”，这些工具包括GitHub actions、Azure pipelines等等。工作原理为</p><p>您需要在代码仓库中添加一个文件，描述当前仓库发生任何修改时，应该如何应对。目前为止，最常见的规则是：如果有人提交代码，执行测试套件。当这个事件被触发时，CI 提供方会启动一个（或多个）虚拟机，执行您制定的规则，并且通常会记录下相关的执行结果。您可以进行某些设置，这样当测试套件失败时您能够收到通知或者当测试全部通过时，您的仓库主页会显示一个徽标。</p><h3 id="测试简介（Code-test）"><a href="#测试简介（Code-test）" class="headerlink" title="测试简介（Code test）"></a>测试简介（Code test）</h3><p>测试套件：所有测试的统称</p><p>单元测试：一种微型测试</p><p>集成测试：针对系统的某个部分进行测试来观察是否可以协同工作</p><p>回归测试：特定模式测试、用于保证之前引起问题的bug不会出现</p><p>模拟：使用一个假的实现来替换函数、模块或类型，匹配那些和测试不相关的内容</p><h3 id="Linux文件管理"><a href="#Linux文件管理" class="headerlink" title="Linux文件管理"></a>Linux文件管理</h3><ul><li><p><code>/bin</code> - 基本命令二进制文件</p></li><li><p><code>/sbin</code> - 基本的系统二进制文件，通常是root运行的</p></li><li><p><code>/dev</code> - 设备文件，通常是硬件设备接口文件</p></li><li><p><code>/etc</code> - 主机特定的系统配置文件</p></li><li><p><code>/home</code> - 系统用户的主目录</p></li><li><p><code>/lib</code> - 系统软件通用库</p></li><li><p><code>/opt</code> - 可选的应用软件</p></li><li><p><code>/sys</code> - 包含系统的信息和配置(<a href="https://missing-semester-cn.github.io/2020/course-shell/">第一堂课</a>介绍的)</p></li><li><p><code>/tmp</code> - 临时文件( <code>/var/tmp</code> ) 通常重启时删除</p></li><li><pre><code class="hljs">/usr/</code></pre><p> - 只读的用户数据</p><ul><li><code>/usr/bin</code> - 非必须的命令二进制文件</li><li><code>/usr/sbin</code> - 非必须的系统二进制文件，通常是由root运行的</li><li><code>/usr/local/bin</code> - 用户编译程序的二进制文件</li></ul></li><li><p><code>/var</code> -变量文件 像日志或缓存</p></li></ul><h2 id="1-3-操作系统相关"><a href="#1-3-操作系统相关" class="headerlink" title="1.3 操作系统相关"></a>1.3 操作系统相关</h2><h3 id="什么是操作系统（Operation-system）"><a href="#什么是操作系统（Operation-system）" class="headerlink" title="什么是操作系统（Operation system）"></a>什么是操作系统（Operation system）</h3><p>用于管理计算机硬件和软件资源，对下屏蔽硬件的复杂性、对上屏蔽资源调度的复杂性。所处于的内核（kernel）用用户提供应用（Application）、对下管理各种设备（device）</p><h3 id="操作系统的主要功能"><a href="#操作系统的主要功能" class="headerlink" title="操作系统的主要功能"></a>操作系统的主要功能</h3><ol><li>进程和线程的管理，包括增、删、阻塞、唤醒、通信等等</li><li>存储管理</li><li>文件管理：读写删除等</li><li>设备管理：输入输出设备的请求和释放</li><li>网络管理</li><li>安全管理等等</li></ol><h3 id="用户态和内核态切换到额方式"><a href="#用户态和内核态切换到额方式" class="headerlink" title="用户态和内核态切换到额方式"></a>用户态和内核态切换到额方式</h3><ol><li>系统调用</li><li>中断 interrupt</li><li>异常 exception</li></ol><h3 id="堆和栈原理"><a href="#堆和栈原理" class="headerlink" title="堆和栈原理"></a>堆和栈原理</h3><p>栈：栈是一种后进先出（Last In, First Out，LIFO）的数据结构，它只允许在一端（栈顶）进行数据的添加和删除操作。栈通常用于管理方法调用的执行顺序、局部变量的存储等。应用包括函数调用、表达式求值</p><p>堆：堆是一种动态分配的内存区域，程序在运行时可以从堆中分配或释放内存。不同于栈，堆的内存分配和释放是不连续的，因此它更灵活，但管理成本更高。应用包括动态数据结构、大对象存储</p><h3 id="进程和线程的区别（Process和thread）"><a href="#进程和线程的区别（Process和thread）" class="headerlink" title="进程和线程的区别（Process和thread）"></a>进程和线程的区别（Process和thread）</h3><p>进程是APP、线程是APP中的一个功能。具体来说进程是操作系统进行资源分配和调度的独立单位，是程序执行的实体，每个进程都有自己独立的地址空间、内存、数据站和辅助数据；线程是进程执行的最小单位，可以利用进程中的资源，在同一个进程内多个线程共享其地址空间和资源</p><h3 id="进程之间的通信方式（Inter-process-communicating）"><a href="#进程之间的通信方式（Inter-process-communicating）" class="headerlink" title="进程之间的通信方式（Inter- process communicating）"></a>进程之间的通信方式（Inter- process communicating）</h3><ol><li><strong>管道（Pipes）</strong>，允许一个进程和另一个进程之间的单向数据流。管道可以是匿名的，也可以是具名的（也称为命名管道或FIFO）。</li><li><strong>信号（Signals）</strong>，种用于进程间通信的有限制的方式，允许进程给另一个进程发送简单的消息。信号是一种异步的通信方式，用于处理诸如终止请求（SIGTERM）、中断请求（SIGINT）等事件。</li><li><strong>消息队列（Message queues）</strong>，允许不同的进程读写一个消息队列，这是一种比管道更灵活的通信方式，因为它允许消息的随机访问，不仅仅是FIFO（先进先出）。</li><li><strong>共享内存（Shared memory）</strong>，允许多个进程访问同一块内存空间。这是一种非常高效的通信方式，因为数据不需要在进程间复制，但它需要同步机制来防止并发访问问题。</li><li><strong>信号量（Semaphore）</strong>，主要用于同步多个进程对共享资源的访问，虽然它们本身不传递数据，但信号量可以用来同步数据访问，因此是进程间通信的重要部分。</li><li><strong>套接字（Sockets）</strong>，提供了在不同主机上运行的进程之间通信的能力。套接字可以是基于流的（TCP），也可以是基于数据报的（UDP）。</li><li><strong>文件映射（Memory- mapped files）</strong>，通过将文件或设备映射到内存，实现进程间的共享数据。这种方式允许文件或设备的内容直接加载到进程的地址空间，从而实现快速访问和修改。</li></ol><h3 id="为什么需要线程和多线程？"><a href="#为什么需要线程和多线程？" class="headerlink" title="为什么需要线程和多线程？"></a>为什么需要线程和多线程？</h3><p>进程切换开销大，线程开销小。同时一个进程可以创建多个线程，线程可以并发处理不同的任务，有效的利用多处理器和多核计算机。而进程只能在一个时间内干一件事情</p><h3 id="线程同步方式有哪些？"><a href="#线程同步方式有哪些？" class="headerlink" title="线程同步方式有哪些？"></a>线程同步方式有哪些？</h3><ol><li>**互斥锁(Mutex)**：采用互斥对象机制，只有拥有互斥对象的线程才有访问公共资源的权限。因为互斥对象只有一个，所以可以保证公共资源不会被多个线程同时访问。比如 Java 中的 <code>synchronized</code> 关键词和各种 <code>Lock</code> 都是这种机制。</li><li><strong>读写锁（Read-Write Lock）</strong>：允许多个线程同时读取共享资源，但只有一个线程可以对共享资源进行写操作。</li><li>**信号量(Semaphore)**：它允许同一时刻多个线程访问同一资源，但是需要控制同一时刻访问此资源的最大线程数量。</li><li><strong>屏障（Barrier）</strong>：屏障是一种同步原语，用于等待多个线程到达某个点再一起继续执行。当一个线程到达屏障时，它会停止执行并等待其他线程到达屏障，直到所有线程都到达屏障后，它们才会一起继续执行。比如 Java 中的 <code>CyclicBarrier</code> 是这种机制。</li><li><strong>事件(Event)</strong> :Wait&#x2F;Notify：通过通知操作的方式来保持多线程同步，还可以方便的实现多线程优先级的比较操作。</li></ol><hr><h3 id="进程有哪些状态？"><a href="#进程有哪些状态？" class="headerlink" title="进程有哪些状态？"></a>进程有哪些状态？</h3><ol><li>创建进程 new</li><li>就绪状态 ready</li><li>运行</li><li>阻塞 或者等待</li><li>结束</li></ol><h3 id="如何实现多线程？"><a href="#如何实现多线程？" class="headerlink" title="如何实现多线程？"></a>如何实现多线程？</h3><h1 id="计算机组成相关"><a href="#计算机组成相关" class="headerlink" title="计算机组成相关"></a>计算机组成相关</h1><h3 id="如何实现高性能"><a href="#如何实现高性能" class="headerlink" title="如何实现高性能"></a>如何实现高性能</h3><ol><li>CDN</li><li>负载均衡</li><li>数据库优化</li><li>消息队列</li></ol><h3 id="如何实现高可用"><a href="#如何实现高可用" class="headerlink" title="如何实现高可用"></a>如何实现高可用</h3><ol><li>冗余设计</li><li>服务限流</li><li>降级</li><li>超时</li><li>性能测试入门</li></ol><h1 id="计算机网络相关"><a href="#计算机网络相关" class="headerlink" title="计算机网络相关"></a>计算机网络相关</h1><h3 id="OSI-七层模型"><a href="#OSI-七层模型" class="headerlink" title="OSI 七层模型"></a>OSI 七层模型</h3><ol><li>物理层：RS232、RS485、RJ45、SDH、DSL、SPI、CAN、802.11，考虑的 是如何传输比特</li><li>数据链路层：Ethernet、PPP、ATM、MAC，考虑如何纠错，实现局域网的实现</li><li>网络层：IP、ARP、ICMP 实现网络之间传输NAT</li><li>传输层：TCP、UDP、SSL、TLS 实现进程和进程之间的通信</li><li>会话层、表示层、应用层：DNS、HTTP、P2P、EMAIL、Telnet、FTP、SSH</li></ol><h3 id="从输入URL到页面展示的过程"><a href="#从输入URL到页面展示的过程" class="headerlink" title="从输入URL到页面展示的过程"></a>从输入URL到页面展示的过程</h3><ol><li>利用DNS查询（浏览器缓存、系统缓存、路由器缓存、DNS缓存）找到IP</li><li>浏览器向服务器发送http请求<ol><li>建立TCP、IP连接</li><li>OPSF 在路由器之间使用</li><li>ARP 转换成为mac</li><li>HTTP 连接之后使用访问网页</li></ol></li><li>服务器处理需求</li></ol><h3 id="HTTP-和-HTTPS的区别（pass）"><a href="#HTTP-和-HTTPS的区别（pass）" class="headerlink" title="HTTP 和 HTTPS的区别（pass）"></a>HTTP 和 HTTPS的区别（pass）</h3><ul><li><strong>端口号</strong>：HTTP 默认是 80，HTTPS 默认是 443。</li><li><strong>URL 前缀</strong>：HTTP 的 URL 前缀是 <code>http://</code>，HTTPS 的 URL 前缀是 <code>https://</code>。</li><li><strong>安全性和资源消耗</strong>：HTTP 协议运行在 TCP 之上，所有传输的内容都是明文，客户端和服务器端都无法验证对方的身份。HTTPS 是运行在 SSL&#x2F;TLS 之上的 HTTP 协议，SSL&#x2F;TLS 运行在 TCP 之上。所有传输的内容都经过加密，加密采用对称加密，但对称加密的密钥用服务器方的证书进行了非对称加密。所以说，HTTP 安全性没有 HTTPS 高，但是 HTTPS 比 HTTP 耗费更多服务器资源。</li><li><strong>SEO（搜索引擎优化）</strong>：搜索引擎通常会更青睐使用 HTTPS 协议的网站，因为 HTTPS 能够提供更高的安全性和用户隐私保护。使用 HTTPS 协议的网站在搜索结果中可能会被优先显示，从而对 SEO 产生影响。</li></ul><p>关于 HTTP 和 HTTPS 更详细的对比总结，可以看我写的这篇文章：<a href="notion://www.notion.so/cs-basics/network/http-vs-https.html">HTTP vs HTTPS（应用层）</a> 。</p><h3 id="HTTP-1-0-和HTTP1-1-的区别（pass）"><a href="#HTTP-1-0-和HTTP1-1-的区别（pass）" class="headerlink" title="HTTP 1.0 和HTTP1.1 的区别（pass）"></a>HTTP 1.0 和HTTP1.1 的区别（pass）</h3><ul><li><strong>连接方式</strong> : HTTP&#x2F;1.0 为短连接，HTTP&#x2F;1.1 支持长连接。HTTP 协议的长连接和短连接，实质上是 TCP 协议的长连接和短连接。</li><li><strong>状态响应码</strong> : HTTP&#x2F;1.1 中新加入了大量的状态码，光是错误响应状态码就新增了 24 种。比如说，<code>100 (Continue)</code>——在请求大资源前的预热请求，<code>206 (Partial Content)</code>——范围请求的标识码，<code>409 (Conflict)</code>——请求与当前资源的规定冲突，<code>410 (Gone)</code>——资源已被永久转移，而且没有任何已知的转发地址。</li><li><strong>缓存机制</strong> : 在 HTTP&#x2F;1.0 中主要使用 Header 里的 If-Modified-Since,Expires 来做为缓存判断的标准，HTTP&#x2F;1.1 则引入了更多的缓存控制策略例如 Entity tag，If-Unmodified-Since, If-Match, If-None-Match 等更多可供选择的缓存头来控制缓存策略。</li><li><strong>带宽</strong>：HTTP&#x2F;1.0 中，存在一些浪费带宽的现象，例如客户端只是需要某个对象的一部分，而服务器却将整个对象送过来了，并且不支持断点续传功能，HTTP&#x2F;1.1 则在请求头引入了 range 头域，它允许只请求资源的某个部分，即返回码是 206（Partial Content），这样就方便了开发者自由的选择以便于充分利用带宽和连接。</li><li><strong>Host 头（Host Header）处理</strong> :HTTP&#x2F;1.1 引入了 Host 头字段，允许在同一 IP 地址上托管多个域名，从而支持虚拟主机的功能。而 HTTP&#x2F;1.0 没有 Host 头字段，无法实现虚拟主机</li></ul><h3 id="HTTP1-1-和HTTP2的区别"><a href="#HTTP1-1-和HTTP2的区别" class="headerlink" title="HTTP1.1 和HTTP2的区别"></a>HTTP1.1 和HTTP2的区别</h3><ul><li><strong>多路复用（Multiplexing）</strong>：HTTP&#x2F;2.0 在同一连接上可以同时传输多个请求和响应（可以看作是 HTTP&#x2F;1.1 中长链接的升级版本），互不干扰。HTTP&#x2F;1.1 则使用串行方式，每个请求和响应都需要独立的连接，而浏览器为了控制资源会有 6-8 个 TCP 连接都限制。。这使得 HTTP&#x2F;2.0 在处理多个请求时更加高效，减少了网络延迟和提高了性能。</li><li><strong>二进制帧（Binary Frames）</strong>：HTTP&#x2F;2.0 使用二进制帧进行数据传输，而 HTTP&#x2F;1.1 则使用文本格式的报文。二进制帧更加紧凑和高效，减少了传输的数据量和带宽消耗。</li><li><strong>头部压缩（Header Compression）</strong>：HTTP&#x2F;1.1 支持<code>Body</code>压缩，<code>Header</code>不支持压缩。HTTP&#x2F;2.0 支持对<code>Header</code>压缩，使用了专门为<code>Header</code>压缩而设计的 HPACK 算法，减少了网络开销。</li><li><strong>服务器推送（Server Push）</strong>：HTTP&#x2F;2.0 支持服务器推送，可以在客户端请求一个资源时，将其他相关资源一并推送给客户端，从而减少了客户端的请求次数和延迟。而 HTTP&#x2F;1.1 需要客户端自己发送请求来获取相关资源。</li></ul><h3 id="HTTP2和HTTP3区别（Pass）"><a href="#HTTP2和HTTP3区别（Pass）" class="headerlink" title="HTTP2和HTTP3区别（Pass）"></a>HTTP2和HTTP3区别（Pass）</h3><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/img/image-20240429193915277.png" alt="image-20240429193915277"></p><h3 id="TCP三次握手"><a href="#TCP三次握手" class="headerlink" title="TCP三次握手"></a>TCP三次握手</h3><ol><li>客户端发送syn数据给服务端</li><li>服务端发送 syn ack给客户端</li><li>客户端发送ack给服务端</li></ol><h3 id="TCP四次回收"><a href="#TCP四次回收" class="headerlink" title="TCP四次回收"></a>TCP四次回收</h3><h1 id="数据结构相关"><a href="#数据结构相关" class="headerlink" title="数据结构相关"></a>数据结构相关</h1><h3 id="面向象中的继承、多态、封装"><a href="#面向象中的继承、多态、封装" class="headerlink" title="面向象中的继承、多态、封装"></a>面向象中的继承、多态、封装</h3><p>封装（Encapsulation）：封装是面向对象编程的基本特征之一，它隐藏了对象的内部状态，并且只通过对象的方法来访问和修改。这样可以使代码更加安全和易于管理。</p><p>继承（Inheritance）：继承是从已有的类派生出新的类，新的类继承了原有类的属性和方法，并且可以添加新的属性和方法。继承可以提高代码的重用性，并且使代码更加清晰和易于维护。</p><p>多态（Polymorphism）：多态是指一个接口可以有多种实现方式，或者一个对象可以表现出多种形态。多态可以提高代码的灵活性和可扩展性，并且使代码更加易于理解和维护。</p>]]>
    </content>
    <id>https://blog.tjdata.site/posts/632147e0.html</id>
    <link href="https://blog.tjdata.site/posts/632147e0.html"/>
    <published>2024-04-29T11:38:03.000Z</published>
    <summary>
      <![CDATA[<p>总结常见的诞生于 <strong>计算机组成原理，操作系统</strong>、 <strong>计算机网络</strong>、<strong>算法设计基础</strong>中的常见的知识，在这个过程中回顾快速入门计算机知识中，从纸条到硬盘、从继电器到二极管；这门学科的目的是]]>
    </summary>
    <title>面试经验 vol1 ｜ 计算机基础知识</title>
    <updated>2024-04-29T11:45:10.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>chenlongxu</name>
    </author>
    <category term="生活杂谈" scheme="https://blog.tjdata.site/categories/%E7%94%9F%E6%B4%BB%E6%9D%82%E8%B0%88/"/>
    <category term="租房" scheme="https://blog.tjdata.site/tags/%E7%A7%9F%E6%88%BF/"/>
    <category term="西二旗" scheme="https://blog.tjdata.site/tags/%E8%A5%BF%E4%BA%8C%E6%97%97/"/>
    <category term="实习生" scheme="https://blog.tjdata.site/tags/%E5%AE%9E%E4%B9%A0%E7%94%9F/"/>
    <category term="短租" scheme="https://blog.tjdata.site/tags/%E7%9F%AD%E7%A7%9F/"/>
    <content>
      <![CDATA[<h2 id="0x01-租房目标的确定"><a href="#0x01-租房目标的确定" class="headerlink" title="0x01 租房目标的确定"></a>0x01 租房目标的确定</h2><p>租房是希望在一定的成本范围内找到满足自己最大效用的方式。可以从货币成本、个人喜好、社会经济因素来观察。每个人的效用具有不同个人差异性，但是租房经验往往是可以互相参考的，这也是互联网平台传播的意义所在。分享你所看到的，来铸造集体的记忆。</p><h2 id="0x02-租房平台"><a href="#0x02-租房平台" class="headerlink" title="0x02 租房平台"></a>0x02 租房平台</h2><p>NOTE：租房平台越规范，信息获取越容易，但是价格也会更高</p><p>租房平台按照熵增的顺序可以分为：</p><ol><li>基于互联网和算法：自如、安租客、贝壳链家等</li><li>基于人工操作运转：房产中介、托管公司、我爱我家</li><li>有一定租房聚集力：闲鱼、豆瓣等</li><li>依靠主观搜索：小红书、闲鱼等</li></ol><p>往往同样的房子自上而下价格越来越低；但是看到房子的影子成本会越来越高。这里的影子成本可以看作房子的维修难度、隐藏不确定性、暗病等等因素。</p><h2 id="0x03-租房考虑因素"><a href="#0x03-租房考虑因素" class="headerlink" title="0x03 租房考虑因素"></a>0x03 租房考虑因素</h2><p>首先需要考虑经济因素，房子的租金主要包括：</p><ol><li>房间空间属性：大小、地理位置等等</li><li>租房的时间属性：短租 or 长租</li></ol><p>其次需要考虑个人因素</p><ol><li>是否有隔音</li><li>是否有独卫</li><li>房间是否足够大</li><li>电梯 or 楼梯</li><li>是否有供暖，集中供暖 or 自采暖</li></ol><p>之后考虑社会经济因素</p><ol><li>到商圈的距离</li><li>到地铁站的距离</li><li>到自己目标点位的交通便捷性，包括步行 or 电车 or 公交 or 地铁等</li><li>小区的破旧程度，有无电梯、有无保安</li><li>小区的属性和基本设施，高档小区、拆迁房</li><li>房间软配问题，水电老化</li></ol><p>额外因素</p><ol><li>合租的舍友</li><li>中介、闲聊的靠谱程度</li></ol><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/img/image-20240429193731853.png" alt="image-20240429193731853"></p><h2 id="0x04-租房技巧"><a href="#0x04-租房技巧" class="headerlink" title="0x04 租房技巧"></a>0x04 租房技巧</h2><p>首先根据地图确定周边点，以及周边店地铁沿线服务的备选小区</p><p>在规范平台中查看这些小区的大致属性，得到筛选之后的备选小区 2</p><p>在社交媒体中寻找备选小区 2 的额外信息，这些是平台、中介无法提供给你的真实评价</p><p>最后按照自己的成本，选择平台 or 中介的房子，或者是花费自己的时间成本去 闲鱼、豆瓣、小红书等平台寻求转租的价格较低的房子。</p><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/img/image-20240429193741663.png" alt="image-20240429193741663"></p><p>PS：</p><p>最后的最后，还是需要自己体验过才知道房子是否合适自己！</p><p>强烈推荐经济允许的情况下，优先选择独卫而不是通勤距离</p>]]>
    </content>
    <id>https://blog.tjdata.site/posts/564f7d50.html</id>
    <link href="https://blog.tjdata.site/posts/564f7d50.html"/>
    <published>2024-04-29T11:36:44.000Z</published>
    <summary>
      <![CDATA[<h2 id="0x01-租房目标的确定"><a href="#0x01-租房目标的确定" class="headerlink" title="0x01 租房目标的确定"></a>0x01 租房目标的确定</h2><p>租房是希望在一定的成本范围内找到满足自己最大效用的方式。可以]]>
    </summary>
    <title>北京西二旗租房攻略</title>
    <updated>2024-04-29T11:45:10.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>chenlongxu</name>
    </author>
    <category term="生活杂谈" scheme="https://blog.tjdata.site/categories/%E7%94%9F%E6%B4%BB%E6%9D%82%E8%B0%88/"/>
    <category term="quest3" scheme="https://blog.tjdata.site/tags/quest3/"/>
    <category term="AR 眼镜" scheme="https://blog.tjdata.site/tags/AR-%E7%9C%BC%E9%95%9C/"/>
    <category term="科学上网" scheme="https://blog.tjdata.site/tags/%E7%A7%91%E5%AD%A6%E4%B8%8A%E7%BD%91/"/>
    <category term="新奇硬件" scheme="https://blog.tjdata.site/tags/%E6%96%B0%E5%A5%87%E7%A1%AC%E4%BB%B6/"/>
    <content>
      <![CDATA[<p>Quest3作为一台头戴眼镜内设备，针对现在依赖手机、电脑的工作方式，天然具有“反链接“的特点，同时在国内难以魔法上网和校园网奇葩的路由器的情况，如何顺利的享受虚拟世界的乐趣是一件非常困难的工作。因此在本文总结自己踩过的坑作为记录。</p><h2 id="引言"><a href="#引言" class="headerlink" title="引言"></a>引言</h2><p>对于一些教程用一些未见过的语言来描述 Quest3 的使用过程，实际上是对小白自信心的一次打击，此时针对拿到手，需要了解的事情做一个总结，也就是“拿到 Quest3 我可能需要做哪些工作”：</p><ol><li>机内游戏下载<ol><li>目的：下载一体机内部使用的app、游戏等</li><li>方法：1️⃣ 注册官方账号，在官方商店中充值并购买 2️⃣ 破解软件下载安装</li><li>问题：1️⃣ 此时面临魔法、账号、购买问题 2️⃣ 仅支持PC、文件传输、安装复杂等问题</li></ol></li><li>串流<ol><li>目的：通过串流来查看电脑屏幕，实现办公、多媒体观看、游戏等目的</li><li>方法：通信app上可以分为官方自带的quest link， steam VR 或者virtual desktop。通信方式分为有线串流和无线串流</li><li>问题：有线对于线材要求较高，无线对于路由器要求较高</li></ol></li><li>视频观看<ol><li>目的：在尽可能不折腾的情况下观看视频</li><li>方法：1️⃣ 传输到机器内部本地观看 2️⃣使用局域网共享的方式来查看高码率视频</li><li>问题：无线传输过程对于路由器要求较高</li></ol></li><li>头戴配重<ol><li>目的：由于quest3本体仅作为一个简陋的设备，无法满足使用者对于舒适度的要求</li><li>方法：可以通过头戴、配重、面罩等方面来考虑</li><li>问题：市场上东西比较多</li></ol></li></ol><p>在过程平台硬件注释：</p><ol><li>window主机</li><li>一根type-typec的线</li><li>校园网（局域网共享困难）</li></ol><p>购买的服务包括：</p><table><thead><tr><th>Virtual desktop</th><th>画质好的串流软件</th><th>$16.99</th></tr></thead><tbody><tr><td>Steam VR</td><td>免费串流软件</td><td>0</td></tr><tr><td>Quest link</td><td>免费串流软件</td><td>0</td></tr><tr><td>半衰期  Alyx</td><td>PC端的VR游戏</td><td>￥79</td></tr><tr><td>破解网站</td><td>一体机游戏</td><td>0</td></tr><tr><td>Clash</td><td>不解释</td><td>不解释</td></tr><tr><td>Skybox</td><td>一体机内部播放器</td><td>$ 7.99</td></tr><tr><td>Air screen</td><td>电脑端播放服务器</td><td>0</td></tr></tbody></table><h2 id="第一部分：魔法、账号、充值"><a href="#第一部分：魔法、账号、充值" class="headerlink" title="第一部分：魔法、账号、充值"></a>第一部分：魔法、账号、充值</h2><p>《如何在window下使用clash》略过</p><p>如果使用quest link进行链接，首先需要在官方上下载对应的PC软件（免费）</p><p><a href="https://www.meta.com/zh-hk/help/quest/articles/headsets-and-accessories/oculus-rift-s/install-app-for-link/">為 Meta Quest Link 安裝 Oculus 電腦版應用程式</a></p><p>但是在这个过程中面临 Facebook 账号浏览器认证失败的问题，这里需要修改host加速：</p><figure class="highlight jsx"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><code class="hljs jsx"><span class="hljs-number">20.205</span><span class="hljs-number">.243</span><span class="hljs-number">.166</span> github.<span class="hljs-property">com</span><br><span class="hljs-number">157.240</span><span class="hljs-number">.11</span><span class="hljs-number">.49</span> graph.<span class="hljs-property">oculus</span>.<span class="hljs-property">com</span><br><span class="hljs-number">157.240</span><span class="hljs-number">.11</span><span class="hljs-number">.49</span> www2.<span class="hljs-property">oculus</span>.<span class="hljs-property">com</span><br><span class="hljs-number">157.240</span><span class="hljs-number">.8</span><span class="hljs-number">.49</span> scontent.<span class="hljs-property">oculuscdn</span>.<span class="hljs-property">com</span><br><span class="hljs-number">157.240</span><span class="hljs-number">.8</span><span class="hljs-number">.49</span> securecdn.<span class="hljs-property">oculus</span>.<span class="hljs-property">com</span><br></code></pre></td></tr></table></figure><p>同时注意，Meta的账号是分为 Facebook+Instagram+Meta；而 meta quest 对应的是 meta 账号。</p><p>之后的问题是如何讲window的代理分享给quest3，这里由于在校园网环境，未直接使用 clash 的allow for lan 来进行，而是使用 “window代理热点 + clash tunnel共享“的方式来分享代理：</p><ol><li>打开clash的tunnel功能</li><li>代开window的代理热点功能，此时 WLAN为共享、WLAN2为链接校园网</li><li>在 控制面板-网络与连接-适配器管理 中，点击clash tunnel共享，选择WLAN来共享代理</li><li>在 quest3中链接WINDOW热点，成功完成魔法。</li></ol><p>之后的账号和充值可以在PC端、手机端、Quest3端中完成</p><p>对于破解软件下载的通常方式，在破解助手中下载软件安装包，之后利用文件传输工具传送到quest3本地，完成安装。相关免费教程可以查看这类游戏网站</p><p><a href="https://www.vrmoo.net/tools">Oculus Quest教程 – VR魔趣网</a></p><h2 id="第二部分：串流"><a href="#第二部分：串流" class="headerlink" title="第二部分：串流"></a>第二部分：串流</h2><p>第一部分代理热点安装好之后，串流不成问题</p><h2 id="第三部分：视频观看"><a href="#第三部分：视频观看" class="headerlink" title="第三部分：视频观看"></a>第三部分：视频观看</h2><ol><li>使用SMB协议共享window文件夹</li><li>推荐购买 skybox，配合window中免费的air screen中完成文件夹共享</li></ol><h2 id="第四部分：配件购买"><a href="#第四部分：配件购买" class="headerlink" title="第四部分：配件购买"></a>第四部分：配件购买</h2><ol><li>quest3 头戴</li><li>quest3 开放式面罩</li><li>头戴充电宝</li><li>冰丝海绵替换装</li><li>串流线</li></ol><p><img src="https://chenxia31blog.oss-cn-hangzhou.aliyuncs.com/img/image-20240429193602735.png" alt="image-20240429193602735"></p>]]>
    </content>
    <id>https://blog.tjdata.site/posts/2d990b59.html</id>
    <link href="https://blog.tjdata.site/posts/2d990b59.html"/>
    <published>2024-04-29T11:34:48.000Z</published>
    <summary>
      <![CDATA[<p>Quest3作为一台头戴眼镜内设备，针对现在依赖手机、电脑的工作方式，天然具有“反链接“的特点，同时在国内难以魔法上网和校园网奇葩的路由器的情况，如何顺利的享受虚拟世界的乐趣是一件非常困难的工作。因此在本文总结自己踩过的坑作为记录。</p>
<h2 id="引言"><a h]]>
    </summary>
    <title>Meta quest3 使用折腾指南</title>
    <updated>2024-04-29T11:45:10.000Z</updated>
  </entry>
</feed>
