跳到主要内容

来玩玩新开发的小游戏吧

· 阅读需 4 分钟

我给我的博客又开发了一个小「游戏」——本博客的推荐导航系统,我称之为「阅读轨迹」。

从去年九月博客开张以来,我已经攒了大约 130 多篇文章了。小站的访客人数似乎是在不断增加,新来的访客估计也就从最近的几篇开始读一下,古早的文章们应该就石沉大海了。

我珍惜自己的注意力,所以也不希望浪费别人的时间。如何让别人可以高效地从我的过往文章中找出他们可能喜欢的几篇,这是我最近思考的问题。我有看见几个别的博客开设「随机文章」的功能,我个人是觉得「随机」给人一种比较容易 miss 的感觉。如果能更有目的地给读者推荐旧文就好了。

我的决定

所以我想了想,决定尝试一下「收集」读者的喜好,「跟踪」他们的阅读习惯,再用「算法」来「植入」推荐的链接!……

……🏃‍♂️哎!这位朋友你先别走,听我把话说完:这套推荐系统完全在本地运行,不发送任何数据给服务器端。你也可以随时关闭并清空浏览记录。

我想试试看!

在网站的右上角,有一颗星星 ⭐,默认状态是关闭的(显示为空心)。点击 ⭐ 的话,就会进入「阅读轨迹」的规则介绍页。了解了规则之后,就可以按「开启我的阅读轨迹」来打开这套系统了。

打开后,右上角的 ⭐ 会变成实心。每一篇博客文章的下面,会出现「轨迹」这一项,附有 ➕ 和 ➖ 两个按钮,分别代表「想看类似写得还行」和「想换口味写得好烂」。选中其中一个后,系统就会根据你到目前为止的全部偏好,推荐一篇你还没有投票过的新文章。注意啦,一旦投票就不能更改结果了(我自己尝试过:如果能改的话,一定想两个都看看会出什么不一样的结果,游戏就不好玩啦 😅)

你的每一次生死抉择,都是在文章之间建立连结。根据每个人的口味和阅读顺序,连接出来的图也是不同的。目前我还在根据这些图设计一些有趣的东西,今后会慢慢放在「你的阅读轨迹」页面上,敬请期待!

真的不会发送数据给我

本站除了「签名墙」之外,所有功能是纯本地的。所以我无法接收任何数据。

也就是说,我是看不见你的点赞。如果想要让我知道你讨厌喜欢我的文章的话,还是欢迎你写信到 immarcus⎈setusfree.net。谢谢!

实现原理

如果你好奇这套系统到底在做什么:

  • 所有的记录都存放在 localStorage
  • 我为所有的文章建立了一个嵌入向量(embedding vector)数据库(在这里),你的浏览器会把这个数据库下载下来
  • 在你每次作出选择的时候,网站会把对应文章的嵌入向量叠加起来,并根据余弦相似度找出为您推荐的未读文章,并记录下你的选择

只要知道这个原理,用 AI 做的话一点都不费事,我也就熬了两个通宵而已

所以,技术上你是可以拥有一套个性化定制,又不需要把隐私发给服务器的推荐算法的!「算法」本身没什么错啊。

如果你觉得好玩的话,欢迎来信 immarcus⎈setusfree.net 🤗 如果有什么建议也欢迎告知哦!