投资建议:基于自编码器的推荐系统 + 基于ChatGPT的解释。
亲和性:要么没有,要么太过亲密。
对于零售投资者,财经论坛通常是获取投资提示的场所。他/她也可能关注自己的经纪人定期发布的信息。预计提示是通用的,可能与他/她的亲和力不太相关。然而,推荐总是伴随着投资理由加以支撑。如果该论坛颇具影响力,那么,部分原因是因为获得了积极的反馈——我认为,至少在短期内该股票可能真的会成为好的选择。
相反,由Netflix和Amazon推广的协作过滤能够创建高度个性化的推荐。其推荐基于一小组零售交易者共同购买的上市股票,这些交易者的过去投资模式类似于特定投资者的模式。如果我是一个收益较低(甚至亏损)的交易者,那么我难道不会最终跟随其他像我一样表现不佳的交易者吗?当然,我不想保持贫困。
CopyTrader 是 eToro 提供的一项功能,旨在向零售投资者推荐优秀的投资组合,投资者可以复制这个投资组合。这当然不会是个性化的,但用户可以选择与自己最接近的投资组合。然而,如果我无法支付整个投资组合怎么办?事实上,许多业余投资者只能购买其中一个或几个。而且,这个投资组合背后的理由是什么?这是我们不知道的。这使得盲目购买投资组合中的股票变得困难。
我们需要的是有主见的人。
让我们缩小范围,集中关注零售投资者类型。此外,所开发的必须能够扩展支持接近零边际成本的增加平台用户。为了使其可管理,我们将在这一点上留下时间决策和投资组合构建方面。
亲和力通常决定了业余投资者的投资方向。用户的亲和力包括但不限于行业(或领域)、可持续性和持有时间。该平台上的大多数用户都是业余玩家,有经验的人相对较少。为了遵循帕累托法则(80:20),我们应优先考虑那80%的用户。推荐的股票必须反映用户的亲和力,并且同时具有高收益率。虽然无法确定最后的结果如何,但在筛选的时候它们是被认为是有利可图的。
平台必须能够提供一个合理的理由(必要时还需详细说明),解释为什么推荐某个股票。我们是用自己的钱在做这个,为了支持数百万用户,必须自动化。这不会随着人类专家的扩展而扩展。此外,我们也希望机器人提供上下文环境下的理由,而不是传统的预生产文本。
支撑智能
基于自编码器的推荐系统
从机器学习中分离出来,不要忘记我们投资的原因,那就是财富。这就是为什么在数字平台上常用的协同过滤不起作用的根本原因。 在我们的情况下,回报(即表现)确实非常重要。还存在冷启动问题,即股票回报率可能很高,但不太受欢迎。这种情况自然而然地指向了基于内容的过滤。在这里,我们可以使用深度自动编码器构建一个嵌入模型,以捕捉用户根据其已经交易的股票特征的偏好。这些特征可以是行业、波动率、成交量、股息等。但是,我们排除回报率,以避免聚类投资者表现的问题。
为了创造财富,我们按照所谓的良好投资刷选经纪交易所上市的股票,例如高收益和潜在收益。候选对象被映射到我们的嵌入空间。然后,我们使用 K 近邻搜索(KNN)高效地检索与推荐最相似(亲和力)的股票。我们也可以使用近似(A)代替 K。这样一来,我们既满足了高回报的要求,也与用户的交易模式保持一致。
用ChatGPT推理
从自动化的角度来看,列出一份既表现出色又符合用户兴趣的股票清单相对容易。然而,以前面临的难题是在没有领域专家的帮助下形成合理的推理。这可能是私人银行与零售银行的区别所在。但是,有了ChatGPT,这变得可能了。通过其基于庞大的文本数据训练的基础,ChatGPT就像一个有知识的人,非常擅长推理 —— 独立面对问题,它的表现确实比我更好。现在的关键在于我们如何为它创建一个推理提示。
为了理智地投资于特定的股票,我们至少需要了解其当前的指标和比率、行业前景、经济指标,更重要的是对投资有很好的知识。我不是专家,但这是我的逻辑思考。为了使其全面,肯定还有其他信息和指标。后者,即投资知识体系(BoK),是ChatGPT已经拥有的。前三种是我们必须作为输入提供给提示的。有了这些,我们就有了一个明智的基础。此外,我们可以通过字数限制和相应温度的变化来决定如何阐述它的合理性。
PoC: Hofu LINE机器人
这个 PoC 所使用的技术栈如封面图片所示,由 ChatGPT、scikit-learn、Keras、eToro、LINE、Dialogflow 和 Flex Message 组成。在这里,我使用了 eToro 的 API 以匿名的方式收集用户交易数据,用于训练我们基于内容的推荐系统。准确来说,这是一种相似度嵌入模型,然后用于生成用于与列表进行 kNN 搜索的特征向量。对于平台(或经纪人),我们可以考虑通过利用所拥有的数据开发附加服务。
为了合理化股权,我通过OpenAI基于Python的API与ChatGPT集成。在这里,使用API进行提示创建和聊天完成。这样,我们可以轻松自动化并扩展到数百万用户。正如早先所提到的,提示包括股权元数据,可从eToro API中轻松获取,并且我必须从Yahoo Finance中抓取工业趋势。后面的部分也可以来自其他投资或经济门户网站。
我使用的经纪人也在 LINE 上有一个应用程序(这是一款在东亚广泛使用的即时通讯应用程序),但可悲的是它既不是个性化的,也不像对话。为了 PoC,借助像 LINE 这样的超级应用程序作为扩展是很自然的选择。这是大多数人花费时间的地方。此外,我可以利用平台上现有的功能,并用 Dialogflow 建立对话式和探索式用户体验元素,例如通过对话式替换 UX 元素。
在这个PoC中,我嵌入了我过去购买的内容(来自我使用的经纪人,不是在eToro上交易),并检索了建议的股票,这些股票可以在eToro上交易。这个列表大致正确,它们都是我通常购买的公司类型。当然,并不是所有的我都认识,这正是我们想要拥有的,即在亲和力和表现方面找到潜在的匹配。
结束思考
我们能否超越基于亲和力的推荐,包括时间决策和投资组合构建?是的,当然可以。然而,我们需要通过技术指标或交易算法来增强现有的内容,以帮助何时买入或卖出。风险引擎也将需要进行投资组合评估。然而,我们必须重新思考如何作为一组进行推荐,而不仅仅是一个股票,可能是另一个嵌入空间,将一组股票映射为一个特征向量。
我将与ChatGPT结束。我有一些乐观和恐惧的复杂情绪。ChatGPT的知识储备令人难以置信。正如Andrew Ng所说,在许多与自然语言处理相关的情况下,我们现在可以开发一个基于机器学习的产品特性而无需训练数据。那些曾经只能由专业领域的专家(SMEs)才能实现的东西,现在我们也可以自动化。这已经成为只需提供相关输入数据即可得出结论的问题。现在我开始思考:使用“几个提示”,ChatGPT可能可以捕捉用户的交易喜好并提出建议。